Abstract
Technical debt occurs when teams knowingly or unknowingly make technical decisions in return for short-term gain(s) in their projects. The test dimension of technical debt is known as test technical debt (or test debt). Test debt is an emerging topic and has received considerable interest from software industry in the last few years. This chapter provides an overview of test debt, factors that contribute to test debt, and strategies for repaying test debt. The chapter also discusses how to identify “test smells” and refactor them for repaying technical debt in industrial projects using numerous examples and case studies. This chapter would be of considerable value to managers and leads working in IT companies as well as researchers working in the area of test debt.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Note that the categories in this classification are neither mutually exclusive nor jointly exhaustive.
References
G. Suryanarayana, G. Samarthyam, T. Sharma, Refactoring for software design smells: managing technical debt (Morgan Kaufmann/Elsevier, 2014)
W. Cunningham, The WyCash Portfolio management system, experience report, OOPSLA ’92 (1992)
I Gat, Opening statement on technical debt special issue. J. Inf. Technol. Manage., Cutter IT J. (2014)
Jim Highsmith, Zen and the Art of Software Quality, Agile2009 Conference, 2009
Z. Li, P. Avgeriou, P. Liang, A systematic mapping study on technical debt and its management. J. Syst. Softw. (2014)
R.L. Nord, I. Ozkaya, P. Kruchten, M. Gonzalez, In search of a metric for managing architectural debt. Joint 10th Working IEEE/IFIP Conference on Software Architecture (WICSA) and 6th European Conference on Software Architecture (ECSA), Helsinki, Finland, August 2012
A. Martini, J. Bosch, M. Chaudron, Architecture technical debt: understanding causes and a qualitative model. 40th EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA) (2014)
K. Wiklund, S. Eldh, D. Sundmark, K. Lundqvist, Technical debt in test automation. IEEE Sixth International Conference on Software Testing, Verification and Validation (2013)
K. Pugh, The risks of acceptance test debt. Cutter IT J. (2010)
A. Qusef, G. Bavota, R. Oliveto, A.D. Lucia, D. Binkley, Scotch: test-to-code traceability using slicing and conceptual coupling. Proceedings of the 27th IEEE International Conference on Software Maintenance (2011), pp. 63–72
A.D. Leon, M.F. Moonen, A. Bergh, G. Kok, Refactoring test code. Technical report (CWI, Amsterdam, The Netherlands, 2001)
S.M.A. Shah, M. Torchiano, A. Vetro, M. Morisio, Exploratory testing as a source of technical debt”, IT Prof. 16 (2014)
R.C. Martin, Clean code: a handbook of agile software craftsmanship (Prentice Hall, USA, 2009)
G. Campbell, Patroklos P. Papapetrou, SonarQube in action (Manning Publications Co., USA, 2013)
K. Beck, Test-driven development: by example (Addison-Wesley Professional, USA, 2003)
L. Williams, R.R. Kessler, Pair programming illuminated (Addison-Wesley Professional, USA, 2003)
A. Cockburn, L. Williams, The costs and benefits of pair programming. Extreme Programming Examined (2000)
S. Mancuso, The software craftsman: professionalism, Pragmatism, Pride (Prentice Hall, USA, 2014)
W.F. Opdyke, Refactoring object-oriented frameworks, Ph.D. thesis (University of Illinois at Urbana-Champaign, Illinois, 1992)
A. van Deursen, L. Moonen, The video store revisited—thoughts on refactoring and testing. Proceedings of International Conference on eXtreme Programming and Flexible Processes in Software Engineering (XP) (Alghero, Italy, 2002), pp. 71–76
O. Hazzan (ed.), Agile processes in software engineering and extreme programming. Proceedings of XP 2011 (Springer, Berlin, 2011)
K. Beck, C. Andres, Extreme programming explained: embrace change, 2nd edn. (Addison-Wesley, USA, 2004)
J. Shore, S. Warden, The art of agile development (O’Reilly Media, USA, 2007)
V. Moncompu, Agile test automation: transition challenges and ways to overcome them. Pacific NW Software Quality Conferences (2013)
Managing Software Debt, Building for inevitable change (Addison-Wesley Professional, Chris Sterling, 2010)
Workshop Series on Managing Techincal Debt, Carnegie Mellon—Software Engineering Institute, http://www.sei.cmu.edu/community/td2014/series/. Last accessed 29 Aug 2015
G. Meszaros, xUnit test patterns: refactoring test code (Addison-Wesley, USA, 2007)
B. Van Rompaey, et al., On the detection of test smells: a metrics-based approach for general fixture and eager test. IEEE Transac. Softw. Eng. (2007)
H. Neukirchen, M. Bisanz, Utilising code smells to detect quality problems in TTCN-3 test suites. Test. Softw. Commun. Syst. (Springer, Berlin, 2007)
B. Gabriele, et al., An empirical analysis of the distribution of unit test smells and their impact on software maintenance. 28th IEEE International Conference on Software Maintenance (ICSM, UK, 2012)
S. Reichhart, T. Girba, S. Ducasse, Rule-based assessment of test quality. J. Object Technol. 6(9), 231–251 (2007)
I. Burnstein, A. Homyen, R. Grom C.R. Carlson, A model to assess testing process maturity. CROSSTALK (1998)
J. Andersin, TPI–a model for test process improvement. Seminar on Quality Models for Software Engineering (2004)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer Science+Business Media Singapore
About this chapter
Cite this chapter
Samarthyam, G., Muralidharan, M., Anna, R.K. (2017). Understanding Test Debt. In: Mohanty, H., Mohanty, J., Balakrishnan, A. (eds) Trends in Software Testing. Springer, Singapore. https://doi.org/10.1007/978-981-10-1415-4_1
Download citation
DOI: https://doi.org/10.1007/978-981-10-1415-4_1
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-10-1414-7
Online ISBN: 978-981-10-1415-4
eBook Packages: EngineeringEngineering (R0)