GB/T 38634.4-2020《系统与软件工程 软件测试 第4部分:测试技术》之整体解读

如果这篇文章对你有帮助,不妨点个关注,期待与你分享更多!

测试设计技术

  • 基于规格说明的测试设计技术:该类技术以测试依据(如需求、规格说明等)为首要信息来源设计测试用例。包括等价类划分,将输入和输出划分为等价类,每个等价类作为测试条件和覆盖项,通过一对一或最小化方法导出测试用例;分类树,将输入划分成分类和类,通过组合分类导出覆盖项;边界值分析,对有序集和子集的边界进行分析,采用二值或三值边界测试确定覆盖项;语法测试,基于输入语法模型,导出"选项"和"变异"作为覆盖项;组合测试设计技术,包括完全组合、成对、单一选择、基本选择等,通过参数和值的组合导出测试用例;判定表测试,以判定表形式呈现条件和动作的逻辑关系,判定规则为覆盖项;因果图,用因果图表示原因和结果的逻辑关系,判定规则为覆盖项;状态转移测试,基于状态模型,覆盖状态、转移等;场景测试,基于交互序列模型,覆盖主场景和备选场景;随机测试,从输入域随机选择输入值生成测试用例。
  • 基于结构的测试设计技术:以测试项的结构(如源代码等)为首要信息来源。语句测试以可执行语句为测试条件和覆盖项,通过识别控制流子路径导出用例;分支测试以控制流分支为测试条件和覆盖项;判定测试以判定结果为覆盖项;分支条件测试覆盖判定中条件的取值和判定结果;分支条件组合测试覆盖判定中条件布尔值的所有可行组合;修正条件判定覆盖测试覆盖单个布尔条件独立影响判定结果的组合;数据流测试基于变量定义和使用,包括全定义、全计算使用、全谓词使用、全使用、全定义使用路径等测试类型,分别以相应的定义使用对或子路径为覆盖项。
  • 基于经验的测试设计技术:以测试人员的知识和经验为首要信息来源,如错误猜测法,根据缺陷类型检查清单设计测试用例,缺陷类型为测试条件,无公认的测试覆盖项。

测试覆盖率测量

  • 基于规格说明的测试设计技术的测试测量:等价类划分覆盖率为覆盖的分区数量与总分区数量之比;分类树方法根据组合方式不同,最小化组合覆盖率为覆盖的类数量与总类数量之比,最大化组合覆盖率为覆盖的类组合数量与总类组合数量之比;边界值分析覆盖率为覆盖的边界值数量与总边界值数量之比;语法测试和随机测试目前无业界认可的覆盖率计算方法;组合测试设计技术中,完全组合覆盖率为覆盖的键值对唯一组合数量与总组合数量之比,成对测试覆盖率为覆盖的键值对唯一对数量与总唯一对数量之比,单一选择测试覆盖率为覆盖的键值对数量与总键值对数量之比,基本选择测试覆盖率为覆盖的基本选择组合数量与总组合数量之比;判定表测试覆盖率为覆盖的可行判定规则数量与总可行判定规则数量之比;因果图覆盖率为覆盖的判定规则数量与总可行判定规则数量之比;状态转移测试中,全状态覆盖率为覆盖的状态数量与总状态数量之比,单步转移覆盖率为覆盖的单步有效转移数量与总单步有效转移数量之比,全转移覆盖率为覆盖的有效和无效转移数量与总有效和无效转移数量之比,多步转移覆盖率为覆盖的N+1步有效转移数量与总N+1步有效转移序列数量之比;场景测试覆盖率为覆盖的场景数量与总场景数量之比。
  • 基于结构的测试设计技术的测试测量:语句测试覆盖率为覆盖的可执行语句数量与总可执行语句数量之比;分支测试覆盖率为覆盖的分支数量与总分支数量之比;判定测试覆盖率为覆盖的判定结果数量与总判定结果数量之比;分支条件测试覆盖率为覆盖的判定中条件取值数量与判定结果数量之和与总条件布尔值数量与判定结果总数量之和之比;分支条件组合测试覆盖率为覆盖的判定条件布尔值组合数量与总唯一组合数量之比;修正条件判定测试覆盖率为覆盖的允许单个布尔条件独立影响判定结果的唯一可行组合数量与总唯一可行组合数量之比;数据流测试中,全定义测试覆盖率为覆盖的与数据定义 - 使用对相关的定义数量与总不同变量定义的数据定义 - 使用对数量之比,全计算使用测试覆盖率为覆盖的定义 - 计算 - 使用对数量与总定义 - 计算 - 使用对数量之比,全谓词使用测试覆盖率为覆盖的唯一定义 - 谓词 - 使用对数量与总定义 - 谓词 - 使用对数量之比,全使用测试覆盖率为覆盖的定义 - 使用对数量与总定义使用对数量之比,全定义使用路径测试覆盖率为覆盖的从变量定义到使用的子路径数量与总子路径数量之比。
  • 基于经验的测试设计技术的测试测量:错误猜测法目前无业界认可的覆盖率计算方法。

总体结论

本标准定义了系统与软件工程中软件测试的测试设计技术及相应的测试覆盖率测量方法。测试设计技术分为基于规格说明、基于结构和基于经验三类,各类技术从不同角度为测试用例的设计提供指导,可单独或组合使用以提高测试有效性。测试覆盖率测量方法则为评估测试的充分程度提供了量化依据,有助于确保测试过程的完整性和有效性。这些技术和方法适用于测试人员、测试经理、开发人员和项目经理等,特别是负责管理和实施软件测试的人员,对规范软件测试过程、提高软件质量具有重要意义。

相关推荐
雾江流5 小时前
BiliPai 5.0.5 | B站开源第三方应用,纯净无广流畅
软件工程
JMchen1236 小时前
AI编程与软件工程的学科融合:构建新一代智能驱动开发方法学
驱动开发·python·软件工程·ai编程
muddjsv1 天前
软件工程:职业全景与前景深度解析
软件工程
明洞日记1 天前
【图解软考八股034】深入解析 UML:识别标准建模图示
c++·软件工程·软考·uml·面向对象·架构设计
muddjsv1 天前
软件工程编程语言学习:从入门到工程化的路线与建议
软件工程
宇钶宇夕2 天前
CoDeSys入门实战一起学习(二十八):(ST)三台电机顺起逆停程序详解
运维·学习·自动化·软件工程
学嵌入式的小杨同学2 天前
【Linux 封神之路】进程进阶实战:fork/vfork/exec 函数族 + 作业实现(含僵尸进程解决方案)
linux·开发语言·vscode·嵌入式硬件·vim·软件工程·ux
加密狗复制模拟2 天前
破解加密狗时间限制介绍
安全·软件工程·个人开发
muddjsv2 天前
软件工程核心课程学习规划表(按时间递进)
软件工程
明洞日记3 天前
【软考每日一练030】软件维护:逆向工程与再工程的区别与联系
c++·软件工程·软考·逆向工程