首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >从软件的定义到软件测试的定义

从软件的定义到软件测试的定义

作者头像
顾翔
发布2025-10-11 11:22:41
发布2025-10-11 11:22:41
1.2K0
举报

一、软件的定义

软件是计算机系统中不可或缺的组成部分,不同标准对其定义如下:

  • 1990年:IEEE 610.12-1990《软件工程术语集》:

软件包括计算机程序、相关文档及与计算机系统操作有关的数据。

  • 2006年:GB/T 11457-2006《信息技术 软件工程术语》:

① 与计算机系统操作相关的计算机程序、规程、规则及可能存在的文件与数据;

② 与计算机系统操作相关的程序、规程、规则及任何与之有关的文件

  • 2009年:GJB 2786A-2009《军用软件开发通用要求》:

软件是能够使计算机硬件完成计算和控制功能的计算机指令与数据定义的组合。

综上,广义的软件是 程序 + 数据 +文档,而狭义的软件是 程序 + 数据。

二、软件测试的定义

软件测试是软件工程中的关键活动,其定义随时代发展逐步完善:

  • 1973年,Bill Hetzel博士(正向思维):

“软件测试是为程序能够按预期运行建立足够信心的过程。”

  • 1979年,Glenford J. Myers(逆向思维):

在《软件测试的艺术》中提出:“测试是为了发现错误而执行程序或系统的过程。”

  • 1983年,Bill Hetzel修订定义(正向思维):

“软件测试是一系列活动,旨在评估程序或软件系统的特性或能力,并确定其是否达到预期效果。”

  • 1983年,IEEE Standard 729(正向思维):

“使用人工或自动手段运行或测量软件系统的过程,目的是检验系统是否满足规定要求,并找出与预期结果的差异;测试需经历设计、开发和维护等完整阶段。”

  • 1988年Cem Kaner:

Cem Kaner

在其著作《Testing Computer Software》第一版提出“Testing is an empirical, technical investigation conducted to provide stakeholders with information about the quality of the product or service under test.”

“测试是一种经验的、技术性的调查,旨在为利益相关者提供关于被测试产品或服务质量的信息。”

完成了测试角色从“错误发现者”到“信息提供者”的范式转换,是上下文驱动测试学派的理论基石。

  • 1990年IEEE 610.12 -1990标准:

IEEE Standard Glossary of Software Engineering Terminology(IEEE 软件工程术语标准 glossary)

“在特定条件下运行系统或组件,观察并记录结果,以评估其特定方面的过程。”

  • 2013年,ISO/IEC/IEEE 29119标准:

“通过比较预期与实际结果,评估软件产品特性(如完整性、正确性、适用性)并发现差异的过程。”

标准部分

标题

首次颁布时间

ISO/IEC/IEEE 29119-1

概念和定义

2013年9月

ISO/IEC/IEEE 29119-2

测试过程

2013年9月

ISO/IEC/IEEE 29119-3

测试文档

2013年9月

ISO/IEC/IEEE 29119-4

测试技术

2015年12月

ISO/IEC/IEEE 29119-5

关键字驱动测试

2016年10月

  • 2014年,SWEBOK 3.0:

“从无限执行域中选择有限测试用例,对程序期望行为进行动态验证的活动过程。”

  • 2000年代初期初期ISTQB(全生命周期视角):

“Software testing is a process consisting of all life cycle activities, both static and dynamic, concerned with planning, preparation, and evaluation of software products and related work products to determine that they satisfy specified requirements, to demonstrate that they are fit for purpose and to detect defects.”

(软件测试是一个包含所有生命周期活动的过程,包括静态和动态,涉及软件产品和相关工作产品的策划、准备和评估,以确定它们满足规定的需求,证明它们适合其目的,并发现缺陷。)

2018年的大改版:ISTQB 在 2018年 发布了 CTFL 大纲的重大更新版本(v3.1.1 之后直接跳到了 v2018)。这个版本更加强调了敏捷环境、 DevOps 理念和整个软件生命周期中的测试,进一步巩固和现代化了其“全生命周期”的视角。

三、中国国家标准(GB)中的定义

  • 2021年:GB/T 11457 -2021《软件工程术语》(等效采用 IEEE Std 610.12):

通过人工或自动手段运行或测定软件系统,以检验是否满足需求或澄清预期与实际结果的差异。

  • 2020年:GB/T 38634《系统与软件工程 软件测试》(等效采用 ISO/IEC/IEEE 29119):

强调通过对比预期与实际结果评估软件特性,确保符合标准与需求。

总结

软件测试的核心目标是通过系统化的方法验证软件质量,早期定义侧重“发现缺陷”(逆向思维),而现代定义更强调“评估与验证”(正向思维),并覆盖从静态分析到动态执行的全生命周期活动。标准化的定义(如IEEE、ISO、GB)进一步明确了测试的规范性、过程性和目标导向性。

顾翔凡言:人工智能未来的发展瓶颈在于对知识的更新。唯一不变的是变化,知识发生了变化,人工智能软件能否及时跟进变化,可能阻碍人工智能的使用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档