Test and production code co-evolution
In this research we investigate whether production and test code co-evolve together. The main investigators for this line of research are:
Andy Zaidman,
Bart Van Rompaey,
Serge Demeyer, and
Arie van Deursen.
Initial results technical report
In this paper we describe our ideas on a running example (JPacman) and three open source cases, namely ArgoUML, Checkstyle and PMD. You can find the technical report
here. High-resolution images used in this paper can be found
here.
ICST paper
In this paper we go deeper into two open source projects, namely ArgoUML and Checkstyle. You can find the paper
here.
Andy Zaidman, Bart Van Rompaey, Serge Demeyer, Arie van Deursen. Mining Software Repositories to Study Co-Evolution of Production & Test Code. Proceedings of the 1st International Conference on Software Testing, Verification, and Validation (ICST2008), pages 220-229, IEEE Computer Society, 2008.
ICST follow-up paper
We've submitted a follow-up paper to our ICST 2008 paper to the
Software Testing, Verification and Reliability journal (STVR). High-res images of our visualizations for this paper are listed below.
- Figure 4. (pdf) Checkstyle Change History View.
- Figure 5. (pdf) Checkstyle Growth History View.
- Figure 6. (pdf) Checkstyle Test Coverage Evolution View.
- Figure 7. (pdf) ArgoUML Change History View.
- Figure 8. (pdf) ArgoUML Growth History View.
- Figure 9. (pdf) ArgoUML Test Coverage Evolution View.
- Figure 10. (pdf) SIG Change History View.
- Figure 11. (pdf) SIG Growth History View.
- Figure 12. (pdf) SIG Test Coverage Evolution View.
In this paper we add an industrial case study and refine our views. You can find a draft version of the paper -- including high-res color images --
here.
TeMo toolchain
As a first step, we are making available binaries for our toolchain
TeMo, which stands for
Test Monitor. Using the steps below, you are able to generate the
Change History View and
Growth History View.
- Download the standard config.txt configuration file. Adapt all settings, more specifically:
- svnPath=https://yourserver.com/svn/yourproject
- user=yourusername
- password=yourpassword
- workingPath=./workingDir (a directory that will be deleted)
- startRev=0
- endRev=2
- xmlfile=myproject.xml
- Download temo_generatexml.jar. This java program connects to your subversion repository and will download the entire log file of changes and store it in XML.
- Download temo_changehistory.jar. Using the previously generated xml file, the Change History View will be generated.
- Download temo_growthhistory.jar. This java program connects to your subversion repository and will analyze each revision between startRev and endRev. For each of these revisions, metric data is collected.
- The previous step generates a text file with the name results_startRev_endRev.txt. Load this file into Excel (or something similar) to generate a graph that is the Growth History View.
- Make sure that you download all files into the same directory!
Executing a jar file goes as: java -jar
jarfile.jar.
TeMo is currently at version 0.2 and is provided as is. We developed and used TeMo using Sun's JDK 1.5.x.
If you want more information on this toolchain, please contact one of the authors (see at the top).
--
AndyZaidman - 13 Aug 2009