Mentor: Alexandre Bergel
Second mentor: Yuriy Mironenko
Level: Intermediate
Accepted student: Pablo Estefo
Invited students: Pablo Estefo
Students interested: Pablo Estefo(very)

(Student proposal by Pablo Estefó)


Unit tests are helpful for assessing base code to do what is expected to. It has been multiply shown that coverage is correlated with bug reduction. This situation is more often when applying TDD. The results? A well tested code, but unmaintainable test code. 

TestSurgeon is a tool to refactor and improve the structure of unit tests. It uses advanced visualization and profiling technique to detect test redundency (i.e., a same component tested more than once in exactly the same way). Currently, Test Surgeon use a rather naive test similarity metric and the visualization, albeit expressive, is missing some interaction.

This project consists in enhancing the Test Surgeon visualization and to define additional metrics that consider contextual information from a test execution.

Technical details

TestSurgeon is a software profiler which gathers data from test execution and process it to evaluate some metrics an then display a visualization of test similarity. It has been developed on Moose smalltalk environment, using intensively Spy, Mondrian and Glamour (moose technologies). As mentioned in Description section, this project is focused in enhance visualization through more contextual information of tests execution. This will be achieved considering the state of the objects and considering message arguments during test execution.

Benefit to the Student

The student will learn more about test maintainability and evolution issues, and will get a better understanding of test code execution. He will also face maintenance problems of unit tests presents in many Pharo application

Benefit to the Community

The proposal has many benefits for the community:
- it will reveals some maintenance problem of the unit tests
- it will turn the Test Surgeon prototype into an open source application intended to be widely used
- it will be an opportunities for software engineers to work with the student on improving the unit tests of their applications.

Updated: 6.4.2012