软件评测师 · 高频练习

MC/DC 为什么要求每个条件独立影响判定结果?

中级 单选题 第 826 题 中等 软件评测师MC/DC修正条件判定覆盖逻辑覆盖白盒测试
题目

某判定表达式为 (A AND B) OR C。现有测试已经让 A、B、C 分别取过真和假,整个判定结果也取过真和假,但测试负责人发现无法证明每个基本条件都曾在其他条件保持不变时独立改变判定结果。该测试最明确没有满足的是()。

A 语句覆盖
B 判定覆盖
C 条件覆盖
D 修正条件/判定覆盖 MC/DC
题目类型:原创高频练习题 用途:用于帮助理解软件评测师相关考点和答案解析,不等同于官方真题。
正确答案
D
答案解析

题干已经说明每个基本条件都取过真和假,且整体判定结果也取过真和假,因此具备条件覆盖和判定覆盖的基本特征。但 MC/DC 还要求证明每个基本条件都能独立影响判定结果;现有测试缺少这种成对证据,所以没有满足 MC/DC。

选项分析

A

错误。题干讨论的是复合判定中条件与结果的关系,不能据此断定语句覆盖一定未满足。

B

错误。题干已经说明整体判定结果取过真和假,判定覆盖的核心要求已经具备。

C

错误。A、B、C 都分别取过真和假,已经具备条件覆盖的核心特征。

D

正确。缺少每个基本条件独立影响判定结果的证据,正是未满足 MC/DC。

本题为什么容易错

最常见误区是认为“条件覆盖+判定覆盖=MC/DC”。前两者只统计真、假是否出现,MC/DC 还要看因果关系:到底是不是这个条件单独改变,才让整个判定翻转。

先看结论

简短答案

MC/DC 为什么要求每个条件独立影响判定结果,正确答案是 D(修正条件/判定覆盖 MC/DC)。题干已经说明每个基本条件都取过真和假,且整体判定结果也取过真和假,因此具备条件覆盖和判定覆盖的基本特征。但 MC/DC 还要求证明每个基本条件都能独立影响判定结果;现有测试缺少这种成对证据,所以没有满足 MC/DC。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
语句覆盖 本题干扰项 错误。题干讨论的是复合判定中条件与结果的关系,不能据此断定语句覆盖一定未满足。 看到该词不要急着选,先判断是否真正解决题干问题
判定覆盖 本题干扰项 错误。题干已经说明整体判定结果取过真和假,判定覆盖的核心要求已经具备。 看到该词不要急着选,先判断是否真正解决题干问题
条件覆盖 本题干扰项 错误。A、B、C 都分别取过真和假,已经具备条件覆盖的核心特征。 看到该词不要急着选,先判断是否真正解决题干问题
修正条件/判定覆盖 MC/DC 本题正确答案 正确。缺少每个基本条件独立影响判定结果的证据,正是未满足 MC/DC。 看到题干核心场景时优先联想到它
本题易混淆选项怎么区分
  • 语句覆盖:错误。题干讨论的是复合判定中条件与结果的关系,不能据此断定语句覆盖一定未满足。
  • 判定覆盖:错误。题干已经说明整体判定结果取过真和假,判定覆盖的核心要求已经具备。
  • 条件覆盖:错误。A、B、C 都分别取过真和假,已经具备条件覆盖的核心特征。
复习

知识点详解

MC/DC 常用于对安全性、可靠性要求较高的软件测试。它要求判定中的每个入口点和出口点都被执行,每个判定结果都取过所有可能结果,每个基本条件也取过所有可能结果,并且每个基本条件都被证明能够独立影响判定结果。所谓独立影响,通常通过一对测试用例证明:其他相关条件保持不变,只改变目标条件,整体判定结果随之改变。MC/DC 通常不要求穷举全部 2 的 n 次方种组合,因此它在测试强度与用例数量之间取得折中。

备考速记

速记:条件判定看真假都走过,MC/DC 还要证明每个条件都能单独把总结果掰过去。

MC/DC 在白盒测试场景中的作用

MC/DC在本题中的核心价值,是解决“某判定表达式为 (A AND B) OR C。现有测试已经让 A、B、C 分别取过真和假,整个判定结果也取过真和假,但测试负责人发现无法证明每个基本条件都曾在其他条件保持不变时独立改变判定结果。该测试最明确没有满足的是()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给出复合逻辑表达式,判断一组用例是否满足 MC/DC。
  • 要求补充最少测试用例,使某个基本条件能够独立影响判定。
  • 比较条件覆盖、判定覆盖、MC/DC 和多条件覆盖的强弱与差异。
MC/DC 在软件评测师软考中的考法

软考选择题通常不会只考概念定义,还会把MC/DC放到白盒测试场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。

解题思路

可以用三组对照理解。验证 A:比较 (真,真,假) 和 (假,真,假);验证 B:比较 (真,真,假) 和 (真,假,假);验证 C:比较 (假,真,真) 和 (假,真,假)。每一对都只改变一个目标条件,判定结果也随之改变,这才体现“独立影响”。

考点定位

MC/DC 不只是条件覆盖加判定覆盖。它要求为每个基本条件找到一对测试,在其他相关条件保持不变时,仅改变该条件就能使整个判定结果改变。

易错提醒

  • 只统计每个条件是否出现过真和假,没有构造对照测试。
  • 一对测试同时改变多个条件,无法证明哪个条件独立影响结果。
  • 把 MC/DC 误认为必须穷举所有条件组合,和多条件覆盖混淆。

备考提示

  • 做 MC/DC 题时,逐个选定目标条件,再找只改变它且能翻转判定结果的一对用例。
  • 复习顺序建议从语句、判定、条件、条件判定组合,再到 MC/DC 和多条件覆盖,逐层比较增强了什么要求。

你可能还想了解

  • MC/DC 和条件判定覆盖有什么区别?
  • 怎样证明一个基本条件独立影响判定结果?
  • MC/DC 是否需要穷举全部条件组合?
  • 复合判定的最少 MC/DC 用例怎样设计?

本文小结

条件覆盖和判定覆盖只能说明真假结果出现过;MC/DC 还需要为每个基本条件找到一对对照用例,证明只改变该条件就能使整个判定结果翻转。