软件测试基础知识之测试需要遵循标准

前言

软件测试是确保软件质量和可靠性的重要环节,需遵循国际标准、行业规范及用户需求。ISO 29119、IEEE系列标准和GB/T 38634等提供了详细的测试指导和规范。遵循这些标准可提高测试效率,减少错误,确保软件系统满足用户需求和质量要求。

1 软件测试基础知识之测试需要遵循标准

每个行业的软件测试都需要遵循国家国际标准、行业标准、公司标准、用户规则,才能有针对性的做好测试。

1.1 什么是标准

“标准”是对重复性事物和概念所做的统一规定,它以科学技术和实践经验的综合成果为基础,经有关方面协商一致,由主管机构批准,以特定形式发布,作为共同遵守的准则和依据

比如,某个家具或电器脱落了一个螺丝钉,只需提供型号即可在五金店或电子城或网上买一个回家给装上。 这就是制造业的标准在起作用。家用电器是根据标准制造,所以各种标准配件很容易在市场上找到,无需担心兼容性问题。

1.2 软件测试标准分类

1.2.1 国际标准- ISO 29119

国际标准化组织(ISO- International Organization for Standardization)是一个全球性的非政府组织,成立于1947年,总部位于瑞士日内瓦。ISO软件测试标准主要涉及ISO 29119标准,是由国际标准化组织(ISO)于2013年发布的一系列国际标准,用于规范软件和系统测试的过程、文档和术语。该标准由ISO/IEC JTC1/SC7负责制定,旨在提供一种全面的、一致的软件测试方法,以确保软件系统的质量和可靠性。该标准包含多个部分,每个部分都针对软件测试的不同方面进行了详细规定:

ISO/IEC/IEEE 29119 软件和系统工程 -软件测试 描述
1 第1部分: 概念和定义 该部分定义了软件测试的基本概念、术语和范围,为整个标准系列提供了基础。
2 第2部分: 测试过程 该部分详细描述了软件测试的过程,包括测试计划、测试设计、测试执行、测试评估和测试结束等活动。
3 第3部分: 测试文档 该部分规定了软件测试过程中需要产生的文档,如测试计划、测试设计规格说明书、测试报告等,以确保测试的可追溯性和可重复性。
4 第4部分: 测试技术 该部分介绍了各种软件测试技术,包括静态测试、动态测试、自动化测试等,为测试人员提供了实用的测试方法和工具。
5 第5部分: 关键字驱动测试。 该部分专注于关键字驱动测试方法:一种基于关键字的自动化测试技术,旨在提高测试效率和准确性。

1.2.2 软件测试国际标准-IEEE

国际电气与电子工程师协会(IEEE-Institute of Electrical and Electronics Engineers),是一个国际性的非营利性专业技术学会,成立于1963年1月1日,总部位于美国纽约市。IEEE在软件测试领域制定了一系列标准,这些标准旨在指导软件测试的实践,确保软件的质量和可靠性。

NO IEEE软件测试标准 描述
1 IEEE 829-1998(或简称829): 软件测试文档标准 该标准定义了一套文档,用于8个已定义的软件测试阶段。每个阶段可能产生它自己单独的文件类型,为软件测试提供了详细的文档化指导。有助于确保软件测试的透明性和可追溯性,使测试活动更加规范和系统化。
2 IEEE 1008: 单元测试的标准 单元测试是软件测试中的一个重要环节,旨在测试软件系统中的最小可测试单元(如函数、模块等)。该标准指导如何进行有效的单元测试,确保软件的基本组成单元符合预期要求。
3 IEEE 1012: 软件检验和验证的标准 该标准不仅关注测试过程,还涉及软件产品的整个生命周期中的验证活动。确保软件产品在整个开发过程中都符合预定的质量标准和用户需求。
4 IEEE 1028: 软件检查的标准 软件检查是软件测试的一种形式,通常涉及对软件代码、文档等的审查。通过同行评审等方式,发现软件中的潜在问题,提高软件质量。
5 IEEE 1044: 软件异常分类的标准 1044-1: 软件异常分类指南 该标准提供了软件异常分类的框架和指南,有助于更好地理解和处理软件中的异常情况。为软件异常管理提供统一的标准和方法,提高软件的可维护性和可靠性。
6 IEEE 12207: 软件生命周期过程和数据的标准 该标准定义了软件开发和维护的一套过程,包括需求定义、设计、开发、测试和维护等。为整个软件生命周期的管理提供了全面的指导,确保软件开发过程的规范性和有效性。
7 IEEE 730: 软件质量保证计划的标准 定义了软件质量保证计划的内容和要求。
8 IEEE 1061: 软件质量度量和方法学的标准 提供了软件质量度量的方法和工具

1.2.3 CMM

软件能力成熟度模型(CMM-Capability Maturity Model for Software) 由美国卡内基-梅隆大学软件工程研究所(CMU SEI)研究制订的,一种用于评价软件承包能力并帮助其改善软件质量的方法。CMM为软件测试提供了一个框架和指导,帮助组织评估和改进其软件测试过程,从而提高软件质量和开发效率。

