Abstract
We know software evolution to be inevitable if the system is to survive in the long-term. Equally well-understood is the necessity of having a good test suite available in order to (1) ensure the quality of the current state of the software system and (2) to ease future change. In that light, this chapter explores the interplay that exists between software testing and software evolution, because as tests ease software evolution by offering a safety net against unwanted change, they can equally be experienced as a burden because they are subject to the very same forces of software evolution themselves.In particular, in this chapter, we describe how typical refactorings of production code can invalidate tests, how test code can (structurally) be improved by applying specialized test refactorings. Building upon these concepts, we introduce “test-driven refactoring”, or refactorings of production code that are induced by the (re)structuring of the tests. We also report on typical source code design metrics that can serve as indicators for testability. To conclude, we present a research agenda that contains pointers to—as yet—unexplored research topics in the domain of testing.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Moonen, L., van Deursen, A., Zaidman, A., Bruntink, M. (2008). On the Interplay Between Software Testing and Evolution and its Effect on Program Comprehension. In: Software Evolution. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-76440-3_8
Download citation
DOI: https://doi.org/10.1007/978-3-540-76440-3_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-76439-7
Online ISBN: 978-3-540-76440-3
eBook Packages: Computer ScienceComputer Science (R0)