Introduction


In a world of constantly changing requirements, systems development must ensure that it can quickly respond to changed user requirements or technology updates. One major promise of Extreme Programming (XP) [Beck2000] is to enable the construction of an evolvable system. Instead of planning all possible future enhancements from the beginning, Extreme Programmers rely on their ability to incorporate changes to the system and its architecture at an arbitrary point in the future.

In this study, we investigated the artifacts (the source code and other historical information) of a project that used aggressive unit testing and refactoring techniques extensively for development. We traced the effects of applying these two techniques in the developed source code. Our system under investigation is JWAM, a framework for constructing large-scale interactive software systems.[1]

[1] See http://www.jwam.org.

In their well-known article, Beck and Gamma introduce the testing style "test infection" [Beck+1998]. For every class in the system, you write a unit test. New requirements are implemented in the system by refactoring the unit tests first and then the system classes [Fowler1999]. So when those two techniques are applied strictly, we talk about test-infected code. Given this definition, JWAM is test-infected. Its test suite was created with the Java testing framework provided by Beck and Gamma.[2]

[2] See http://www.junit.org.

The JWAM development relies on an integration server that ensures that for every update of the source code, all tests still run [Lippert+2001]. The study is based on 254 individual integration versions of the framework that stem from this continuous integration process. In addition to the source code, we used the integration log, which contains a small description for every update of the source tree.

Lippert et al. state, "With Pair Programming we have improved framework quality, with test cases we maintain it. Without the test cases a lot of the refactoring we did in the past would have been less smooth"[Lippert+2000]. With the help of our analysis, we validated this rather intuitive statement by observing the history of specific system properties in the produced artifacts. Also, with the help of our analysis, we can point out some areas for potential improvement of framework development.

This study concentrates on tracing the effects of aggressive unit testing and refactoring directly in the code and in historical information. It doesn't investigate the correlation between requirements changes and defect rates, which would be of high interest as well.



Extreme Programming Perspectives
Extreme Programming Perspectives
ISBN: 0201770059
EAN: 2147483647
Year: 2005
Pages: 445

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net