NO CMM等级 描述
1 初始级: (Initial) 在这一级别,软件测试往往缺乏规范和计划,测试活动可能仅在编码完成后进行,且主要依赖于测试人员的个人经验和能力。软件测试的质量和效果不稳定,难以保证软件的整体质量。
2 可重复级: (Repeatable) 在这一级别,组织开始建立基本的管理制度和规程,包括测试计划、测试用例和测试报告等。 测试活动开始按照一定的流程进行,测试结果的可重复性得到提高。
3 已定义级: (Defined) 在这一级别,软件测试过程被明确定义,并形成了标准化的测试流程、方法和工具。 测试计划、测试用例和测试报告等文档更加完善,测试活动更加规范化和系统化。
4 已管理级: (Managed) 在这一级别,组织开始使用统计过程控制等量化手段来管理软件测试过程。 测试活动的质量和效率得到进一步提高,能够预测和控制测试过程的质量和风险。
5 优化级: (Optimizing) 在这一级别,组织能够持续改进软件测试过程,引入新的测试技术和方法,提高测试效率和质量。 通过收集和分析测试数据,组织能够不断优化测试过程,以更好地满足业务需求和质量要求。

1.2.4 国家标准- GB/T 38634

GB:"国家标准"的汉语拼音缩写,具有法律层面的意义,是必须强制执行的标准

GB/T:推荐性国家标准,不具有强制性,任何单位都有权决定是否采用,一旦接受并采用,或各方商定同意纳入经济合同中,它就成为各方必须共同遵守的技术依据,具有法律上的约束性。

GB/T 38634标准主要适用于各个企业,用于规范相关的软件测试过程,建立适合自己的软件测试管理和测试技术体系。该标准修改采用了ISO/IEC/IEEE 29119标准,并对技术部分进行了适当的调整,该标准通过定义软件测试的基本概念、测试过程、测试文档和测试技术等方面的要求,为软件测试活动提供了全面的指导。

GB/T 38634 .n-2020 系统与软件工程 -软件测试 描述
1 第1部分: 概念和定义 该部分主要定义了软件测试领域的基本概念和术语,为后续的测试过程、文档和技术提供了基础。
2 第2部分: 测试过程 该部分定义了软件测试的过程模型,包括组织级测试过程、测试管理过程和动态测试过程。具体过程包括测试策划、测试监测和控制、测试完成等,以及动态测试中的测试设计、测试环境构建、测试执行和测试事件报告等。这些过程共同构成了软件测试的完整流程。
3 第3部分: 测试文档 该部分规定了软件测试文档的模板和要求。测试文档是测试过程中指定过程的输出,包括测试计划、测试状态报告、测试完成报告等。这些文档为测试活动的组织、监控和总结提供了重要的依据。GB/T 38634.3-2020适用于所有软件开发生存周期模型中的测试,文档模板可在任何组织、项目或小规模测试活动中使用。
4 第4部分: 测试技术 该部分描述了软件测试的设计和实现技术,包括基于规格说明的测试设计技术、基于结构的测试设计技术和基于经验的测试设计技术等。这些技术为导出测试用例、执行测试和评估测试结果提供了具体的方法和指导。

1.2.5 行业标准

电信行业、银行业、保险行业、运输行业等不同行业,业务不同,所用的软件系统也不同。做测试的时候要了解特定行业的相关标准,才能做更好的一个测试。

比如,在银行业,软件测试行业标准主要体现在《银行业软件测试环境管理规范》(JR/T 0281-2024)这一金融行业标准上。该标准由中国人民银行发布,并于2024年1月15日正式实施。该标准对于提高银行业软件测试的规范性和有效性具有重要意义。它有助于银行业金融机构建立系统化的测试环境管理体系,提高测试环境运行的稳定性、安全性和可控性,从而提升银行业应用系统的测试质量和测试工作效率。同时,该标准也为银行业金融机构在软件测试环境管理方面提供了指导和参考。

1.2.6 公司标准

除了遵循国家标准、行业标准外,也需要遵循公司标准。做软件测试前要了解公司关于软件测试的规定,避免在测试在出现与公司标准不符的问题。

1.2.7 用户规定

用户是软件的最终使用者,在软件测试的需求分析阶段就需要了解用户对软件的相关想法或规定。这样经过软件测试后的系统才能最大概率的达到用户的需求。

1.3 遵循标准案例

1.3.1 测试5层居民楼的电梯

根据国家标准,五层居民楼或者六层以下的居民楼是不设置电梯的。所以,答案是不测。软件测试前要看国家、行业、公司标准,看用户的特殊要求,而不是上来就测。测试应该追溯用户需求,我们要看一下,实际上需要什么?

1.3.2 求1+0.1结果

题目:1+0.1=()

A.1.1 B.1 C.2 D.1.100

答案:C。

这是中国移动的面试题。因为打电话一分钟超了零点一分钟,要按两分钟来计费的,这属于行业标准。做软件测试前,要考虑行业标准和公司标准。

1.4 使用原则

软件测试要了解国家国际标准、行业标准,公司标准,用户的特殊需求,追溯用户需求,这样才能有针对性的、更好的做测试,而不是想怎么测就怎么测。