QA Best Practices on an Agile Project

qa-agile-best-practices-header

The Agile and DevOps movements continue to affect how software gets written. We noted this growing trend specific to DevOps in last week’s blog post. The highly collaborative nature of both development methodologies is leading to faster deployment cycles; in some cases approaching the speed of Continuous Integration.

A fast and highly iterative development process puts more pressure on the QA role to properly vet software, while working closely with developers, business stakeholders, and network professionals. With high quality software as a goal, here are some Agile QA best practices worth checking out for your team.

Communication and Collaboration are Vital

Not surprisingly, strong collaboration and communication are at the center of any Agile project. At the beginning of the effort, explain the communication channels to everyone on the team. During each iteration, make sure daily meetings are held; anything from 15 to 30 minutes works without keeping the team away from their testing duties for too long.

Consider letting your testers spend time with the programmers when they are coding features and bug fixes. In many cases, having a different pair of eyes looking at an issue helps inspire solutions to difficult problems. Video chat services also facilitate this kind of interactivity if your teams don’t work in the same building.

Leverage an online wiki or some other application for project documentation, bug and issue tracking, as well as other meaningful information related to the project. Keeping everyone on the same page in this fashion is vital for a project’s ultimate success.

Involve QA in the Requirements Gathering Process

When an Agile project is still in the requirements gathering phase, make it a point to include your senior QA team members at this point. This helps their overall understanding of the scope of work and definitely allows them to create more meaningful test cases while translating the project scope to other QA staff. An additional benefit is everyone is able to meet each other early on and begin the collaborative process.

Multiple Virtual Testing Environments are a Must

Work with the network engineers to ensure the QA team has access to multiple virtual environments for testing, including backups. Since the iterative cycles on Agile projects are faster than usual, multiple environments ensure bottlenecks won’t adversely impact your team’s progress. This rule also applies to environments set up to handle load testing and other QA scenarios.

Catching Software Defects Early

One of the major advantages of the Agile Methodology is how its faster iterations allow software bugs, database design problems, and user interface issues to be caught early. We’ve talked before about how the cost of software defects rises exponentially the later they are found in the development cycle.

Don’t assume simply following Agile principles itself will help detect issues quickly. Make sure the QA team gets their hands dirty testing each sprint, no matter how early in the project they occur. This also helps get everyone used to the overall speed of an Agile project.

Stay tuned to upcoming blog posts over the next few weeks, as we look more closely at how the QA role works on Agile projects.