一、软件测试是伴随着软件开发的发展而发展的。从软件测试出现到现在,软件测试一共经历了五个阶段:
以调试为主的软件测试
在20世纪50年代,随着计算机的诞生,利用计算机完成复杂、快速计算的计算机编程也随之出现。这时的需求和程序本 身也远远没有现在这么复杂多变,但是已经有人在完成编程之后开始考虑“怎么证明程序满足了需求?”的问题。这时 的测试还没有明确的概念,主要是以调试为主,验证程序是否满足了需求。
以证明为主的软件测试
很快在1957年,Charles Baker在《软件测试发展》一书中就提出测试的概念,并且对调试和测试进行了区分:
调试(Debug),确保程序做了程序员想让它做的事情。
测试(Testing),确保程序解决了它该解决的问题。
这时的计算机软件数量、成本和复杂性都大幅度提升,测试的重要性也大大增强,测试的目不仅仅是验证,而且要确认 软件是满足需求的,也就是我们常说的“做了正确的事情”。
以破坏为主的软件测试
1979年,《软件测试的艺术》 (The Art of Software Testing)第一版问世,这本书是测试界的经典之作。书中给出了软件测试的经典定义:
The process of executing a program with the intent of finding errors.测试是为发现错误而执行程序的过程。
这个观点较之前证明为主的思路,是一个很大的进步。我们不仅要证明软件做了该做的事情,也要保证它没做不该做的事情,这会使测试更加全面,更容易发现问题。
以评估为主的软件测试
在1983年,出现了V&V(验证和确认)理论,测试被应用在整个软件生命周期中。同时IEEE提出的软件测试新的定 义: “使用人工或自动手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。 软件测试以及测试工具在这个时期得到了快速的发展。
以预防为主的软件测试
以预防为主是当下软件测试的主流思想之一。
随着敏捷开发被提出以来,测试驱动开发、自动化的持续集成和测试等技术的应用,都体现出人们不再满足于编码后对程序的验证和确认,而是事先就通过测试来保证编写的代码的正确性。
二、软件测试的地方
领取专属 10元无门槛券
私享最新 技术干货