Increasing test coverage with Hapao

Test coverage is about assessing the relevance of unit tests against the tested application. It is widely acknowledged that software with a ''good'' test coverage is more robust against unanticipated execution, thus lowering the maintenance cost. However, ensuring good quality coverage is challenging, especially since most of the available test coverage tools do not discriminate between software components that require ''strong'' coverage from the components that require less attention from the unit tests. Hapao is an innovative test coverage tool, implemented in the Pharo Smalltalk programming language. It employs an effective and intuitive graphical representation to visually assess the quality of the coverage. A combination of appropriate metrics and relations visually shape methods and classes, which indicates to the programmer whether more effort on testing is required. This paper presents the important features of Hapao by illustrating its application on an open source software.

[1]  Oscar Nierstrasz,et al.  Run-Time Evolution through Explicit Meta-Objects , 2010, Models@run.time.

[2]  Stéphane Ducasse,et al.  Polymetric Views - A Lightweight Visual Approach to Reverse Engineering , 2003, IEEE Trans. Software Eng..

[3]  John T. Stasko,et al.  Visualization of test information to assist fault localization , 2002, ICSE '02.

[4]  Stéphane Ducasse,et al.  The class blueprint: visually supporting the understanding of glasses , 2005, IEEE Transactions on Software Engineering.

[5]  Qian Yang,et al.  A survey of coverage based testing tools , 2006, AST '06.

[6]  Ralph E. Johnson,et al.  Wrappers to the Rescue , 1998, ECOOP.

[7]  Alessandro Orso,et al.  Gammatella: Visualizing Program-Execution Data for Deployed Software , 2004, Inf. Vis..

[8]  Stéphane Ducasse,et al.  Multi-level Method Understanding Using Microprints , 2005, 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[9]  Edward R. Tufte,et al.  Envisioning Information , 1990 .

[10]  Alexandre Bergel,et al.  Spy: A flexible code profiling framework , 2012, Comput. Lang. Syst. Struct..

[11]  Oscar Nierstrasz,et al.  Classbox/J: controlling the scope of change in Java , 2005, OOPSLA '05.

[12]  Éric Tanter Execution levels for aspect-oriented programming , 2010, AOSD.

[13]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.