软件测试的心理学和经济学
1、软件测试的心理学
软件测试不是证明不存在错误的过程;软件测试不是证明软件能够正确完成其预定的功能;软件测试不是建立“软件做了其应该做的”信心的过程。
软件测试是为发现错误而执行程序的过程。要假设程序中隐藏着错误(对所有的程序都成立),然后测试程序,发现尽可能多的错误。
要通过测试程序增加程序的价值,而增加程序的价值是指提高了程序的可靠性或质量。提高了程序的可靠性,是指找出并最终修改了程序的错误。
一次成功的测试可以从两方面进行确定:1)能够发现程序中隐藏的错误;2)能够最终确定没有可以查出的错误;
软件测试应该建立某种程度的信心:软件做了其应该做的,未做其不应该做的。
2、软件测试的经济学
1)黑盒测试:又称为数据驱动的测试。将程序看做一个黑盒子进行测试,而不需要了解程序内部逻辑。
2)白盒测试:又称为逻辑驱动的测试。通过对程序逻辑结构进行检查,从中获取测试数据。
将程序中每条语句至少执行一次,也称为穷举路径测试。白盒测试也不完善,会出现三个问题:1.不能保证程序符合设计规范;2.不能发现程序缺少那些路径;3.不会暴露数据敏感错误。
常用白盒测试用例设计方法:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,多重条件覆盖。
综上,需要将黑盒测试和白盒测试结合起来,形成一个合理但不十分完美的测试策略,才能尽可能的发现程序中的问题。
3、软件测试的原则
1)测试用例中需对预期输出或结果进行定义
最好定义两个部分:a) 输入数据的描述;b) 在输入数据下输出结果的精确描述;
2)程序员应当避免测试自己编写的程序
3)编写软件的组织不应当测试自己编写的软件
4)应当彻底检查每个测试的执行结果
5)测试用例的编写需要考虑有效和预期输入情况,同时也应考虑无效和未预料到的输入情况
6)检查程序应包括其应该做的,同时也要检查其做了不应该做的
7)测试用例使用完后应保留下来,方便下次使用
8)编写测试计划时不应假定不会发现错误
9)程序中某部分存在错误的可能性,与该部分已发现错误的数量成正比
10)软件测试是一项极富创造性、极具挑战性的工作
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!