【IT168 技术文章】
1. 软件测试一项技术性的工作,但同时也涉及到一些人类心理学和经济学的重要因素。
2. 错误的测试心理:
(1) 软件测试就是证明软件没有错误的过程;
(2) 软件测试就是证明软件完成了它既定功能的过程;
(3) 软件测试就是建立"软件做了其应该做的"信心的过程;
3. 软件测试的过程是为了通过发现并修正更多的缺陷来增加程序的质量和可靠性。因此,在测试伊始,就应该抱着发现更多的缺陷的目的来设计和执行测试,而并不是简单的为了证明程序能够正确运行而进行测试。
4.“软件测试是为了发现错误而执行程序的过程。”
5. 人类的行为总是具有高度的目标性,目标的确立有着重要的心理学影响。如果我们为了证明程序能够正确运行,就会在潜意识中倾向于实现这个目标,就会设计出较少导致程序失效的测试数据;相反,如果我们为了发现程序中的错误而进行测试,就会想方设法、处心积虑地去设计出“变态”的测试数据,来实现自己的“阴谋”,而这种阴谋的实现却恰恰能够给程序增加更多的价值。
6. 心理学研究表明:人们对于预先知道“无法实现”的工作,表现会很糟糕。因此,将软件测试定义为“验证软件中不存在错误的过程”,是无法达到和实现的(程序中不可能不存在缺陷)。
7. 软件测试更适宜被定义为试图发现程序中的错误的破坏性过程。一个成功的测试用例,通过诱发程序出错,而对其进行改进和修正。
8. 黑盒测试,又称为数据驱动或输入输出驱动的测试。测试过程中,将程序视为一个黑盒,不关心其内部结构和原理,而是将重点放到发现程序不按其规范正确运行的环境条件上。
9. 为了进行有效的黑盒测试,需要穷尽出所有的可能情况,并为每一种情况进行测试用例的设计,显然这是无法完成的任务。
10. 由于穷举所有测试用例是无法实现的,所以:一、我们不可能保证程序种不存在错误;二、测试投入的目标应该定位在通过有限的测试用例设计与执行,最大程度上提高发现错误的数量,以取得最好的测试效果。
11. 白盒测试又称为逻辑驱动测试,允许检查程序的内部结构。这种测试通过对程序逻辑结构进行检查,从中获取测试数据。
12. 在白盒测试中的穷举路径测试,如同黑和测试中的穷举输入测试一样,不可能实现。
13. 穷举路径测试存在的错误隐患:
(1) 程序设计本身不符合设计的规范。在这种情况下,即使穷尽了所有的路径测试,也依旧无法发现这种缺陷。
(2) 程序设计可能缺少某些必须的路径,不管你怎么测,也都不可能穷尽到未加入到代码中的路径,除非你是多啦A梦。
(3) 穷尽路径测试很可能无法暴露数据敏感的错误。