字号: 小 中 大 |
推荐给好友
上一篇 |
下一篇
软件测试和VSTS 软件测试工具的使用
发布: 2009-4-03 12:18 |
作者: 网络转载 |
来源:
测试时代采编 |
查看: 101次 | 进入软件测试论坛讨论
问:我听说有人是“ad hoc”测试的高手,这是什么意思?
答:有很多测试人员会按部就班地进行测试,但是还有一些人头脑比较灵活,喜欢另辟蹊径,测试一些一般人不会想到的场景,这些人往往会发现更多的小强。开发人员对这样的“ad hoc”高手是又爱又恨。
问:同时看问题要分两方面,有些“ad hoc”发现的小强在正常使用软件中几乎不会出现,我们要不要花时间“ad hoc”?
答:现在一些成功的通用软件的用户以百万计,按部就班的测试计划很难包括很多实际的场景,这时,“ad hoc”测试能够发现重要的问题;另外一些风险很大的领域,例如安全性,一旦出了问题,威胁就会相当大,这时要多鼓励一些“ad hoc”测试,以弥补普通测试的不足。从这个意义上说,“ad hoc”测试可以用来衡量当前测试用例的完备性,如果你探索了半天,都没有发现什么在现有测试用例之外的问题,那就说明现有的测试用例是比较完备的。
“ad hoc”测试的测试流程是不可重复的,因为它的测试都是“特定”测试,没法重复。由于这一原因,“ad hoc”测试不能自动化,就这一点而言,还达不到CMM的第二级 – 可重复级。
作为管理人员来说,如果太多小强是在“ad hoc”出来的,那我们就要看看测试计划是否基于实际的场景,开发人员的代码逻辑是否完善,等等。同时,要善于把看似“ad hoc”的测试用例抽象出来,包括到以后的测试计划中。
1.8 Regression Test回归测试
问:我听说不少关于Regression Test的介绍,但是它到底是怎么“回归”法?回归到哪里去?我还是没搞懂。
答:Regress的英语定义是:return to a worse or less developed state. 是倒退,退化,退步的意思。
在软件工程中,如果一个模块或功能以前是正常工作的,但是在一个新的构建中出了问题,那这个模块就出现了一个“退步”- regression, 从正常工作的稳定状态退化到不正常工作的不稳定状态。
在一个模块的功能逐步完成的同时,和此功能有关的测试用例也同样在完善中。一旦有关的测试用例通过,我们就得到此模块的功能基准(baseline).
在某某版本,某某模块的某某测试用例是通过的!
如果测试人员发现了在新的构建版本某个测试用例失败了,这就是一个“倒退”,在新版本上运行所有已通过的测试用例以验证没有“退化”情况发生,这个过程就是一个“regression test”. 如果这样的“倒退”是由于模块的功能发生了正常变化(由于设计变更的原因),那么测试用例的基准就要修改,以和新的功能保持一致。
针对一个bug fix (拖鞋),我们也要作Regression Test,
b) 同时要验证新的代码没有把模块的现有功能破坏,没有regression。
所以我不也知道“回归测试”是如何的“回归”,我们可以理解为“回归到以前不正常的状态”。
回归测试最好要自动化,因为对于每一个构建都要运行所有回归测试,以保证尽早发现问题。
1.9 Scenario/integration/System Test 场景/集成/系统测试
在软件开发的一定阶段,我们要对一个软件进行全面和系统的测试,以保证软件的各个模块都能共同工作,在各方面都能满足用户的要求。这时的测试叫系统/集成测试。
问:什么时候做系统测试?是不是越快越好?
答:原则上是当一个模块稳定的时候,就可以把它集成到系统中,和整个系统一起进行测试,通常在软件产品需要阶段性发布的时候。