软件测试的历史和发展

本文是Dave Gelperin和William C. Hetzel发表的题为“软件测试的发展”的文章的翻译。

这篇文章不无聊。看完之后你可能会和我有同感:原来软件测试也是可以追根溯源的(不是程序员的心血结晶),也有其必然性和合理性。

迄今为止,软件测试的发展经历了五个重要时期:

1957之前-面向调试。

1957–1978-面向演示

1979–1982-面向破坏

1983–1987-面向评估

1988-至今-预防为主

面向调试

20世纪50年代,计算机刚刚诞生,只有科学家才能编程,需求和程序本身远没有那么复杂多变,相当于开发者承担了需求分析、设计、开发、测试等所有工作。当然,没有人会区分调试和测试。但是,严谨的科学家已经开始思考“你怎么知道程序符合要求?”这种问题。

面向证明

在1957中,查尔斯·贝克在他的一本书里区分了调试和测试:

调试:确保程序做了程序员想让它做的事情。

测试:确保程序解决了它应该解决的问题。

这是软件测试史上的重要里程碑,标志着测试终于出名了。

当时计算机应用的数量、成本和复杂程度都大大增加,随之而来的经济风险也大大增加,所以需要测试。这一时期测试的主要目的是确认软件满足需求,也就是我们常说的“做了我们应该做的事情”。

面向毁灭

1979年,《软件测试的艺术》第一版问世,堪称测试领域的经典。书中给出了软件测试的经典定义:

为了发现错误而执行程序的过程。

测试是执行程序以发现错误的过程。

这种观点与以前的循证思维相比是一个很大的进步。既要证明软件做了该做的,又要保证没做不该做的,这样测试会更全面,更容易发现问题。

面向评估

1983年,国家标准局发布了《计算机软件生命周期验证、验证和测试指南》,也就是我们常说的VV &;t .VV & ampt在测试领域提出了两个著名的术语:验证和确认。

验证:我们构建的产品是正确的吗?

验证:我们正在构建正确的产品吗?

人们提出了在软件生命周期中使用分析、评审和测试来评估产品的理论。软件测试工程在这一时期发展迅速:

有测试经理,测试分析师之类的头衔。

开展正式的国际测试会议和活动。

出版大量测试出版物

发布相关国际标准

这些都表明软件测试正在向一个独立的、专业的、有影响力的工程方向发展。

预防为主

预防是软件测试的主流思想之一。STEP(系统测试和评估过程)是最早的以预防为主的生命周期模型。Step认为测试和开发是并行的,测试的整个生命周期也是由计划、分析、设计、开发、执行和维护组成的。也就是说,测试并不是在编码完成后才开始介入,而是贯穿整个软件生命周期。众所周知,没有100%完美的软件,零缺陷是不可能的,所以我们需要做的就是尽早介入,尽早发现这些明显或隐藏的bug。越早发现,修复成本越低,风险越小。

虽然在每个发展阶段对软件测试的认识都有其局限性,但前人一直在思考和总结前人的经验,创造性地提出新的理论和方向。这种精神非常值得尊重和学习。所谓铜镜,可正衣冠;以史为鉴,才能知得失。知道了它从哪里来,我们就能更好地理解到哪里去。

(转自网络)