Agile Testing

What is Agile Testing? 

Agile Testing is a software testing practice that follows the principles of agile methodology Unlike waterfall methodology, which pushes testing to the end of the software development lifecycle, Agile brings together the development and testing team to build and ship quality products in sprints at a faster rate. The agile creates an environment that encourages increased collaboration between developers, testers and business analysts to test the application and provide continuous feedback on the quality and fix defects in the same iteration.

Applying Agile principles in Testing

The agile manifesto has listed points for the software development that are appropriate to test teams also:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
  • Individuals and interactions over processes and tools: Testers should align with the rest of the development team I.e.., developers, product stakeholders and the end-users. The continuous feedback loop among these teams will help testers better understand the product being developed/tested, and different approaches to improving the quality of the product.
  • Working software over comprehensive documentation: Testers in the agile environment should be open to adapt to the changing requirements. Unlike waterfall, where there is an extensive requirements documentation that testers will test against, agile testers don’t follow strict documentation. They should be in constant communication with the rest of the team and be informed of the changing/new requirements and define acceptance criteria together.
  • Customer collaboration over contract negotiation: Testers usually may not have direct contact with the customers. However, agile principles encourage testers to understand the requirements from the customer’s view and focus more on them.
  • Responding to change over following a plan: To be truly able to succeed in agile Testing, testers must respond to the change, be prepared to reprioritize their tests that will result in minimizing the risks and achieve the goal respectively.

Agile Methodology Types: 

There are two agile methodology types

  1. Scrum  
  2. Kanban 

1.Scrum  

Scrum methodology is the most popular and widely used agile methodology. Scrum team will have

  • Business Stakeholders
  • Product Owner
  • Scrum Master
  • Developers
  • Testers
  • Automation Engineers

Scrum framework is based on continuous learning and continuous improvement. It takes an iterative approach and helps teams adapt to the changing user requirements, reprioritize tests and minimizing risks resulting in continuous improvement and learning.

Scrum begins by identifying artifacts. Three common scrum artifacts are,

  1. Product Backlog
  2. Sprint Backlog
  3. Sprint Goal/Done/Increments

Each of the members involved in the Scrum will oversee these artifacts and drive the entire sprint.

1. Product Backlog 

Product owner maintains the product backlog, which is a list of tasks that need to be done by the team. The list has list of requirements, features, bugs to fix etc., which will serve as an input for the Sprint Backlog/Tasks.

2. Sprint Planning 

The entire team led by the scrum master (can be a developer/tester) planning on the tasks to be performed for the current sprint is called sprint planning. In this meeting, teams will choose the items from the product backlog, known as sprint backlogs, that they plan to work on for the current sprint. After the sprint planning, every member needs to be clear on the sprint goals and how it can be achieved.

3. Sprint 

A sprint is an actual period when teams will work together and complete the goals. Although a typical sprint period may range between 1-4 weeks, most teams prefer for a 2-week sprint. All the events right from planning to delivery take place in a sprint. During this period, the development and product owner can discuss the scope and can reiterate if necessary. Once the time is fixed for a sprint, it must be consistent throughout the development period.

4. Daily Scrum Meeting  

Daily scrum meeting, also called daily stand-ups are quick 15-minute meetings. The objective of this meeting is to ensure everyone on the team is on the same page with respect to the goals and plan a road map for the next 24 hours.

5. Review/Demo 

Everyone on the team gets together at the end of a sprint for a review or demo of the sprint goals. The development team presents the ‘Done/Increment’ tasks to the stakeholders and teammates for review. Once after the product owner gives the go-ahead, the increment is released.

2.Kanban 

Kanban is another widely followed agile practice derived from manufacturing industries. The successful adoption of this framework requires real-time communication and transparency at work. In Kanban, the work items/requirements are usually presented in a Kanban board with ‘To Do, Doing, Done’ list. At any time, when the developer is ready, he can pull backlogs from the to-do list and start working on it.

The Kanban team will have

  • Product Owner
  • Developers
  • Testers
  • Project Manager
  • Automation Engineers

The team will have a fewer planning meeting compared to Scrum. Hence, it requires the members of the team to be reasonably flexible and communicate closely. The virtual Kanban board allows team members to track the work in progress for each item and associated details such as who is responsible for that task, job description and a timeline. It’s best suited for small teams that work solely based on priority and not at fixed timely releases.

Agile Testing Plan 

Agile test teams irrespective of which agile methodology they follow should create a proper test plan. It can be communicated to the team members through a document or with the help of a test matrix. This plan will outline the user stories or acceptance criteria, test cases required, the scope of the tests and methods of performing the test, i.e., manual or automated.
A proper test plan and management will help agile testers improve product quality and enable shorter release cycles.

Agile Testing Methodology

1. Test-Driven Development (TDD) 

TDD, as the name suggests, starts with Testing. This type of development begins by writing a unit test – user story – write code until the test passes. TDD is applicable for unit and component tests. It ensures the features function as expected. The other types of TDD are Acceptance-Test Driven Development (ATDD) and Behavior Driven Development (BDD) {hyperlink to parent page}

2. Exploratory Testing 

Exploratory Testing doesn’t require a pre-defined test script. It starts by testers following their intuition and tests the working of the software by mimicking the user behaviors. It helps to find out bugs that escaped functionality testing and also potential high-risk bugs that could break the software. The entire process is recorded and saved as a test.

3. Session-Based Testing  

Session-Based Testing differs very little from exploratory testing in terms of having a more structured testing process. The objective of this testing is all the same: to find critical bugs that could break the software

Traditional testing vs Agile testing

Traditional/Waterfall Testing Agile Testing
Requirements are well-documented and well-structured Light on documentation and it requires minimal planning
Testing happens only at the end of SDLC.

Testers and developers work independently and there’s a very little communication

Testing shifts all the way to left

Testers work alongside developers and have a regular communication

Testers may not be present in the requirement stage Testers are involved in the requirements stage
Defects found only in the later stages Earlier detection of defects is possible due to continuous feedback among teams
Strict adherence with requirements and if changes arise, very difficult to adapt and proves less effective Flexible and welcome to changes in the requirements
Best suited for complex and large projects Best suited for small projects and works fine for long term
 All features are delivered in bulk after the implementation Shippable features of the software are delivered after each iteration

Advantages of Agile Testing 

  • A better understanding of the product as all teams work together
  • Earlier detection of defects saving time and cost
  • Continuous feedback leading to the continuous improvement of product quality
  • Easy to manage the software

Final Word

The setbacks from the waterfall and advantages of the agile set-up have driven organizations to fast transition into the agile culture to realize their digital transformation goals.

As easy as it may look to embrace agile, the real challenges lie in ‘adoption’. Businesses must take into consideration proper on-boarding of members to the agile mind-set, training process, know when agile doesn’t suit them, also lead(ers) by example to bridge the gap between Embrace and Adoption.

WANT TO RULE DIGITAL? GET IN TOUCH