各种测试方法的问题

2014-07-25   出处: kojenchieh.pixnet.net  作/译者:kojenchieh

在 Exploratory Software Testig 一书中, James Whittaker在第二章中, 提到各种测试方法的不足:

Defect Preventation
从开发人员的角度来说, 他们希望藉由 design review, code review, static analysis tool, 和 unit test, 来增加软件的质量.

但是作者觉得这些方法都有些根本的问题:
(1) 开发人员通常不是个好的测试人员
- 开发人员想的是"如何才能实现这个功能", 而测试人员则是从"如何才能攻破这个功能" 来思考.
- 因此开发人员会有盲点, 需要有另一组人从不同观点来思考
- 但是不代表开发人员不用作测试, 像是 formatting, data validation 和 error handling 等等都需要及时处理和验证. 等到测试人员发现, 时间会花得很长, 也修正的代价也很高

(2) 静止状态的程序不能完全代表真的测试目标
- 有很多错误是和执行环境有关系, 通常在开发环境这些错误不会发生的

(3) 缺乏客户真正数据
- 有些错误是和客户真实的数据有关, 或者需要实行一段时间后, 累积效果出现后才会有问题
- 可是开发人员通常没有这些数据, 并且也没有这么长的测试时间, 所以无法找出这类型的错误


Defect Detection
通常分成手动测试和自动化测试两种:

自动化测试
- 测试人员不一定会是好的开发人员, 有些人可以, 有些人可能不行.
- 测试程序也是会有 bug, 一旦出现后, 测试人员需要更多时间来除错, 维护它的正确性和强固性. 所以你要花在测试的时间多, 还是应该花在维护测试程序的时间多?
- 此外测试程序所在的执行环境, 以及所用的测试数据, 不是客户的数据, 所以效果还是有限. 并且客户可能也没有勇气, 让你在他的 production 执行.
- Oracle Problem 的问题是最难处理的, 也就是当你执行完测试时, 你无法确认是否真的实行正确. 像是 install 完毕, 甚么叫做 install 成功, 是所有 service 都启动, 是所有档案都复制完毕, 还是所有 registry 写正确. 你可能无法列的出来, spec 也不会写甚么叫做功能运作正确.


手动测试
- 也是由人来进行测试, 需要充分发聪明才智, 设计出真实客户环境的数据和使用状况. 尤其是有关 business logic 更是需要人脑介入.
- 手动测试比自动化测试强的地方, 是因为现实状况有太多不确定的因素, 有太多 scenario, 会导致测试程序员小的情况太多, 错误时都需要人脑介入, 一一来跟踪.
- 可是手动测试很慢, 无法反复使用, 测试步骤可能不一定有规律, 也不一定都能重复.


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
236° /2367 人阅读/0 条评论 发表评论

登录 后发表评论