1990年,IEEE软件测试的定义:
- 在特定的条件下运行系统或构件,观察或记录结果,对系统的某个方面做出评价。
- 分析某个软件项以发现现存的和要求的条件之差别,并评价此项软件的特性。
在宇宙的历史中,毁灭总是比创建容易
表面看软件测试员的工作视乎比程序员要容易一些,分析代码并寻找软件缺陷显然要比从头编写代码容易,令人惊奇的是,事实并非如此。
尽管软件测试员不必成为一个经验丰富的程序员,但是拥有编程知识会很有好处。
目前还有一些公司对软件测试带来的挑战以及杰出测试工作的价值不以为然,在自由市场的时代,这些公司是不会长久的,因为用户是不会购买他们那些有缺陷的软件产品。
下面是大多数软件测试员应具备的素质:
- 他们是群探索者。
- 他们是故障排除员。
- 他们不放过任何蛛丝马迹。
- 他们具有创造性。
- 他们是群追求完美者。
- 他们判断准确。
- 他们注重策略和外交。
- 他们善于说服。
逆向思维
Glenford.Myers(代表作《软件测试的艺术》),从心理学的角度论证,如果将“”“验证软件是工作的”作为测试目的,非常不利于测试员发现软的错误。
Myers给出了与测试相关的3个要点:
- 测试是为了证明程序有错,而不是证明程序无错误。
- 一个好的测试用例在于他能发现至今未发现的错误。
- 一个成功的测试是发现了至今未发现的错误。