如何实现未使用的变量赋值的数据流覆盖?

时间:2016-04-01 15:26:38

标签: code-coverage variable-declaration dataflow test-coverage

在数据流覆盖中,DU路径用于隔离在整个代码部分中定义和使用的变量。

在这样的函数场景中,如何编写涵盖变量x的所有定义的测试用例?

因为它每次只分配一个新值,但在此函数的任何地方都没有使用:

Function x (int y, int z) {
   int x = 0;
   M = y + z;
   My_Array = [1,2,3];        
   if (0 < M < 10)
       x = My_Array[1];
   else if (10 < M < 20)
       x = My_Array[2];
   else
       x = 0;
}

1 个答案:

答案 0 :(得分:1)

在测试中使用数据流分析的方法是

  • 分析代码
  • 如果数据流分析发现代码中存在任何问题,那么构建一个没有这些问题的理想数据流
  • 根据理想的数据流编写测试。测试将通过,因为我们正在根据代码的清理视图来设计它们。
  • 纠正代码中的任何问题以匹配理想的数据流。只要您在更正代码时没有犯错,测试仍会通过。

DU路径分析假定所有变量都已定义然后使用。如果在代码结束之前未使用变量,则代码中出现错误,我们会按上述方法对其进行更正。 DUK路径分析考虑“杀死”(重新分配变量或退出程序的位置),但它认为杀死不使用需要以相同方式纠正的错误。

所以,在你的例子中,我们消除了所有未使用的赋值,发现没有代码,没有可测试的东西,函数可以内联!