What is Agile testing?
June 5, 2018

What Is Agile Testing?

Agile
Test Management

Agile testing is software testing that follows the best practices of Agile development.

For example, Agile development takes an incremental approach to design. Similarly, Agile testing includes an incremental approach to testing. As a feature is developed, it gets tested.

Agile Testing Supports Continuous Testing

Agile testing supports DevOps and continuous testing. And continuous testing is important to improving product quality.

In Agile development, testing needs to happen early and often. So, instead of waiting for development to be finished before testing begins, testing happens continuously as features are added.

Tests are prioritized just like user stories. Testers aim to get through as many tests as they can in an iteration. Adding automated testing tools can help testers get through more of the testing backlog.

Learn how to transition to Agile testing. Get the white paper >
 

Agile Testers Collaborate With Developers

QA is everyone’s responsibility in Agile. So, testers and developers need to work closely together. Communication and collaboration are key.

Agile development is often driven by tests. Developers use methods like TDD (test-driven development) to write the test first. Then they write the code that will be verified by the test. And developers and testers should collaborate before user stories (e.g., requirements) are set.

Once development and testing are underway, communication remains important. Testers should be testing as developers write code. Plus, developers will probably do some testing. And testers will probably do some coding.

In Agile development, the definition of done is a shared, standardized understanding among the team that a particular user story has been completed. The acceptance criteria in a user story are what will help drive the definition of done. If the user story passes the acceptance criteria, it can be considered done. This includes testing or validating the acceptance criteria. So, a test verifies that you’ve completed the user story.

It’s important that both testers and developers know what has been tested and what defects still need to be resolved.

5 Agile Testing Methods

Tests come first in Agile development. When you create a user story, you need to define the acceptance criteria. This drives testing and validation of the user stories.

It doesn’t matter which Agile methodology you use — Scrum, XP, Kanban. The following methods are typically used for Agile testing across methodologies.

Test-Driven Development (TDD)

Test-driven development (TDD) starts with tests. This type of development begins by discussing what you want to test and then creating a user story. So, you start by writing a unit test. Then you write the user story. Finally, you write the code until the unit test passes.

TDD is typically used on unit and component tests — which can be done with automated testing tools. TDD makes sure the features are working as they should be.

Acceptance Test-Driven Development (ATDD)

Acceptance test-driven development (ATDD) is similar. But ATDD starts with customer input on functionality. This type of development begins by discussing how the product will be used. So, you write a user acceptance test (UAT). And then you write the code until it passes the test.

ATDD is typically used for acceptance tests. It verifies that the product functions as users would expect.

Behavior-Driven Development (BDD)

Behavior-driven development often stems from TDD and ATDD. In behavior-driven development, the purpose of development needs to be tied to a business outcome. So, you’ll have a user story — but the user story needs to answer why (in business terms) this feature is being developed. And in BDD, tests are included in user stories as scenarios or specifications.

BDD is also used for acceptance tests. It verifies that the product functions are necessary for the desired business outcome.

Exploratory Testing

Exploratory testing is a style of testing that lets testers follow their intuition — rather than a predefined path. It’s typically manual. You record what you’re doing and save it as a test. And you figure out what exactly it is that you’re testing as you go.

Exploratory testing is typically used to find hidden risks within a product. These would be bugs that are missed in functional tests done in TDD.

Session-Based Testing

Session-based testing has some similarities to exploratory testing. But there’s a little more structure in session-based testing. Instead of figuring out what you’re testing as you go, you start with a mission in mind.

Session-based testing is also used to find hidden bugs within a project.

Create Your Agile Test Strategy

Testing in traditional development typically includes a test plan. But a well-documented test plan is not common in Agile development. Instead, Agile testers need to be flexible and ready to respond to shifts in requirements.

So, there needs to be an Agile test strategy rather than an Agile test plan.

There are many ways to outline your Agile test strategy. You may simply outline the strategy in a document. You might create a test matrix. Or, you might use a Kanban board.  

No matter which method you take, an Agile test strategy should include:

  • Purpose (defined by the user story).
  • Objectives (test cases).
  • Scope (what needs to be tested).
  • Methods (how tests will be run).

Creating an Agile test strategy is easy when you’re using the right testing tools — such as Helix ALM.

Here’s how you create an Agile test strategy in Helix ALM:

  • Start with a purpose.
  • Decide what you want to test.
  • Write a user story, including acceptance criteria (your definition of done).
  • Create a test case from that user story (automatically).
  • Generate a test run to validate the user story.

Here’s an example of an Agile test strategy in Helix ALM.

The backlog includes user stories — the items that need to be developed and tested. These are prioritized in order of importance. And this example shows development and testing in progress — and tests that have been completed.

Agile test strategy example

 

Benefits of Agile Testing

Agile testing improves product quality and enables development teams to release software on shorter cycles. And effective test case management helps Agile testers.

You’ll find and fix errors faster. So, you’ll lower the risk of finding a bug at the very end of testing — and missing a deadline.

You’ll make customers happy by delivering regular releases. So, you’ll improve customer retention rates.

And you’ll manage the scope of each release. That helps you prioritize features for each iteration and deliver the most important ones first.

Of course, there will be some challenges with Agile testing. But the future of development is Agile. It’s time for testers to embrace it.

Transition to Agile Testing

Make the transition to Agile testing easier. Download “Agile Development Methodologies for Testers”.

Get the White Paper Try Agile Testing