@<font color="red”> 本文为"software testing"一书的读书笔记 @</font>

测试公理

不可能完整地测试一个程序

原因有:

  • 可能的输入是巨大的
  • 可能的输出也是巨大的
  • 软件的使用方式是多种多样的
  • 软件说明是主观的。

软件测试是一个冒险的工作

随着测试用例的增加,找到的bug会越来越少,从而测试的代价就越来越高,我们要 合理地设置测试用例的范围,减少测试的冒险性和成本。

测试并不表明有的bug不存在

你哪里找到的bug越多,那里的bug就越多

原因有:

  • 程序员可能会在某天很开心,于是写出的代码很好,可能在某天很不开心,写出来的

代码就有bug,于是bug都聚集在一起。

  • 程序员总是犯同一个错误,这是人类的习惯造成的。

杀虫剂矛盾(你用同样的方法找bug,下次就不管用了)

你找到的bug中,不会全部被修复

原因有:

  • 时间不够
  • 你找到的其实不是一个bug
  • 修复这个bug太危险了,可能会诞生更多的bug
  • 修复这个bug不值得。

有时候不知道这个是不是一个bug

产品说明从来不会终止

软件测试师不是一个项目组里面最受欢迎的人

下面是和队友搞好关系的贴士:

  • 尽早找到bug
  • 不要太骄傲(当你找到bug的时候)
  • 不要总是报告坏消息

软件测试名词和定义

  • precision准确性 and accuracy精确性

下面这幅图很好地说明了两者之间的区别: ~/pictures/images.jpe

  • verification and validation

verification是验证软件是否符合产品说明的过程, validation是验证软件是否符合用户需求的过程。

  • quality and reliability

quality:高质量, reliability,可靠性。 可靠性只是高质量的一个方面。

  • testing and quality assurance(QA)

软件测试是要尽早地找到bug,并确保它们被修复。 质量保证是要创造和加强标准、方法来改善软件开发过程,防止bug的产生。