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

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

测试设计技术

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

测试覆盖率测量

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

总体结论

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

相关推荐
holeer2 天前
【V3.0】「酒店 × 视觉AI」项目 | 需求分析说明书(软件工程概论 - 课程作业三)
人工智能·软件工程·需求分析·原型设计·总体设计·结构化设计
雾江流2 天前
Xtra 2.54.1 | Twitch直播第三方客户端,开源纯净无广
软件工程
张较瘦_3 天前
[论文阅读] AI + 教育 | 不是单纯看视频!软件工程培训的游戏化融合之道
论文阅读·人工智能·软件工程
张较瘦_3 天前
[论文阅读] AI + 软件工程 | 用统计置信度破解AI功能正确性评估难题——SCFC方法详解
论文阅读·人工智能·软件工程
@insist1233 天前
软考-软件设计师-计算机体系结构核心考点与应用
软件工程·软考·软件设计师
零一iTEM4 天前
Bambu Studio 在Windows上无法启动
笔记·软件工程·学习方法
yzx9910134 天前
重构边界:软件工程与计算机科学的未来就业方向深度观
重构·软件工程
木枷5 天前
KIMI-DEV: AGENTLESS TRAINING AS SKILL PRIORFOR SWE-AGENTS
人工智能·软件工程
木枷7 天前
SWE-smith: Scaling Data for Software Engineering Agents
人工智能·软件工程
郝学胜-神的一滴7 天前
在Vibe Coding时代,学习设计模式与软件架构
人工智能·学习·设计模式·架构·软件工程