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

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

测试设计技术

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

测试覆盖率测量

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

总体结论

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

相关推荐
嘿黑嘿呦13 天前
chap 8排序
算法·蓝桥杯·排序算法·软件工程
旧曲重听113 天前
2026前端技术从「夯」到「拉」
前端·程序人生·职场和发展·软件工程
承渊政道14 天前
飞算JavaAI 智能引导背后的多 Agent 协作机制解析:从老旧 Java 后台升级到可运行工程
java·开发语言·spring boot·安全·intellij-idea·软件工程·ai编程
apcipot_rain14 天前
计科八股20260616(1)——堆存中位数、链表判环、黑白测试、敏捷开发与瀑布模型、配置管理、持续集成、池化
数据结构·算法·软件工程
lisw0514 天前
【计算机科学技术】路由器(route):概念、历史、内容与战略!
机器学习·智能路由器·软件工程
培培说证14 天前
大数据、人工智能、计算机、软件工程,到底怎么选?
大数据·人工智能·软件工程
文艺倾年15 天前
【强化学习】MDP、贝尔曼方程与CartPole 编程,20W字总结(二)
人工智能·软件工程·强化学习
郝学胜-神的一滴15 天前
CMake 017:彩色日志输出实战
linux·c语言·开发语言·c++·软件工程·软件构建·cmake
小程故事多_8015 天前
AI软件工程范式革命,终结五十年的“手工伪工程”时代
人工智能·软件工程
精益数智小屋16 天前
项目管理看板如何拆解任务进度?项目管理看板解决跨部门协作难题
大数据·人工智能·数据分析·云计算·软件工程