Agile Testing

Intermediate

Agile Testing is a software testing practice that aligns with the principles of agile development. It involves integrating testing activities throughout the entire development lifecycle, rather than treating it as a separate phase. It emphasizes continuous feedback, close collaboration between testers and developers, and a 'whole-team' approach to quality.

First used·Early 2000s

Definitions·1

Synonyms·2

Category·Software Development

Also known as

Continuous TestingAgile QA

Definitions

What it means.

  1. 01

    Agile Testing in Software Development

    Agile Testing is a software testing practice that follows the principles of agile software development. Unlike traditional methods where testing is a separate phase at the end of the development cycle, agile testing is an integral and continuous activity that occurs throughout the entire development lifecycle.

    The core principle is that testing is not a phase, but an ongoing activity. Testers, developers, and business stakeholders collaborate closely from the very beginning of a project. This 'whole-team' approach ensures that quality is built into the product, rather than being inspected for at the end.

    Key concepts associated with Agile Testing include:

    • Continuous Feedback: Testing provides rapid feedback to developers, allowing them to fix issues while the code is still fresh in their minds. This is often achieved through automated testing integrated into the build process.
    • Test-First Approach: Practices like Test-Driven Development (TDD) and Behavior-Driven Development (BDD) are common. In these approaches, tests or specifications are written before the actual application code, guiding development and ensuring testability.
    • Agile Testing Quadrants: This is a framework developed by Brian Marick to help teams decide what types of tests to perform. It categorizes tests into four quadrants based on whether they are business-facing or technology-facing, and whether they support the team or critique the product.
    • Less Documentation, More Collaboration: Agile testing prioritizes working software and collaboration over comprehensive documentation. Test plans are often lightweight, and communication is frequent and informal.

    In essence, Agile Testing shifts the focus from finding bugs to preventing them, making quality a shared responsibility across the entire team.

Origin

Where it comes from.

Etymology

The term is a compound of 'Agile' and 'Testing'. 'Agile' comes from the 'Agile Manifesto for Software Development', published in 2001, which emphasized iterative development and collaboration. 'Testing' was adapted to fit this new paradigm, moving from a sequential phase to an integrated, continuous practice.

Historical context

Before Agile, the dominant software development model was the Waterfall model. In Waterfall, development proceeds through a series of sequential phases: requirements, design, implementation, testing, and deployment. Testing was a distinct, isolated phase that only began after all coding was complete. This often led to discovering critical defects late in the cycle, making them expensive and difficult to fix.

The publication of the Agile Manifesto in 2001 marked a significant shift in the industry. Agile methodologies like Scrum and XP (Extreme Programming) promoted short, iterative development cycles (sprints), continuous customer collaboration, and the ability to respond to change. The traditional, rigid testing phase of Waterfall was incompatible with this fast-paced, iterative approach.

As a result, Agile Testing emerged as a new mindset and set of practices. It required testers to embed themselves within development teams, participate in daily activities, and test incrementally as new features were built. The focus moved from a late-stage 'quality assurance' gate to a continuous 'quality assistance' role, ensuring quality is a collective responsibility throughout the development process.

Usage

In context.

  • Our team adopted Agile Testing to ensure quality is built into the product from the very first sprint, rather than waiting for a final QA phase.

  • Instead of large, upfront test plans, Agile Testing relies on continuous feedback and close collaboration between developers and testers.

  • With Continuous Testing, a core practice of the agile approach, we run automated tests with every code commit to catch regressions immediately.

FAQ

Common questions.

The primary difference lies in timing, collaboration, and mindset. In traditional Waterfall testing, testing is a distinct, sequential phase that occurs after all development is complete. In Agile Testing, testing is a continuous activity integrated throughout the development lifecycle. Testers work alongside developers from the beginning of a sprint, providing constant feedback. This shifts the focus from finding bugs at the end (quality assurance) to preventing them from the start (quality assistance).

Taxonomy

Filed under.

Categories

Software DevelopmentTesting Methodologies

Tags

AgileSoftware TestingQAContinuous IntegrationContinuous DeliveryScrumKanban