What is Agile Testing?

  • Share
  • Sharebar
  • Share

Agile Testing Needs to Go Along with The Agile Manifesto

To talk about agile testing or agile in general we need to refer to the agile manifesto, in short version that is

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

How Does The Agile Manifesto Reflect in Agile Testing?

Short feedback loop between team members and Product Owner replaces sending official emails and talking to business and developers via the Test Manager. Agile Testers are part of the cross-functional team and talk directly to developers and have their say in all phases of Software Development Life Cycle. With Agile Testing you can influence developers to think about testability in their code and you can help understand and refine new requirements. Agile teams are collocated, so the flow of information is uninterrupted.

When participating in Agile Testing, keep your feedback loop short. If you find a bug, talk about it with developers. If you need some clarification about the requirements Agile Testing, talk to the Product Owner.  Be active on Planning Meetings and Retrospective Meetings. Your influence on  quality assurance in agile development methodologies is needed to improve the product. With Agile Testing you actually have that power.

There is no time or need for writing lengthy Test Plans because you only need a few pages stating the vision, technologies, and your approach.

Agile testing is Part of Agile Development Methodology

Testing is embedded into Definition of Done. As we know in agile development no task and no Story can be completed without fulfilling the Definition of Done. That is a great safety fuse for testers. Undone work can not be released and classical cutting corners by skipping testing can not happen.

Agile Testing is a Team Effort

Testing tasks same as any other type of task are part of a Story and doesn’t have an owner assigned. It means that anybody can pick up and execute a testing task. Design experts and developers need to think about the testability of the product and testers can give them some tips in the early phase of designing interface or software architecture.

Agile Testing Drives Development

Agile Testing drives development with refining Acceptance Criteria and questioning Stories during the iteration planning. First thing, Extreme Programming (XP) introduced the concept of pair programming. In Agile Testing, you can use pair testing together with the developer or another tester. You can also help developers design tests or create automated tests from which both of you will benefit. One of the first things an Agile Tester does is tuning the acceptance criteria and writing straight-forward Test Cases, which can be used by developers to drive their development. We call it Test Driven Development and this concept was already known from XP.

The concept of TDD is very simple. First you write a test, which will fail, since there is no feature yet and then you write the part of the feature that is going to make the test pass. TDD can be used in the lowest layer of testing, which is Unit Testing but can be spread also to an Acceptance Testing layer. You can write and automated acceptance test that will test business logic using API and hooks or you can test the application from user perspective by using GUI. And again the automated test will originally fail and pass when the feature is developed. This approach is called Acceptance Test Driven Development. Acceptance Tests should be implemented as part of the Continuous Integration platform. You can give feedback using the “show me” technique on the developer’s machine before the code is checked in to the code repository.

You can see how different and more efficient Agile Testing is from traditional V-model or W-model in projects using waterfall method.

Agile Testing is Testing When Possible

In software testing training like ISTQB Certified Tester Foundation Level, early agile testing is highly recommended. Early testing means testing in phases of gathering requirements and design. And as I mentioned above, this really happens in Agile Testing. Agile Testing starts working on stories and evolves into Test Driven Development and ends as automated acceptance testing on Continuous Integration for every new change committed to source code repository.

Agile Testing Needs Automation

To test every change in the system, you need to do regression testing to make sure that there are no defects introduced into previously developed features. Agile Testers are constantly busy with testing new Stories for current Sprint and planning regression testing is to difficult and means less features development. A better solution is to have automated tests for previous Sprints checked into the source repository. Read also How to start with with test automation.

Similar Posts:

3 Comments

  1. [...] procesul. Acestea trebuiesc adaptate situatiei, astfel incat randamentul sa fie maxim.  [A1]http://agilemanifesto.org/  [A2]http://www.agiletesting.info/what-is-agile-testing-112 Ant – Build tool Java [...]

  2. This is a very good article. Community needs more posts as this one.

Leave a Reply