testing - 修改条件/决策范围的最少测试用例集

标签 testing code-coverage mc-dc

我有一个关于修改后的条件/决定范围的问题,我无法解决。

因此,如果我有表达式((A || B) && C)并且任务是用最少数量的测试用例接收100%MD / DC。

我将其分为两部分,其中最少的(A || B)(X && C)测试用例数量。

(A || B) : {F, F} = F, {F, T} = T, {T, -} = T
(X && C) : {F, -} = F, {T, F} = F, {T, T} = T


“-”表示它们的值无关紧要,因为它们不会被编译器评估。

因此,当我将它们结合在一起时,我将其作为最小的测试用例集:

((A || B) && C) : {{F, F}, -} = F, {{F, T}, F} = F, {{T, -}, T} = T


但是当我用google搜索时,它也在集合中:{{F, T}, T} = T
我不同意哪个,因为我在其他测试中分别测试了该集合的各个部分,不是吗?

因此,我似乎想念第四个测试用例添加到集合中的内容,如果有人可以解释为什么我必须拥有它,那就太好了?

最佳答案

回想一下,对于MC / DC,对于每个条件P(在您的情况下为A / B / C),您都需要两个测试用例T和T',以便P在T中为真,在T'中为假,从而谓词的结果在一个测试案例中为true,在另一个测试案例中为false。

(((A || B)&& C)的MC / DC封面是:


T1:(F,F,T)-> F(您的第一个测试用例)
T2:(F,T,T)-> T(与T1相比B翻转结果,缺少)
T3:(T,F,T)-> T(与第三个测试用例T1相比,翻转结果)
T4:(F,T,F)-> F(与第二个测试用例T2相比,C翻转结果)


在具体的测试用例中,您不能使用“-” /“无关”值:在使用系统时必须做出选择。

因此,答案中缺少的是一对两个测试用例(T1和T2),其中仅翻转第二个条件B也会翻转结果。

关于testing - 修改条件/决策范围的最少测试用例集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30540420/

相关文章:

c# - OpenCover:可以将多个报告合并为一个吗?

unit-testing - java中的修改条件/决策覆盖率分析工具

iphone - 排除 UISpec 中的代码

visual-studio-2010 - 需要一些在 VS2010 中编写自动化测试的教程

android - 如何从 Android Espresso 测试的 google Firebase 获取代码覆盖率报告

java - 在一个语句中测试许多 AND/OR 条件的覆盖率

testing - Cypress 在多个测试套件中重用测试用例

javascript - 单击具有与文本匹配的相同类的元素并退出 Protractor

visual-studio - 代码覆盖率 Visual Studio 2010