Chapter 7. Testing in Agile Development and the State of Agile Adoption
Agile development has accelerated in the last decade due to increased digital adoption creating a need for more continuous integration. In this chapter, we will discuss Drivers for the use of Agile:
The promise of agile as compared to waterfall
Various flavors of agile—for example, Kanban, Scrum
Testing in agile sprints
Agile in distributed environments
State of agile adoption
Approaches to testing in agile development
Skills needed by QA professionals in Agile engagements
A thought must be striking to you readers that why use Agile development?
Organizations are increasingly struggling to reach the right level of quality versus speed. Some key issues with traditional development and testing include the following:
Excessively long time to market for products and applications
Inadequate customer orientation and regular interaction
Over-engineered products--most of the features on a product or application may not be used
High project failure rate
ROI below expectation
Inability to respond quickly to change
Inadequate software quality
To address this, QA and testing should be blended with agile development. Agile engagements should take a business-centric approach to select the right test focus areas, such as behavior-driven development (BDD), to define acceptance criteria. This requires skills not only in testing but also in business and software development. The latest World Quality Report reveals an increase in the adoption of agile testing methodologies, which helps expedite time to market for products and services.
The need for agile development (and testing) is primarily driven by digital transformation. Let’s take a look at the major trends in digital transformation:
More continual integration fueled by digital transformation
Complex integration using multi-channel, omnipresent commerce, making it necessary to integrate multiple channels, devices, and wearable technologies
Unlike yesterday’s nomenclature, when agile meant colocation, today’s advanced telepresence infrastructure makes it possible to work in distributed agile models and has removed any colocation dependency. Agile is not just a concept. It is a manner of working, made possible with multiple tools to enable development and testing in agile environments.