软件评测师 · 高频练习

判定式 (A AND B) OR C 的 MC/DC 最少怎么选用例?

中级 单选题 第 833 题 困难 软件评测师MC/DC修正条件判定覆盖白盒测试最小测试集
题目

对判定式 D=(A AND B) OR C,T表示真、F表示假。若要求用尽量少的测试用例满足MC/DC,下列用例组可行的是()。

A TTF、FTF、TFF、TFT
B TTT、TTF、TFT、FTT
C FFF、TFF、FTF、FFT
D 只使用TTT和FFF两个用例
题目类型:原创高难度练习题 用途:用于帮助理解软件评测师相关考点和答案解析,不等同于官方真题。
正确答案
A
答案解析

A组可分别构造独立影响对:A用TTF与FTF,保持B=T、C=F,只改A,D由T变F;B用TTF与TFF,保持A=T、C=F,只改B,D由T变F;C用TFF与TFT,保持A=T、B=F,只改C,D由F变T。共4个用例即可覆盖3个条件的独立影响。

选项分析

A

正确。TTF可同时作为A、B两组独立影响对的基准,TFF与TFT又能证明C,4例完成覆盖。

B

错误。四个用例的判定结果都为真,无法证明任何条件改变会独立改变D。

C

错误。只有FFF与FFT能证明C;A或B单独变化时D仍为假,无法证明独立影响。

D

错误。两个用例同时改变了A、B、C,无法把判定结果变化归因到某一个条件。

本题为什么容易错

最常见的误区是把条件覆盖当成MC/DC。条件覆盖只检查A、B、C都取过真假;MC/DC还要建立因果证据,证明每一个条件确实能单独控制判定结果。

先看结论

简短答案

判定式 (A AND B) OR C 的 MC/DC 最少怎么选用例,正确答案是 A(TTF、FTF、TFF、TFT)。A组可分别构造独立影响对:A用TTF与FTF,保持B=T、C=F,只改A,D由T变F;B用TTF与TFF,保持A=T、C=F,只改B,D由T变F;C用TFF与TFT,保持A=T、B=F,只改C,D由F变T。共4个用例即可覆盖3个条件的独立影响。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
TTF、FTF、TFF、TFT 本题正确答案 正确。TTF可同时作为A、B两组独立影响对的基准,TFF与TFT又能证明C,4例完成覆盖。 看到题干核心场景时优先联想到它
TTT、TTF、TFT、FTT 本题干扰项 错误。四个用例的判定结果都为真,无法证明任何条件改变会独立改变D。 看到该词不要急着选,先判断是否真正解决题干问题
FFF、TFF、FTF、FFT 本题干扰项 错误。只有FFF与FFT能证明C;A或B单独变化时D仍为假,无法证明独立影响。 看到该词不要急着选,先判断是否真正解决题干问题
只使用TTT和FFF两个用例 本题干扰项 错误。两个用例同时改变了A、B、C,无法把判定结果变化归因到某一个条件。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • TTT、TTF、TFT、FTT:错误。四个用例的判定结果都为真,无法证明任何条件改变会独立改变D。
  • FFF、TFF、FTF、FFT:错误。只有FFF与FFT能证明C;A或B单独变化时D仍为假,无法证明独立影响。
  • 只使用TTT和FFF两个用例:错误。两个用例同时改变了A、B、C,无法把判定结果变化归因到某一个条件。
复习

知识点详解

MC/DC要求每个基本条件至少取过真和假、判定结果至少取过真和假,并且每个基本条件都被证明能够独立影响判定结果。通常用一对测试证明独立影响:除目标条件外,其他相关条件保持不变,目标条件翻转后整体判定也翻转。对n个条件的简单判定,常有机会用n+1个用例完成MC/DC,但并非所有表达式都能机械套用,仍需检查条件耦合、短路语义和不可达组合。

备考速记

MC/DC不是真假都来过,而是每个条件都要单独把最终判定掰动一次。

MC/DC 在最小测试集场景中的作用

MC/DC在本题中的核心价值,是解决“对判定式 D=(A AND B) OR C,T表示真、F表示假。若要求用尽量少的测试用例满足MC/DC,下列用例组可行的是()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给逻辑表达式,选择满足MC/DC的最小用例组。
  • 判断某组用例只满足条件覆盖还是已经满足MC/DC。
  • 区分语句、判定、条件、条件/判定和MC/DC覆盖。
MC/DC 在软件评测师软考中的考法

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

解题思路

别一口气看四行真值,按条件逐个找搭档。证明A时把B固定为真、C固定为假;证明B时把A固定为真、C固定为假;证明C时让A AND B为假。A组选出的四个用例正好能复用这些配对,因此既满足要求又比较省。

考点定位

MC/DC不是让每个条件都出现过T和F就结束,而是要为每个条件找到一对用例:其他条件保持不变,只改变目标条件,判定结果随之改变。

易错提醒

  • 比较两个用例时同时改变多个条件,无法证明目标条件独立作用。
  • 只检查每个条件出现过T和F,没有检查判定结果是否跟着改变。
  • 不先化简逻辑表达式,选了会被短路或被其他条件遮蔽的配对。

备考提示

  • 给每个条件单独写一对用例,再寻找可以复用的基准用例来减少总数。
  • 这类题适合画真值表,但最终一定要把三组独立影响对明确圈出来。

你可能还想了解

  • MC/DC和条件判定覆盖有什么区别?
  • 三个条件MC/DC一定只要四个用例吗?
  • 怎样证明一个条件独立影响判定?
  • 短路求值会影响MC/DC吗?

本文小结

用TTF分别和FTF、TFF配对可证明A、B独立影响,再用TFF与TFT证明C独立影响,因此4个用例即可满足本判定式的MC/DC。