《软件测试技术大全:测试基础 流行工具 项目实战(第3版)》—第1章1.2节软件测试的发展

简介: 现在,大部分开发工具都把调试工具集成进来,调试已经成为开发人员开发工作中不可或缺的一部分。甚至测试脚本的开发工具也会把基本的调试功能集成进来。

本节书摘来自异步社区《软件测试技术大全:测试基础 流行工具 项目实战(第3版)》一书中的第1章,第1.2节软件测试的发展,作者陈能技 , 黄志国,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 软件测试的发展
伴随着软件行业的发展,软件测试也在不断地发展,软件测试大概经历了如图1.2所示的几个重要的阶段。


262ca754d3b0e13e69a05d41168278de2178ed5f

1.2.1 软件调试
早期软件的复杂度相对较低,软件规模也比较小,因此软件错误大部分在开发人员的调试阶段就发现并解决掉了。这个阶段的测试就等同于调试。

现在,大部分开发工具都把调试工具集成进来,调试已经成为开发人员开发工作中不可或缺的一部分。甚至测试脚本的开发工具也会把基本的调试功能集成进来。如图1.3所示为TestComplete的调试工具栏。


d06308a4d42186f4230d85baa3c4882f9442e27f

1.2.2 独立的软件测试
在20世纪五六十年代,人们开始意识到仅仅依靠调试还不够,必须引入一个独立的测试组织来进行独立的测试。

这个阶段的测试绝大部分是在产品完成后进行的,因此测试的力度、时间都非常有限,软件交付后还是存在大量的问题。

这个阶段没有形成什么测试方法论,主要靠错误猜测和经验推断,也没有对软件测试的定位以及软件测试的真正含义进行深入的思考。

1.2.3 软件测试的第一次定义
1973年,Bill Hetzel博士给出了软件测试的第一个定义,即“软件测试就是对程序能够按预期的要求运行建立起一种信心”。

1983年,Bill Hetzel博士对这个定义进行了修订,改成“软件测试就是以评价一个程序或系统的品质或能力为目的的一项活动。”

因此这个阶段对软件测试的认识是:软件测试是用于验证软件产品是正确工作的、符合要求的。

但是同一时期,Glenford J. Myers则认为,软件测试不应该专注于验证软件是工作的,而是将验证软件是不工作的作为重点,他提出的软件测试定义是“测试是以发现错误为目的而进行的程序,或系统的执行过程”。

1.2.4 软件测试成为专门的学科
20世纪80年代后,软件行业飞速发展,软件规模越来越大,复杂度越来越高。人们对软件的质量开始重视。软件测试的理论和技术都得到了快速的发展。人们开始把软件测试作为软件质量保证的重要手段。

1982年,在美国北卡罗来纳大学召开了首次软件测试的正式技术会议,软件测试理论开始迅速发展,随之出现了各种软件测试方法和技术。

1983年,电气电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)对软件测试做出了如下定义。

使用人工或自动的手段来运行或测量软件系统的过程,目的是检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。
这个阶段认为,软件测试是一门需要经过设计、开发和维护等完整阶段的软件工程。
因此,从这个阶段开始,软件测试进入了一个新的时期,软件测试成为一个专门的学科,形成了各种测试的理论方法和测试技术,某些测试工具开始得到广泛应用。

1.2.5 开发与测试的融合趋势
20世纪90年代后,软件工程百花齐放,出现了各种软件开发的新模式,以敏捷开发模式为代表的新一代软件开发模式开始步入历史的舞台,并且赢得很多开发团队的拥护。

由此带来的是对软件测试的重新思考,而大部分人倾向于软件测试将与软件开发融合的趋势的观点,开发人员将担负起软件测试的责任,测试人员将更多地参与到测试代码的开发中去。软件开发与测试的界限变得模糊起来。TDD把测试作为起点和首要任务。

1.2.6 为什么软件测试发展比较缓慢
尽管软件测试经过几十年的发展,已经得到了长足的进步,但是与软件开发的发展比较起来,可以看到软件测试的发展还是比较缓慢的。

软件开发得益于计算机硬件的发展、计算速度的提高,还有计算机语言的发展、编译器的发展、开发工具的发展,因此比起软件早期的开发,无论是开发速度还是工作效率都有了很大的提高。

软件开发摆脱了早期的机器语言编码方式和汇编语言,跨越了结构化编程语言,进入面向对象的时代,开发人员的编程能力得到了很大的提高。而开发工具的不断改进,则起到了推波助澜的作用,使得开发人员无论是在编码速度还是调试方面都受益匪浅。

反观软件测试,虽然测试工具层出不穷,但是并没有革命性的发展。测试人员大部分情况下还是要依赖手工的测试。

软件测试受到越来越多人的重视,但是大部分的软件测试方法和理论还是沿用20世纪的研究结果。因此,软件测试的发展还需要更多热爱测试的人投入,需要更多的研究,无论是在测试的理论、方法,还是工具上。

软件测试发展比较缓慢的另外一个原因是质量成熟度模型和质量风险评估没有一个比较广泛和可用的业界标准,测试的发展还会比较缓慢。

相关文章
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
183 11
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
81 4
探索软件测试中的自动化测试策略
随着软件开发周期的加速和市场需求的不断增长,传统的手动软件测试方法已难以满足现代软件开发的高效性和准确性要求。本文旨在探讨自动化测试在软件测试中的重要性、实施策略及其对提高软件质量的影响。通过分析自动化测试的优势与挑战,以及提供实用的自动化测试工具和框架选择指南,旨在帮助读者理解并应用自动化测试以提升软件开发效率和产品质量。
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
96 1
Apifox工具让我的 Socket.IO 测试效率翻倍
用了 Apifox 测试 Socket.IO 后,我整个人都升级了!不仅操作简单到令人发指,功能还贼全面,真的是 提升开发效率的神器 !
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
317 17
Selenium:强大的 Web 自动化测试工具
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
112 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
107 4

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等