Demand-driven structural testing with dynamic instrumentation

Producing reliable and robust software has become one of the most important software development concerns. Testing is a process by which software quality can be assured through the collection of information. While testing can improve software reliability, current tools typically are inflexible and h...

Full description

Saved in:
Bibliographic Details
Published inProceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005 pp. 156 - 165
Main Authors Misurda, J., Clause, J.A., Reed, J.L., Childers, B.R., Soffa, M.L.
Format Conference Proceeding
LanguageEnglish
Published IEEE 2005
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Producing reliable and robust software has become one of the most important software development concerns. Testing is a process by which software quality can be assured through the collection of information. While testing can improve software reliability, current tools typically are inflexible and have high overheads, making it challenging to test large software projects. In this paper, we describe a new scalable and flexible framework for testing programs with a novel demand-driven approach based on execution paths to implement test coverage. This technique uses dynamic instrumentation on the binary code that can be inserted and removed on-the-fly to keep performance and memory overheads low. We describe and evaluate implementations of the framework for branch, node and def-use testing of Java programs. Experimental results for branch testing show that our approach has, on average, a 1.6 speed up over static instrumentation and also uses less memory.
ISBN:1595939632
ISSN:0270-5257
1558-1225
DOI:10.1109/ICSE.2005.1553558