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
A number of questions have been raised by both practitioners and researchers regarding the compatibility of service oriented architectures and agile methods. These are compounded when both approaches are combined to maintain and migrate legacy systems. In particular, where test driven development is practiced as a core component of an agile development process, both legacy systems and service oriented architectures can present an incongruous set of development challenges. In this chapter, the authors provide experience reports on how legacy systems have been adapted to an agile, test driven development context by a process of decomposition into testable services. They describe two domains and technology contexts where automated agile testing at multiple interface layers has improved both quality of service and functionality.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.