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

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

测试设计技术

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

测试覆盖率测量

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

总体结论

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

相关推荐
CETOL公差分析17 小时前
CETOL 6σ 在汽车工程领域的深度应用:从底盘到三电系统的公差优化实践
汽车·软件工程
琢磨先生David19 小时前
未来十年软件工程专业就业前景
软件工程
Terrence Shen1 天前
关于传统软件工程后端技术和当代AI智能体agent构建的harness engineering的一点思考
人工智能·软件工程
Soari2 天前
告别玩具级 Demo!深度拆解 agents-towards-production,用硬核工程把 AI Agent 推向工业级生产线
人工智能·软件工程·llmops·架构优化·genai·aiagent·生产级部署
大迪deblog2 天前
系统架构设计-关键路径真题详解
软件工程
Soari2 天前
AI 编码智能体的“安全防弹衣”:深度拆解 agent-skills,构建百分百受信任的专业技能注册表
人工智能·网络安全·github·软件工程·aiagent·claudecode·agent-skills
Dola_Zou2 天前
医疗装备的出海安全底座
安全·自动化·软件工程·软件加密
启航挨踢2 天前
软考备考资料分享
软件工程
一路往蓝-Anbo3 天前
第四章:手撕协议栈 —— 缓冲区与结构体数据的 Mock 技巧
网络·stm32·单片机·嵌入式硬件·软件工程·tdd
一路往蓝-Anbo3 天前
第二章:隔离硬件 —— 利用 CMock 伪造 GPIO 与定时器
stm32·单片机·嵌入式硬件·软件工程·信息与通信·tdd