Techniques to achieve various forms of test coverage, such as branch coverage, typically do not iterate loops; in other words, they treat a loop as a conditional, executed zero or one time. Existing work by the author and collaborators produces test suites guaranteeing full branch coverage. More recent work has shown that by unrolling loops the approach can find significantly more bugs. The present discussion provides the theoretical basis and precise definition for this concept of unrolling.
翻译:实现各种形式测试覆盖(如分支覆盖)的技术通常不会迭代循环;换言之,它们将循环视为条件语句,仅执行零次或一次。作者及其合作者的既有工作生成了保证完全分支覆盖的测试套件。近期研究表明,通过展开循环,该方法能够发现显著更多的错误。本文讨论为此类展开概念提供了理论基础与精确定义。