我有一个关于修改后的条件/决定范围的问题,我无法解决。
因此,如果我有表达式((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/