0

最近开始做软件测试,遇到了一些问题。

成对测试是该参数可以具有的所有值的组合,是否也适用于布尔表达式?

例如,

布尔表达式为 (A || B) && C (假设每个参数只有 0 和 1。)

在这里,它适用于 Boolean Exp 吗?

第二个问题是关于 MC/DC。

我已经学会了如何通过 MC/DC 制作测试用例

但是,我想知道如何证明 MC/DC 可以覆盖几乎 90% 的代码覆盖率?

在 (A || B) && C 中,我猜有 4 个组合测试用例。

但是,所有组合都是 8. MC/DC 如何减少案例?

4

1 回答 1

0
  1. 它适用于布尔表达式吗?

是的。它适用于布尔表达式。

真值表

获取布尔表达式的所有可能组合,我们可以得到上面的真值表。


  1. MC/DC 如何证明覆盖了几乎 90% 的代码覆盖率?

MC/DC 不能保证超过 90% 的代码覆盖率。但是,它可以确保决策分支条件覆盖,它们是一段代码的组成部分。

但是,它怎么能证明覆盖呢?

答案将在于 MC​​/DC 准则的属性:

  • 布尔表达式中的每个条件都应采用所有可能的结果。
  • 每一个决定都包含每一个可能的结果。
  • 每个条件都显示为独立影响决策的结果。

因此,每个条件的布尔结果都已被考虑(真/假),这些条件的布尔结果(决策)的组合将产生每个可能的值(真/假)。


  1. MC/DC 如何减少案件?

当您识别 MC/DC 对时,您将得出以下表格:

MC/DC 对

其中一些对是相似的。为什么?因为当您评估布尔表达式时,您可以将某些条件短路。这意味着即使没有评估至少一个条件,您的表达式也可以做出决定。

最终 MC/DC 测试用例

这将是最终结果。请注意,某些行具有 (-) 空值。这意味着它没有被评估,但可以推断出决定。


虽然相关,但不相关,我在这里写了一篇文章:MC/DC 如何加速单元测试创​​建

尽管迟到了,但希望这会有所帮助。:D

于 2018-11-20T05:26:42.453 回答