软件测试的心理学和经济学
1、软件测试的心理学
软件测试不是证明不存在错误的过程;软件测试不是证明软件能够正确完成其预定的功能;软件测试不是建立“软件做了其应该做的”信心的过程。
软件测试是为发现错误而执行程序的过程。要假设程序中隐藏着错误(对所有的程序都成立),然后测试程序,发现尽可能多的错误。
要通过测试程序增加程序的价值,而增加程序的价值是指提高了程序的可靠性或质量。提高了程序的可靠性,是指找出并最终修改了程序的错误。
一次成功的测试可以从两方面进行确定:1)能够发现程序中隐藏的错误;2)能够最终确定没有可以查出的错误;
软件测试应该建立某种程度的信心:软件做了其应该做的,未做其不应该做的。
2、软件测试的经济学
1)黑盒测试:又称为数据驱动的测试。将程序看做一个黑盒子进行测试,而不需要了解程序内部逻辑。
测试数据来源于软件规范,比如需求说明,需求分析,软件说明等。因为黑盒测试可以将所有的输入条件作为测试用例,但穷举所有的输入条件是无法实现的,所以就需要通过设计有限的测试用例,最大程度地提高发现问题的数量,以取得最好的测试效果。常见黑盒测试用例设计方法:等价类划分方法,边界值分析方法,错误猜测法等。
2)白盒测试:又称为逻辑驱动的测试。通过对程序逻辑结构进行检查,从中获取测试数据。
将程序中每条语句至少执行一次