对判定式 D=(A AND B) OR C,T表示真、F表示假。若要求用尽量少的测试用例满足MC/DC,下列用例组可行的是()。
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可同时作为A、B两组独立影响对的基准,TFF与TFT又能证明C,4例完成覆盖。
错误。四个用例的判定结果都为真,无法证明任何条件改变会独立改变D。
错误。只有FFF与FFT能证明C;A或B单独变化时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。