Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Mastering Agile Testing

Mastering Agile Testing

This item in japanese

There is general acceptance that adopting agile development practices enables the speeding up of the delivery of software.  Without incorporating quality assurance practices directly into the development process, product quality inevitably suffers.  In order to consistently achieve high quality, both work practices and team roles need to change to build quality in rather than testing at the end.

In a recent CIOReview article, Brad Boemmel, Quality Assurance Director for Morningstar, Inc, said:

The agile software development life cycle was designed primarily by and for developers; it was not created to optimize quality assurance (QA). Software testing remains an integral part overall development life cycle and the last 15 years have been spent finding ways to incorporate it based on this new shift to agile in the industry. While the proliferation of automated testing techniques has helped this transition, shifting roles are a key reason highperforming teams have succeeded.

He maintains that having separate testing roles within a team is counter-productive, encouraging "mini-waterfall" thinking.  He says:

There is a need for the fullstack QA engineer, an individual with a technical language set along with subject matter expertise, who can be the champion for quality across the entire squad.
Quality becomes everyone's responsibility, and the testing focus for each individual is directed to their core skillset.  He talks about developers taking responsibility for fuctional and unit testing, product owners bookending the testing with usability and acceptance to ensure the product increment is fit for purpose.
He says that this allows the QA engineer to focus on the more value-added aspects of testing, such as "negative, edge-case, integration and exploratory testing", along with the important non-functional testing such as performance, security and load testing.
He points out the importance of QA engineers having a technical or coding background, and the ability to become cross-functional.  He also emphasizes the importance of the QA voice within the team as the advocate for product quality. 
He concludes by saying that:
Quality assurance professionals will take control of their destiny and establish an agile culture of quality by shifting to a more technical focus, demonstrating an ownership mentality and strong voice within their organization, and driving a system of quality throughout their crossfunctional teams.
On a similar note, Philip Lew, CEO and Founder of XBOSoft will present a webinar on Testing in Agile.  
Instead of leaving testing to the end of the process, you should be thinking about quality within the Agile process. If you do this, your testing at the end will be much more effective and efficient.
The description talks about the Seven Habits of Highly Effective Agile:
  1. Work closely with customers to understand them 
  2. Keep teams small
  3. Promote a shared understanding 
  4. Collaborate, collaborate, then collaborate some more 
  5. Measure your progress 
  6. Make roles and responsibilities clear 
  7. Facilitate a team culture  
He says:
Like habits for a productive and meaningful life, where you learn as you go, adapt and improve with experience; there are habits that lead to highly effective Agile.  For any project, whether converting from a Waterfall process to Agile or trying to fine-tune the Agile process, we've found that these good habits lead to a particularly successful Agile implementation.

Rate this Article