由一个问题想到的,测试的复习

关于bug还原的问题
当遇到一个bug的时候,当客户给出一份从系统中生成出来了的错误的信息时,要求程序员修改时,通常我们要做到是还原现场。

前两天一个同事和我说他遇到了一个很棘手的问题,用户给了一份excel文档,里面的内容是从我们的系统中生成的,文档中列出了系统中生成的一些错误信息。用户给出这份文档当然是希望我

们把这个错误解决掉。同事说这个问题很难啊,他解决不了。于是给他提建议说重新生成一下错误数据,同事说模拟不了,我说可以,他说模拟不了,让他请教高手,他说没有。那好吧,

如果我碰到了这种情况,会怎么做呢?
那当客户从系统中取出的错误数据时,首先确认客户是怎么出错的,首先确认这些错误数据是不是从系统中生存的,或者说是从系统中经过正确的步骤得到的,直接的办法就是重复现场。在本地

系统中,重复一下同一种类的业务操作,如果用户提供了公式,在套用用户给的公式前先检查公式是否正确,如果有疑问一定要和客户协商清楚,如果确认正确,就按照该公式检查系统生成结果,

如果无误就很有可能是用户的操作流程有误,从而导致了错误的数据结果,这个时候要和客户商量,了解客户是怎么操作得到的这个错误数据的,审核一下客户的操作流程,如果客户操作有误,

告诉客户应该怎么做。客户操作正确的话,就可能是软件环境或者硬件环境有问题,软件环境的问题可以分为软件版本的问题,软件配置的问题,硬件环境的问题概率比较小,主要考虑软件环

境的问题。现在版本不一致同步版本,软件配置不一样同步配置信息,当然是以正确的配置为标准。


如果在本地也生成不出来正确结果,在确定本地错误结果是否和客户的错误结果类似,以排除新错误的可能,

如果不类似就有可能是新的错误,此时可能是相关的代码版本或软件配置不同,记录该错误的状态,检查代码版本和配置信息的一致性。


假如类似,在问问客户在发现这个错误后有没有找到另外的解决方法(这个例子中客户就找到了另外补救的方法),把客户的情况弄清楚了后,再看看为什么会出现这个错误,把这个错误涉及到

的模块评估一下,看看那里出错的可能性大,分析相关代码,找出bug。


当版本不一致时该怎么做?
merger代码,检查各个代码的不同处,这些不同可能是在不同的分支上产生的,有时要合并所有的不同处,有时可能是有具体的需求不同造成的不同

当我们知道正确结果是什么,并确定是代码的问题时,问题就解决了一半,


碰到一个问题后,考验我们的是分析问题和解决问题的能力。没什么大不了的,从从容容的!  怎么作测试及调试呢? 这里顺便复习一下软件测试的基础知识:

 

test case:一个测试用例由测试输入数据和预期结果组成。
软件测试的目的是发现错误和缺陷,并加以纠正。
软件测试的基本原则:
--所有的测试都应可追溯到客户的需求。测试的目的是发现错误,而最严重的错误是那些导致程序无法满足需求的错误。
--应该在测试工作真正开始前的较长时间就进行测试计划。
--pareto原则可应用到软件测试:80%的错误可能来之20%的代码。
--测试应该从小规模开始逐渐转向大规模
--穷举测试时不可能的
--为了达到最有效的测试,应该有独立的第三方来承担测试。
--在设计测试用例是应该包括合理的输入条件和不合理的数据条件。
--严格执行测试计划,排除测试的随意性。
--应该对每个测试结果做全面的检查。
--妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
--检查程序是否做了应做的事是成功的一半,另一半是检查程序是否做了不应该做的事。
--在规划测试时不要设想程序中不会查出错误。

白盒测试:又称结构测试,这种方法把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有的逻辑路径是否都按预定的要求正确地工作。
常用的白盒测试方法有:逻辑覆盖测试,基本路径测试,数据流测试和循环测试

黑盒测试:又称行为测试,这种方法把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。
主要黑盒测试的方法有:等价类划分,边界值划分析,比较测试,错误猜测和因果图方法。

软件测试策略把软件测试用例的设计方法集成到一系列经周密计划的步骤中去,从而使软件的测试得以成功的完成。
V模型:    系统工程..........................系统测试
                            \                           /
                     需求分析.................确认测试  
                              \                       /
                            设计..................集成测试
                                \                   /
                               编码.............单元测试


单元测试:又称模块测试,着重对软件设计的最小单元--软件构件或模块进行验证
集成测试:又称组装测试,经单元测试后的模块需集成为软件系统,集成测试是对集成后的软件系统进行测试,主要用来揭露设计阶段产生的错误。
确认测试:经集成测试后的软件需经过测试方能交付使用,确认测试通常采用黑盒测试方法。
  a测试:有一个用户在开发者现场进行,软件在开发者对用户的指导下进行测试。经a测试后的软件称为B版软件
  B测试:由最终用户在一个或多个场所下进行的,开发者通常不在现场。
系统测试:对于计算机的系统进行一系列的测试,
                        恢复测试:恢复测试是通过各种手段,强制软件发生故障,然后验证系统能否在指定的时间间隔内恢复正常,包括修复错误并从新启动系统。另外还有:安全测试 压力测试 性能测试等。

测试的目的是发现错误,调试(debugging)的目的是确定错误的原因和准确的位置,并加以纠正。

调试太重要了,还是另写一篇吧。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值