Program coverage is an important software quality metric. Coverage is most commonly gathered in the testing lab during development. However, developers also sometimes use inexpensive forms of program coverage in production software. In the post-deployment scenario, users often place very strict requirements on tracing overheads and legal instrumentation strategies. This work deals specifically with optimizing program coverage instrumentation strategies given instrumentation requirements and limitations. The problem of optimal customized coverage instrumentation is known to be NP-hard, so a polynomial-time solver is unlikely to exist. This particular report presents a fully-optimal approach to solving the problem of customized program coverage instrumentation optimization. We encode our solution as a mixed-integer linear optimization problem. We build up a mathematical model of the constraints required to satisfy required coverage instrumentation criteria, and present a complete model for solving the customized coverage instrumentation problem.
[1]
George B. Dantzig,et al.
Linear programming and extensions
,
1965
.
[2]
Jeff T. Linderoth,et al.
Optimizing customized program coverage
,
2016,
2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).
[3]
Ben Liblit,et al.
Lightweight control-flow instrumentation and postmortem analysis in support of debugging
,
2013,
2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).
[4]
Michal Young,et al.
Residual test coverage monitoring
,
1999,
Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).
[5]
Alessandro Orso,et al.
Gamma system: continuous evolution of software after deployment
,
2002,
ISSTA '02.
[6]
Shinji Kusumoto,et al.
Call-mark slicing: an efficient and economical way of reducing slice
,
1999,
Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).