Code coverage 如何在未使用的变量分配上实现数据流覆盖?

Code coverage 如何在未使用的变量分配上实现数据流覆盖?,code-coverage,variable-declaration,dataflow,test-coverage,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 &

在数据流覆盖中,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;
}
函数x(整数y,整数z){ int x=0; M=y+z; My_数组=[1,2,3]; 如果(0在测试中使用数据流分析的方法是

  • 分析代码
  • 如果数据流分析发现代码中存在任何问题,请构建一个没有这些问题的理想数据流
  • 基于理想数据流编写测试。测试将通过,因为我们正在基于代码的清理视图进行设计
  • 更正代码中的任何问题以匹配理想的数据流。只要您在更正代码时没有犯任何错误,测试仍然会通过
DU路径分析假设所有变量都已定义并使用。当一个变量在代码结束前没有使用时,它是代码中的一个错误,我们如上所述更正它。DUK路径分析考虑“kill”(变量被重新分配或退出程序的位置),但它认为没有使用的kill是一个需要以相同方式更正的错误


因此,在您的示例中,我们消除了所有未使用的赋值,并发现没有代码剩余,没有什么要测试的,并且函数可以内联

这是什么语言?这个函数返回什么吗?更像是一个伪代码,可以应用于多种语言,但在测试中使用了很多。它可能是void(无返回值)或返回x,但这不会影响我的问题。不管怎样,你是在问这个特定的(伪)代码要编写什么样的测试用例,还是要用什么方法来查找具有未使用定义的代码的测试用例?哦,我明白了。。事实上你是对的:)是的,我在问如果变量x每次都只是重新初始化而没有在代码中使用,那么什么样的测试用例可以覆盖变量x,所以让我们假设函数是空的。在这个问题上还需要你的帮助: