StarDust Testing Blog : a blog about user acceptance testing for mobile & website

Testing in an Agile Project?

Written by François Joseph Viallon | Jun 16, 2016 12:43:43 PM

Popularized in the year 2000, the agile model is an information technology project implementation methodology based on iterative and incremental cycles, referred to as sprints.

WHAT IS THE AGILE MODEL?

The agile model is a software development method based on the principle of adapting to change.  Following this methodology, a team of developers, testers, project manager, and project owner work together to build a digital service through incremental cycles known as sprints.

This approach helps the progression of projects and allows the team to better respond to project requirements and unexpected issues that can arise. 

The agile model also enables better risk analysis since quality assurance is an integral part of each sprint. Lastly, regular meetings help to facilitate communication between team members throughout the course of various sprints.

This rise in communication is important for avoiding possible misunderstandings. In the end, the agile model is an effective way of responding to market challenges and helps reduce the time-to-market.

This model competes with the more traditional development method known as the V-model. Following its emergence, it has seen rapid development and has been very successful, so much so that over a dozen different versions have been identified.

Testing has a crucial place in the agile model as a key step that allows the project to move from one sprint to the next. It is unthinkable to move from sprint to the next without testing both the newly added functions as well as the existing ones.

In the end, the testing phase ensures the reliability of the functionalities developed. Therefore, testing plays an essential role. 

HOW DOES AGILE WORK, SPECIFICALLY?

User Stories

Each sprint takes between 2 and 3 weeks and is centered on formulating User Stories, which detail the functions the final product will possess from the perspective of the end users. During each sprint, new functionalities are developed based on these user stories.

The principle is to add new functionalities during every sprint to allow the project to progress, while avoiding the so-called "tunnel" effect of conventional projects. While most projects following the agile model rely on user stories, there are some projects that do not rely on them at all. 

Close Collaboration

Following the agile methodology, the product owner (Product/Account Manager), the (graphic) designers, the developers, and the testers all work hand in hand.

When team members work together, amazing results can be achieved. via GIPHY

The product owner is responsable for defining the product's functionalities and requirements (product backlog) as well as providing the user stories. 

The development team discusses the methodologies, the tools, and development costs for each element or function that needs to developed.

The role of the testers is to analyze functional and user risks prior to development and get involved at the end of each sprint to validate the quality of product delivery.

Each discipline acts in the best interest of the product being developed. In the Scrum methodology, one of the most used agile models, a Scrum Master is responsable for making sure the methodology is followed, which helps the project  progress smoothly and promotes team coordination. 

Sprint and Acceptance Testing

Once development is complete, each sprint is subject to functional and acceptance testing. Any bugs identified are subsequently fed back to the development team for debugging.

The next sprint cannot begin until the updates are implemented. Here, it is essential for the tester to be experienced and familiar with the agile methodology. 

Sprints proceed in the following manner:

  • Sprint 1: Formulation of User Stories + development + tests + production (Iteration 1)
  • Sprint 2Review of sprint 1 + formulation of User Stories (new functionality) + development + tests + production (Iterations 1 + 2)
  • Sprint 3: Review of sprint 2 + formulation of User Stories (new functionality) + development + tests + production (Iterations 1 + 2 + 3)
  • N sprints... 

WHAT DIFFICULTIES ARE ASSOCIATED WITH THE AGILE MODEL?

  • Project boundaries may be vague
  • Sprints may be numerous
  • The documentation is minimal and changes constantly which is why a Scrum Master's experience is important to assure good communication among team members

THE ADVANTAGES OF THE AGILE MODEL?

  • Flexibility in project development
  • Better risk analysis prior to development
  • Implementation of a quality process
  • Close collaboration and closeness between clients and teams
  • Good communication and deep knowledge of needs
  • Recurrence and rapid succession of development and testing
  • Functional software taking precedence over exhaustive documentation
  • The product adjusting to the requirements of the customer and those of users

A product developed in agile model can be rolled out much more quickly while also corresponding to the client's expectations. Given that this last one is an advantage implicit in the sprints, there is no discrepancy between the initial requirements and the final product which is frequently the case with other development methods.

Conclusion 

According to 2018 World Quality Report, the number one challenge that agile teams face is implementing automated testing in order to test more efficiently and remain on schedule.

Therefore, we invite you to download our Automated Testing Guide to discover common challenges of test automation as well as tips and solutions to over them.