数据流测试方法是按照程序中变量定义和使用位置来选择程序的测试路径。
一、基本概念
1.def(S)={x} 定义节点:表示在语句S中定义了变量x(此处定义表示对x进行了赋值)。
2.use(S)={x,n} 使用节点:表示在语句S中使用了变量x。
3.定义清纯(定义有效):从语句S到S'的路径上不存在变量x的其他定义,称变量x在S到S'定义有效。
4.变量x的定义使用关联(du-关联):形式为[x,S,S'],x在def(S)到use(S')之间有效(清纯)。
例如上图中变量x的du-关联为[x,1,4]。
5.du-链:一个变量的du-链是一条路径,这条路径是从变量定义到变量使用之间没有任何重定义。
6.变量的使用:
①计算使用(c-use): du-链是从含有定义语句到含有计算语句之间的路径。
②断言使用(p-use): du-链是从含有定义语句到包含两个分支断言使用语句之间的路径。
二、生成测试用例的步骤
1. 为每个变量确定“定义-使用链”(du-链)。
2. 确定测试标准。例如取全部定义、取全部使用、取全部路径等。
3. 设计测试用例来符合测试标准。
三、DU测试策略(一种简单的数据流测试策略)
即要求覆盖每个DU链至少一次。