ArgoUML has been used in the research on test artifacts.
If you want to give the researchers your view on the historic events in
ArgoUML, don't read the forwarded and edited message but let me know and I
will forward you the longer version with instructions. If you just want to
look at their conclusions, you can find them below.
/Linus
---------- Forwarded message ----------
From: Van Rompaey Bart <[EMAIL PROTECTED]>
Date: 2007-aug-10 16:44
Subject: ArgoUML's test history
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
[Edited by Linus Tolke]
Hello Linus,
Andy Zaidman (Delft University, the Netherlands) and myself (University of
Antwerp, Belgium) have been conducting research on how test artifacts
co-evolve with the production system during software evolution in three open
source systems. We introduced three views based upon historical version
information that allow us to describe a project's test history and more
specifically help us to answer the questions:
- Does co-evolution always happens synchronously or is it phased?
- Can an increased test-writing effort be witnessed right before a major
release or other event in the project's lifetime?
- Can we detect testing strategies, e.g. test-driven development?
- Is there a relation between test-writing effort and test coverage?
[...]
(ii) Our visualization techniques
Please read (at least) section two of our paper at
http://lore.cmi.ua.ac.be/~bvromp/CoEvolution.pdf. High-quality images are
stored at http://swerl.tudelft.nl/bin/view/Main/TestHistory
(iii) Our visualization-based interpretation of the project's test history
ArgoUML is an open source UML modeling tool that includes support for all
standard UML 1.4 diagrams. The first contributions to ArgoUML go back to the
beginning of 1998, and up to December 2005, 7477 subversion commits were
registered. The final release we considered for this study was built by 42
developers who wrote 1533 classes totaling 130KLOC.
Change history view. The change history view of ArgoUML indicates that
test-writing effort is initially limited, and it is only later on that more
and more tests are added. We notice a significant number of yellow vertical
bars, indicating a phased testing approach.
Growth history view. This phased testing is confirmed by the growth history
view. The stepped curves for testing confirm the presence of pure testing
periods, as these steps do not correspond with increases in production code.
Besides these periods of testing, the test code is barely modified, except
for the creation of test skeletons in the early history (between releases
0.10 and 0.12, see annotation 1) and periodical test refinements (ann. 2)
and refactorings (ann. 3). (Note that the initial ``hill" in the production
code curve is due to architectural changes which are reflected in a changed
layout in the versioning system, resulting in the source code residing in
two locations at the same time. Later on, before release 0.10, the old
layout structure and code-remains get deleted.)
Coverage evolution view. Even without this side-effect, the initial unit
test-writing effort is rather low and only slowly increasing. Overall,
ArgoUML has the lowest coverage of the three considered projects; it is
however also the oldest and largest project. The fact that the first release
of jUnit (beginning of 1998) more or less coincides with the start of the
ArgoUML project might explain why the effort that went to test-writing was
rather low in the earlier phases, as jUnit and the use of testing frameworks
was not yet well known at that time. The last considered version of ArgoUML
is characterized by a sudden drop in test coverage. This is due to the
extraction of the mdr component, a storage backend, into a separate project.
Apparently, this component was more extensively tested than the main
project, resulting in the coverage drop.
[...]