软件测试是伴随着软件开发的发展而发展的。从软件测试出现到现在,软件测试一共经历了五个阶段:
-
以调试为主的软件测试
在20世纪50年代,随着计算机的诞生,利用计算机完成复杂、快速计算的计算机编程也随之出现。这时的需求和程序本身也远远没有现在这么复杂多变,但是已经有人在完成编程之后开始考虑“怎么证明程序满足了需求?”的问题。这时的测试还没有明确的概念,主要是以调试为主,验证程序是否满足了需求。
-
以证明为主的软件测试
很快在1957年,Charles Baker在《软件测试发展》一书中就提出测试的概念,并且对调试和测试进行了区分:
1)调试(Debug),确保程序做了程序员想让它做的事情。
2)测试(Testing),确保程序解决了它该解决的问题。
这时的计算机软件数量、成本和复杂性都大幅度提升,测试的重要性也大大增强,测试的目不仅仅是验证,而且要确认软件是满足需求的,也就是我们常说的“做了正确的事情”。
-
以破坏为主的软件测试
1979年,C.J.Myers在《软件测试之艺术》一书中给出了软件测试的经典定义:
测试是为发现错误而执行程序的过程。
这个定义说明测试不仅要证明软件做了正确的事情,也要保证它没做不该做的事情。
所以好的测试用例是发现迄今为止尚未发现的错误的测试用例;成功的测试是发现了至今为止尚未发现的错误的测试。
这个阶段的测试的目的主要是找出软件中潜在的错误,所以说它是以破坏为主。这也使得软件测试和软件开发独立开来,测试需要更为专业的人员