Advertisement

Towards Software Configuration Management for Test-Driven Development

  • Tammo Freese
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2649)

Abstract

Test-Driven Development is a technique where each change to the observable behavior of a program is motivated by a failing test. High design quality is maintained by continuous small design improvements called refactorings. While some integrated development environments support automated refactoring, they do not handle problems that occur if refactorings are used in development teams or on published interfaces. This paper outlines the idea of a specialized software configuration management tool which integrates into a development environment to record the steps of Test-Driven Development as operations. These operations are useful for summarizing local changes, merging parallel changes and for migrating code that uses published interfaces.

Keywords

Development Step Operation Sequence Observable Behavior Change Operation Integrate Development Environment 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Atkins, D.L.: Version Sensitive Editing: Change History as a Programming Tool. In: Magnusson, B.: Software Configuration Management: ECOOP’98 SCM-8 Symposium. Springer (1998)Google Scholar
  2. 2.
    Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley (1999)Google Scholar
  3. 3.
    Beck, K.: Test-Driven Development: By Example. Addison-Wesley (2003)Google Scholar
  4. 4.
    Buffenbarger, J.: Syntactic Software Merging. In: Estublier, J. (ed.): Software Configuration Management: Selected Papers SCM-4 and SCM-5. Springer (1995)Google Scholar
  5. 5.
    des Rivières, J.: Evolving Java-based APIs. http://www.eclipse.org/eclipse/development/java-api-evolution.html (2002)
  6. 6.
    Eclipse home page. http://www.eclipse.org
  7. 7.
    Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley (1999)Google Scholar
  8. 8.
    Fowler, M.: Public versus Published Interfaces. In: IEEE Software (March/April 2002)Google Scholar
  9. 9.
    IntelliJ IDEA home page. http://www.intellij.com
  10. 10.
    JUnit home page. http://www.junit.org
  11. 11.
    Lippe, E., van Oosterom, N.: Operation-based Merging. Lecture Notes in Computer Science, Vol. 1000. In: Proceedings of ACM SIGSOFT’92: Fifth Symposium on Software Development Environments (SDE5) (1992)Google Scholar
  12. 12.
    Mens, T.: A State-of-the-Art Survey on Software Merging. In: IEEE Transactions on Software Engineering, vol. 28, no. 5 (2002)Google Scholar
  13. 13.
    Roock, S., Havenstein, A.: Refactoring Tags for automated refactoring of framework dependent applications. XP2002 Conference (2002)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Tammo Freese
    • 1
  1. 1.OFFISOldenburgGermany

Personalised recommendations