Data flow testing creates test requirements as definition-use (DU) associations, where a definition is a program location that assigns a value to a variable and a use is a location where that value is accessed. Data flow testing is expensive, largely because of the number of test requirements. Luckily, many DU-associations are redundant in the sense that if one test requirement (e.g., node, edge, DU-association) is covered, other DU-associations are guaranteed to also be covered. This relationship is called subsumption. Thus, testers can save resources by only covering DU-associations that are not subsumed by other testing requirements. In this work, we formally describe the Data Flow Subsumption Framework (DSF) conceived to tackle the data flow subsumption problem. We show that DFS is a distributive data flow analysis framework which allows efficient iterative algorithms to find the Meet-Over-All-Paths (MOP) solution for DSF transfer functions. The MOP solution implies that the results at a point $p$ are valid for all paths that reach $p$. We also present an algorithm, called Subsumption Algorithm (SA), that uses DSF transfer functions and iterative algorithms to find the local DU-associations-node subsumption; that is, the set of DU-associations that are covered whenever a node $n$ is toured by a test. A proof of SA's correctness is presented and its complexity is analyzed.
翻译:数据流测试是定义使用( DU) 协会的测试要求, 定义是给变量定值的程序位置, 而使用是获得该值的地点。 数据流测试费用昂贵, 主要是因为测试要求数量众多。 幸运的是, 许多 DU- 连接是多余的, 因为如果包含一个测试要求( 例如节点、 边缘、 DU- 连接), 其它 DU- 连接也得到保障。 此关系被称为 递增 。 因此, 测试者只能通过覆盖不是其他测试要求包含的 DU- 连接点来节省资源。 在这项工作中, 我们正式描述为处理数据流补充问题而设计的数据流缩放框架( DSF) 。 我们表明, 如果包含一个测试要求( 例如节点、 边缘、 DU- 连接), 那么DU- PARP( IP) 将找到 DSF- Offer- AU- An- PAR) 的解决方案。 MOPO 解决方案意味着, $PO 的计算结果对每次达到 $ 和 SA 的路径都是 SA- a surrent sult sult sult supping 。 我们还 。 我们使用 SA SA 的运 调 要求 的运算 。