A formal definition of loop unrolling with applications to test coverage
<|reference_start|>A formal definition of loop unrolling with applications to test coverage: 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.   While initially motivated by the need to improve standard test coverage practices (which execute loop bodies only once), to better testing coverage, the framework presented here is applicable to any form of reasoning about loops.<|reference_end|>
@article{meyer2024a,
    title={A formal definition of loop unrolling with applications to test coverage},
    author={Bertrand Meyer},
    journal={arXiv preprint arXiv:2403.08923},
    year={2024},
    archivePrefix={arXiv},
    eprint={2403.08923},
    primaryClass={cs.SE}
}