Testing 使用PICT进行测试,但测试用例不完整

Testing 使用PICT进行测试,但测试用例不完整,testing,Testing,我正在测试PICT中的一个三角形问题。我在测试三角形是等边三角形、等腰三角形还是不等边三角形。问题是我从来没有得到过等边三角形 Side1: 5,6,7,8,9,10 Side2: 5,6,7,8,9,10 Side3: 5,6,7,8,9,10 Type: equilateral, isosceles, scalene IF (([Side1] = [Side2]) OR ([Side2] = [Side3]) OR ([Side3]

我正在测试PICT中的一个三角形问题。我在测试三角形是等边三角形、等腰三角形还是不等边三角形。问题是我从来没有得到过等边三角形

Side1:        5,6,7,8,9,10
Side2:        5,6,7,8,9,10
Side3:        5,6,7,8,9,10
Type:         equilateral, isosceles, scalene

IF (([Side1] = [Side2]) OR ([Side2] = [Side3]) OR ([Side3] = [Side1])) THEN [Type] = "isosceles"  ELSE [Type] = "scalene";
IF (([Side1] = [Side2]) AND ([Side2] = [Side3]) AND ([Side3] = [Side1])) THEN [Type] = "equilateral";
但随机的是当我把最后一行改成

IF (([Side1] = [Side2]) AND ([Side2] = [Side3]) AND ([Side3] = [Side1])) THEN [Type] = "isosceles";
我随机得到的值会产生一个等边三角形。如何确保在正确的代码中也包含这些值?

必须使用PICT中可用的无条件约束(不变量)

在这种情况下,您必须替换这一行

IF (([Side1] = [Side2]) AND ([Side2] = [Side3]) AND ([Side3] = [Side1])) THEN [Type] = "equilateral";
关于这一点:

[Side1] = [Side2] and [Side2] = [Side3] and [Side3] = [Side1];
因此,生成的测试集将至少包含1个等边三角形

有关详细信息,请参阅文档:

尝试以下操作:

Side1:        5,6,7,8,9,10
Side2:        5,6,7,8,9,10
Side3:        5,6,7,8,9,10
Type:         equilateral, isosceles, scalene

IF (([Side1] = [Side2] AND [Side2] <> [Side3]) OR ([Side2] = [Side3] AND [Side3] <> [Side1]) OR ([Side3] = [Side1] AND [Side1] <> [Side2])) THEN [Type] = "isosceles";
IF (([Side1] = [Side2]) AND ([Side2] = [Side3])) THEN [Type] = "equilateral";
IF ([Side1] <> [Side2] AND [Side2] <> [Side3] and [Side3] <> [Side1]) THEN [Type] = "scalene";
Side1:5,6,7,8,9,10
侧面2:5,6,7,8,9,10
第三面:5,6,7,8,9,10
类型:等边,等腰,不等边
如果([Side1]=[Side2]和[Side2][Side3])或([Side2]=[Side3]和[Side3][Side1])或([Side3]=[Side1]和[Side1][Side2]),则[Type]=“等腰”;
如果([Side1]=[Side2])和([Side2]=[Side3]),则[Type]=“等边”;
如果([Side1][Side2]和[Side2][Side3]和[Side3][Side1]),则[Type]=“不定线”;

原因是您的逻辑在案例之间重叠,您应该明确您的条件,例如每个案例只有一个结果。上面的例子很有效;我验证了它。祝你好运

谢谢你的回答,但是有两个问题为什么这不起作用。首先,如果这一行是真的,我想改变“类型”,但这不会发生。第二,通过添加这一行,这些条件必须为真,因此其他两种类型永远不会出现。这就是为什么:“不变量声明域的始终有效限制”。