Future Internet (Dec 2011)

Test Driven Development: Advancing Knowledge by Conjecture and Confirmation

  • Manfred Lange,
  • Ramesh Lal,
  • David Parsons

DOI
https://doi.org/10.3390/fi3040281
Journal volume & issue
Vol. 3, no. 4
pp. 281 – 297

Abstract

Read online

Test Driven Development (TDD) is a critical agile software development practice that supports innovation in short development cycles. However, TDD is one of the most challenging agile practices to adopt because it requires changes to work practices and skill sets. It is therefore important to gain an understanding of TDD through the experiences of those who have successfully adopted this practice. We collaborated with an agile team to provide this experience report on their adoption of TDD, using observations and interviews within the product development environment. This article highlights a number of practices that underlie successful development with TDD. To provide a theoretical perspective that can help to explain how TDD supports a positive philosophy of software development, we have revised Northover et al.’s conceptual framework, which is based on a four stage model of agile development, to reinterpret Popper’s theory of conjecture and falsification in the context of agile testing strategies. As a result of our findings, we propose an analytical model for TDD in agile software development which provides a theoretical basis for further investigations into the role of TDD and related practices.

Keywords