【书山有路】软件测试的艺术第2章

来源:互联网 发布:手机淘宝开店没反应 编辑:程序博客网 时间:2024/06/06 04:49

本章的标题是软件测试的心理学和经济学

观点

  • 不要只是为了证明程序能够正确运行而去测试程序;相反,应该一开始就假设程序中隐藏着错误,然后测试程序,发现尽可能多的错误。

  • 一个更合适的软件测试的定义应该是:测试是为了发现错误而执行程序的过程。确立正确的目标有重要的心理学影响。这暗示了软件测试是一个破坏性的过程,这就是为什么大多数人都觉得它困难。

  • 发现错误的测试应该被称为成功的测试

  • 最终我们还是要通过软件测试来建立某种程度的信心:软件做了其应该做的,未做其不应该做的。但是通过对错误的不断研究是实现这个目标的最佳途径。

  • 软件测试不能发现所有的错误。软件测试中需要考虑的一个基本问题是软件测试的经济学。也就是说,由于穷举测试是不可能的,测试投入的目标在于通过有限的测试用例,最大限度地提高发现问题的数量,以取得最好的测试效果。

概念

黑盒测试

这种测试方法将程序视为一个黑盒子,测试目标与程序的内部机制和结构完全无关,而是将重点集中放在发现程序不按其规范正确运行的环境条件。

这种方法中,测试数据完全来源于软件规范。

白盒测试

这种方法允许我们检查程序的内部结构,通过对程序的逻辑结构进行检查,从中获取测试数据。

软件测试的原则

  1. 测试用例中一个必需的部分是对预期输出或结果进行定义
  2. 程序员应当避免测试自己编写的程序(TDD由于开始测试时程序还没写,估计没什么影响)
  3. 编写软件的组织不应当测试自己编写的软件
  4. 应当彻底检查每个测试的执行效果
  5. 测试用例的编写不但应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况
  6. 应避免测试用例用后即弃,除非软件本身是一个一次性的软件
  7. 程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比
  8. 软件测试是一项极富创造性,极具智力挑战性的工作
0 0
原创粉丝点击