ACM Home Page
Please provide us with feedback. Feedback
Advanced code coverage analysis using substring holes
Full text PdfPdf (428 KB)
Source
International Symposium on Software Testing and Analysis archive
Proceedings of the eighteenth international symposium on Software testing and analysis table of contents
Chicago, IL, USA
SESSION: Testing #1 table of contents
Pages 37-46  
Year of Publication: 2009
ISBN:978-1-60558-338-9
Authors
Yoram Adler  IBM Haifa Research Lab, Haifa, Israel
Eitan Farchi  IBM Haifa Research Lab, Haifa, Israel
Moshe Klausner  IBM Haifa Research Lab, Haifa, Israel
Dan Pelleg  IBM Haifa Research Lab, Haifa, Israel
Orna Raz  IBM Haifa Research Lab, Haifa, Israel
Moran Shochat  IBM Haifa Research Lab, Haifa, Israel
Shmuel Ur  IBM Haifa Research Lab, Haifa, Israel
Aviad Zlotnick  IBM Haifa Research Lab, Haifa, Israel
Sponsors
SIGSOFT: ACM Special Interest Group on Software Engineering
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 17,   Downloads (12 Months): 55,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1572272.1572278
What is a DOI?

ABSTRACT

Code coverage is a common aid in the testing process. It is generally used for marking the source code segments that were executed and, more importantly, those that were not executed.

Many code coverage tools exist, supporting a variety of languages and operating systems. Unfortunately, these tools provide little or no assistance when code coverage data is voluminous. Such quantities are typical of system tests and even for earlier testing phases. Drill-down capabilities that look at different granularities of the data, starting with directories and going through files to functions and lines of source code, are insufficient. Such capabilities make the assumption that the coverage issues themselves follow the code hierarchy. We argue that this is not the case for much of the uncovered code. Two notable examples are error handling code and platform-specific constructs. Both tend to be spread throughout the source in many files, even though the related coverage, or lack thereof, is highly dependent.

To make the task more manageable, and therefore more likely to be performed by users, we developed a hole analysis algorithm and tool that is based on common substrings in the names of functions. We tested its effectiveness using two large IBM software systems. In both of them, we asked domain experts to judge the results of several hole-ranking heuristics. They found that 57% - 87% of the 30 top-ranked holes identified by the effective heuristics are relevant. Moreover, these holes are often unexpected. This is especially impressive because substring hole analysis relies only on the names of functions, whereas domain experts have a broad and deep understanding of the system.

We grounded our results in a theoretical framework that states desirable mathematical properties of hole ranking heuristics. The empirical results show that heuristics with these properties tend to perform better, and do so more consistently, than heuristics lacking them.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Y. Adler, E. Farchi, M. Klausner, D. Pelleg, O. Raz, M. Shochat, S. Ur, and A. Zlotnick. Automated substring hole analysis. In ICSE, NIER Track, 2009.
 
2
 
3
4
 
5
Focus code and functional coverage tool. http://www.alphaworks.ibm.com/tech/focus. Accessed December 2008.
6
 
7
 
8
T. Zimmermann, N. Nagappan, and A. Zeller. Predicting Bugs from History, chapter 4, pages 69--88. Springer, March 2008.

Collaborative Colleagues:
Yoram Adler: colleagues
Eitan Farchi: colleagues
Moshe Klausner: colleagues
Dan Pelleg: colleagues
Orna Raz: colleagues
Moran Shochat: colleagues
Shmuel Ur: colleagues
Aviad Zlotnick: colleagues