Computational Complexity of Edge Coverage Problem for Constrained Control Flow Graphs
Jakub Ruszil, Artur Pola\'nski, Adam Roman, Jakub Zelek

TL;DR
This paper analyzes the complexity of achieving edge coverage in control flow graphs with various constraints, revealing polynomial-time solutions for positive constraints and NP-completeness for others, with fixed-parameter tractability for negative constraints.
Contribution
It classifies the computational complexity of edge coverage problems with five types of constraints and provides an FPT algorithm for negative constraints.
Findings
Positive constraints are decidable in polynomial time.
Negative, MAX ONCE, ONCE, and ALWAYS constraints are NP-complete.
An FPT algorithm is proposed for negative constraints based on the number of constraints.
Abstract
The article studies edge coverage for control flow graphs extended with explicit constraints. Achieving a given level of white-box coverage for a given code is a classic problem in software testing. We focus on designing test sets that achieve edge coverage \textit{while respecting additional constraints} between vertices. The paper analyzes how such constraints affect both the feasibility and computational complexity of edge coverage. The paper discusses five types of constraints. POSITIVE constraints require at least one test path where a given vertex precedes another. NEGATIVE constraints forbid any such test path. ONCE constraints require exactly one test path with a single occurrence of one vertex before another. MAX ONCE constraints allow such precedence in at most one test path. ALWAYS constraints require every test path containing a given vertex to also contain another vertex…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Formal Methods in Verification · Model-Driven Software Engineering Techniques
