《软件测试的艺术》学习记录

chapt 1  软件测试

所谓软件测试,就是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。软件应当是可预测且稳定的,不会给用户带来意外惊奇。

chapt 2  软件测试的心理学和经济学

1.本末倒置的软件测试定义:

“软件测试就是证明软件不存在错误的过程。”

“软件测试的目的在于证明软件能够正确完成其预定的功能。”

“软件测试就是建立一个‘软件做了其应该做的’信心的过程。”

2.每当测试一个程序时,应当想到要为程序增加一些价值。通过测试来增加程序的价值,是指测试提高了程序的可靠性或质量。提高了程序的可靠性,是指找出并最终修改了程序的错误。

3.不要只是为了证明程序能够正确运行而去测试程序;相反,应该一开始就假设程序中隐藏着错误(这种假设对于几乎所有的程序都成立),然后 测试程序,发现尽可能多的错误。

4.软件测试更恰当的定义:

“测试是为发现错误而执行程序的过程”。

1)如果我们倾向于证明程序中不存在错误,那么我们就会选择较少的导致程序失效的测试数据;相反,如果我们致力于发现程序中存在的错误,我们设计的测试数据就有可能更多地发现问题,顺理成章地,就能很好地增加程序的价值。

软件测试可以用病人身体不适看医生的情况来看,病人身体不适,病人支付昂贵的检查化验费用,如果没有发现病灶,那么这次病人看医生的病诊就是失败的。同理,软件测试也是这样。

2)除此之外,如果作为软件测试工作人员,我们一开始就认为程序中不存在错误,我们在这个心理暗示下,很可能无法推动测试工作,因为会自然地找到各种理由,譬如,”程序中是没有错误的,如果有,也会是一些小问题“,或者走向另外一个极端,会想到发现程序中的错误是不可完成的工作。

3)“软件测试就是证明‘软件做了其应该做的’的过程”,此类的定义所带来的第三个问题是,程序即使能够完成预定的功能,也仍然可能隐藏错误。

总结:软件测试更适宜被视为试图发现程序中的错误(假设其存在)的破坏性的过程。一个成功的测试用例,通过诱发程序发生错误,可以在这个方向上促进软件质量的改进。当然,最终我们还是要通过软件测试来建立某种程度的信心:软件做了期应该做的,未做其不应该做的,。但是通过对错误的不断研究是实现这个目的的最佳途径。

针对“程序完美无缺”,应该努力发现不完美之处,而不只是确认程序在某些输入情况下能够正常地工作。

 

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年2月1日
下一篇 2019年2月1日

相关推荐