软件测试基础知识之软件测试的起源与发展历史

前言

软件测试与调试是软件开发中不可或缺的环节,它们在确保软件质量和提高代码质量方面发挥着重要作用。软件测试起源于上世纪,经历了从调试到正式定义的演变,旨在发现软件中的错误和不符合规范的行为,以确保软件满足用户需求和期望。而软件调试则专注于排除代码中的错误信息,保证软件能够正确运行。 软件测试与调试在多个方面存在明显区别。首先,它们的目的不同,测试是为了验证软件的整体质量和可靠性,而调试则是为了提高代码

Where "STFB" stands for "Software Testing Fundamentals Basis" and "Origin & Dev" is a shortened form of "Origin and Development."

1.1 软件测试的起源与发展历史

(1) 早期软件开发中,没有测试的概念,开发所做的是调试,目的是发现并纠正软件中 的故障

(2) 1957 年,测试与调试被区别开来。但认为测试工作应该往后推,潜意识里认为, 测试的目的验证产品能工作

(3) 1972 年,在美国北卡罗来纳大学举行了首届软件测试正式会议,Bill Hetzel(比尔海泽尔)在会上正式定义软件测试概念。软件测试是建立一种信心,认为程序能够按预期的设想运行

(4) 1979 年,Glenford J.Myers(迈尔斯)在《软件测试艺术》中给出测试的经典定义: 测试是为了发现错误而执行程序的过程

(5) 1983 年,IEEE(Institute of Electrical and Electronic Engineers)给出了软件测试的标准定义,并制定了测试的标准。软件测试是使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别

(6) 1996 年,Kent Beck(肯特•贝克)在极限编程 XP 方法论中提出 TDD 测试驱动开发理论。强调先写测试后写代码的开发模式

(7) 2009 年,James A.Whittaker(惠特克)提出探索式测试理论。强调测试人员的主动性和创造性

1.2 软件测试与调试

软件测试与调试在软件开发过程中扮演着不同的角色,主要区别体现在以下几个方面:

(1)定义与目的:

软件测试:是指对软件系统进行评估和验证的过程,以发现软件中存在的缺陷、错误和不符合规范的行为。其目的在于确保软件系统的质量和可靠性,以满足用户的需求和期望。

软件调试:是指在软件开发过程中,通过排除代码中的错误信息,以确保软件能够正确运行的过程。其目的在于提高代码质量,防止代码缺陷。

(2)执行阶段:

软件测试:通常在软件开发完成之后,由专业的测试人员根据测试计划和测试目标进行测试。

软件调试:一般在软件开发的过程中进行,也即是开发人员在写代码之后进行调试,主要是为了保证代码的质量。

(3)执行人员:

软件测试:由专业的测试人员执行,他们根据测试计划和测试目标进行测试,以尽可能多地捕捉缺陷。

软件调试:主要由程序员自行完成,他们负责检查和修正代码中的错误。

(4)测试对象:

软件测试:是对软件从整体上的测试,包括UI界面、性能、稳定性、功能等多方面。

软件调试:主要针对开发中的代码测试,关注代码中的错误和缺陷。

(5)关注点:

软件测试:关注的是软件是否满足设计需求和用户期望,以及软件在各种情况下的表现。

软件调试:关注的是代码中的错误和缺陷,以及如何修复这些错误和缺陷。

总之,软件测试和调试在软件开发过程中都扮演着重要的角色,但它们的关注点、执行阶段、执行人员和测试对象等方面存在明显的区别。软件测试是确保软件质量和可靠性的关键活动,而软件调试则是提高代码质量和防止代码缺陷的重要手段。