软件测试心理学和经济学(一)
1、软件测试的心理学
在某些情况下,测试人员的态度可能比实际的测试过程本身还要重要。
(1)对于“测试”的误解
软件测试就是证明软件不存在错误的过程。
软件测试的目的在于证明软件能够正确完成其预定的功能。
软件测试就是建立一个“软件做了其应该做的”信心的过程。
(2)正确的理解
每当测试一个程序时,应当想到要为程序增加一些价值。如:提高程序的可靠性或质量。
测试是为发现错误而执行程序的过程。
软件测试是一个破坏性的过程,甚至是一个“施虐”的过程。
软件的错误包含两种:(1)程序没有实现预期功能。(2)程序做了其不应该做的。
2、软件测试的经济学
一般来说,要发现程序中的所有错误也是不切实际的,常常也是不可能的。
2.1 黑盒测试
如果想要用这种方法来发现程序的所有错误,判定的标准就是“穷举输入测试”,将所有可能的输入条件都作为测试用例。
穷举输入测试是无法实现的。两个含义:一、我们无法测试一个程序以确保它是无错的。二、软件测试中需要考虑的一个基本问题是软件测试的经济学。也就是说由于穷举测试是不可能的,测试投入的目标在于通过有限的测试用例,最大限度地提高发现的问题的数量,以取得最好的测试效果。
2.2 白盒测试
白盒测试,又称逻辑驱动测试,允许我们检查程序的内部结构。这种测试策略对程序的逻辑结构进行检查,从中获取测试数据。(常常忽略了程序规范)。
使用测试用例执行了程序中所有可能的控制流路径,那么程序有可能得到了完全测试。此方法称为穷举路径测试。
穷举路径测试存在两个问题:一、程序中不同逻辑路径的数量可能达到天文数字,实际执行是不可能且不实际的。
二、虽然我们可以测试到程序中的所有路径,但是程序可能仍然存在着错误。
原因:
1.即使是穷举路径测试也决不能保证程序符合其设计规范。
如:要编写一个升序排序程序,但错误的编写成一个降序排序的程序。这样即使进行穷举路径测试也没多大价值,程序本身就是一个错误程序,不符合设计规范。
2.程序可能会因为缺少某些路径而存在问题。
穷举路径测试不能发现缺少了哪些必需路径。
3.穷举路径测试可能不会暴露数据敏感错误。
如:程序要比较两个数值是否收敛,也就是检查两个数值之间的差是否小于某个既定的值,而仅仅执行程序中的每条路径并不一定能找出错误。
软件测试的原则
原则1:测试用例中一个必需部分是对预期输出或结果的定义。
原则2:程序员应当避免测试自己编写的程序。
原则3:编写软件的组织不应当测试自己编写的软件。
原则4:应当彻底检查每个测试的执行结果。
原则5:测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况。
原则6:检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”。
原则7:应避免测试用例用后即弃,除非软件本身就是一个一次性的软件。
原则8:计划测试工作时不应默许假定不会发现错误。
原则9:程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比。
原则10:软件测试是一项极富创造性、极具智力挑战性的工作。
几个重要的测试原则(总结)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!