Dominators, super blocks, and program coverage
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimally profiling and tracing programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture
Efficient coverage testing using global dominator graphs
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
An API for Runtime Code Patching
International Journal of High Performance Computing Applications
Efficient online computation of statement coverage
Journal of Systems and Software
Coverage-Based Testing on Embedded Systems
AST '07 Proceedings of the Second International Workshop on Automation of Software Test
Introduction to Software Testing
Introduction to Software Testing
A Survey of Coverage-Based Testing Tools
The Computer Journal
Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools
Hi-index | 0.00 |
Coverage testing is often used as a quantified measurement of testing progress. One important issue of code coverage testing is the overhead of program execution monitoring that inserts probes into programs, either at run-time or off-line, to record program execution code coverage information (e.g., "1" for covered and "0" for not-covered). For time sensitive systems, such overhead may alter the program execution behavior or impact its performance, which is an even more critical problem for embedded systems where memory and CPU resources are limited. This paper proposes a new Super Nested Block (SNB) method to reduce instrumentation run-time overhead. The method improves upon two existing technologies: 1) program analysis for selecting instrumentation points, and 2) on-line run-time instrumentation eliminating repeated probes. We implemented the SNB method on an automatic generated on-line instrumenter of a code coverage testing tool and found that the instrumentation overhead was minor, less than 1% of overall execution time, and all real-time execution external behaviors were preserved.