美文网首页@IT·互联网
软件测试发展历史

软件测试发展历史

作者: 李明溪 | 来源:发表于2017-02-26 14:18 被阅读0次

本文是一篇译文,翻译的是Dave Gelperin和William C. Hetzel 发表的一篇名为“软件测试发展”(THE GROWTH OF SOFTWARE TESTING)的文章。

本文并不枯燥,看完后你也许会和我有同样的感受:原来软件测试也能追本溯源(不是程序员拍脑袋想出来的),也有其存在的必然性与合理性。

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

  • 1957年之前-调试为主(Debugging Oriented)
  • 1957–1978-证明为主(Demonstration Oriented)
  • 1979–1982-破坏为主(Destruction Oriented)
  • 1983–1987-评估为主(Evaluation Oriented)
  • 1988–至今-预防为主(Prevention Oriented)

调试为主

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年,美国国家标准局(National Bureau of Standards)发布“Guideline for Lifecycle Validation, Verification and Testing of Computer Software”,也就是我们常说的VV&T。VV&T提出了测试界很有名的两个名词:验证(Verification)和确认(Validation)

  • Verification: Are we building the product right?
  • Validation: Are we building the right product?

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

  • 出现测试经理(test manager),测试分析师(test analyst)等职称
  • 开展正式的国际性测试会议和活动
  • 发表大量测试刊物
  • 发布相关国际标准
    以上种种都预示着:软件测试正作为一门独立的,专业的,具有影响力的工程学发展起来了。

预防为主

预防为主是当下软件测试的主流思想之一。STEP(Systematic Test and Evaluation Process)是最早的一个以预防为主的生命周期模型,STEP认为测试与开发是并行的,整个测试的生命周期也是由计划,分析,设计,开发,执行和维护组成,也就是说,测试不是在编码完成后才开始介入,而是贯穿于整个软件生命周期。我们都知道,没有100%完美的软件,零缺陷是不可能的,所以我们要做的是:尽量早的介入,尽量早的发现这些明显的或隐藏的bug,发现得越早,修复起来的成本越低,产生的风险也越小。

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

相关文章

  • 软件测试发展历史

    本文是一篇译文,翻译的是Dave Gelperin和William C. Hetzel 发表的一篇名为“软件测试发...

  • 软件测试概述

    软件测试概述 软件测试的历史软件测试的概念起源于上世纪70年代(197*年),软件测试随着计算机的发展而产生。早起...

  • 软件测试学习笔记01——软件测试概述

    软件测试学习笔记01——软件测试概述 1、软件发展历史: 第一阶段:程序设计阶段:没有软件的概念,编程人员与使用人...

  • 软件测试

    基础篇 软件测试历史 什么是软件测试 软件测试在整个开发过程中的地位 软件测试要素 软件测试类别 软件测试流程、软...

  • 软件测试概述

    通过本章的学习,您将学习到: 软件的定义 软件测试的历史 软件测试的定义 软件测试的对象 软件测试的意义 一、软件...

  • 软件测试发展的五个阶段

    软件测试是伴随着软件开发的发展而发展的。 从软件测试出现到现在,软件测试一共经历了五个阶段: 以调试为主的软件测试...

  • 人家这才叫软件测试工程师,你那只是混口饭吃(附HR面试宝典)

    软件测试发展 说起软件测试近几年的发展,其实已悄无声息地发生了巨大的变化,前几年随着互联网行业的迅猛发展,软件测试...

  • 软件测试模型与等价划分法

    软件测试模型 随着软件开发的发展,软件测试行业也开始逐步发展完善,经过大量的测试实践,也出现了很多常见的测试模型,...

  • 软件测试基础

    一、软件测试背景 引言:软件测试在软件生命周期中占据重要的地位,软件测试慢慢的独立发展成为一个行业,并且在迅猛发展...

  • 软件测评师48天——软件测试概论

    软件测试发展史 软件测试是伴随着软件的产生而产生的,有了软件生产和运行必然有软件测试。 早期 ...

网友评论

    本文标题:软件测试发展历史

    本文链接:https://www.haomeiwen.com/subject/liawwttx.html