Creating a Software Test Plan for an Agile Environment

DZone 's Guide to

Creating a Software Test Plan for an Agile Environment

Change the way your team plans agile testing efforts with a few simple tips.

· Agile Zone ·
Free Resource

Many software developers and quality assurance teams are interested in making the leap to agile, but may be hesitant about the changes necessary to facilitate such a move. Working in an agile environment is vastly different from traditional waterfall methodologies, and requires a new approach to QA management. If team leaders fail to make the necessary adjustments, their agile initiative will likely falter, if not outright fail. Of critical importance here is changing the way teams lay out agile test plan for any project.

Take a Step Back and Create a Plan

Writing in TechTarget, QA veteran Yvette Francino commented that organizations should resist the urge to dive into automated testing at the outset of a new project. That may seem in stark contrast to some of the more well-known tenets of agile, including the use of automated test scripts whenever possible and bringing QA into the production process as early as possible. However, Francino cautioned that even with agile's focus on speed and flexibility, there still needs to be some semblance of a plan or strategy in place for any project to be successful.

When laying out a test plan for an agile environment, it's important to remain focused on the overall goal of a particular development project and not get too bogged down in the details. The first step is to determine what types of tests will be needed during the course of production. Francino recommended using the agile testing quadrant approach for this task, which helps break tasks down by need, goal and test type.

This way, teams can plan out in advance how much automated and manual testing will be required, as well as where to focus those efforts.

QA teams can also use the agile test automation pyramid to generate a list of priorities for their automated tests. This facilitates agile processes by creating automated resources to evaluate basic functionality early on in the production lifecycle before moving on to other software features."Automation is an important part of any agile software testing strategy," Francino wrote. "However, there are different types of testing and different types of automation. Using the agile test automation pyramid and test quadrants, you'll be on your way to creating a solid strategy to fully test your application."

Never Plan in Isolation

Just like in a waterfall environment, agile teams should embrace test planning so everyone involved in a project knows precisely what their roles and responsibilities are. If team leaders are finding it difficult to fit test planning into their busy agile schedules, QA expert Karen Greaves suggested working it into their sprint planning processes. Writing on her blog, Greaves stated that the goals of sprint planning and overarching test planning dovetail nicely, so it makes sense to cover both at that stage. 

One common pitfall to avoid is assigning test plan duties to a single individual or even a handful of team members. Not only would that go against the collaborative spirit of agile, but it would prevent other project stakeholders from having a chance to give their input and find alternative solutions to issues with the strategy. Furthermore, planning by community ensures that everyone is on the same page and has a firm understanding how quality will be defined for that particular project. QA teams can further support internal collaboration by implementing test management software to share critical documents and resources such as the agile test plan. This way, team leaders can be sure that all testers have access to the outlined strategy, and that it isn't just sitting on some whiteboard somewhere.

agile, testing

Published at DZone with permission of Francis Adanza . See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}