BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Mastering Agile Testing

Mastering Agile Testing

This item in japanese

Bookmarks

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

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • I think this is wrong

    by Charlie Wilson,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Not having dedicate testers seems to be one of the sacred cows of agile, but in every team I’ve seen it tried code quality drops and the business ends up being treated as responsible for testing. Its not good for the business team, and it isn’t good for the overall dynamics.

    On projects where I’ve been lucky enough to work with a good, specialist test manager they are worth their weight in gold. We’ve ended up with happier customers, better quality software, and a higher overall velocity.

    My recommendation: have developers write unit tests. Have a separate Q&A team that breaks the software before it gets to the business. For every bug that’s found have a unit test that tests it to avoid regressions.

    What are other peoples experience of this?

  • Re: I think this is wrong

    by Shane Hastie,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Hi Charlie

    Thanks for taking the time to comment.

    I don't see anything in the recommendations about not having dedicated testing skills in the team - the "full stack QA engineer" is someone focused on the quality of the product who needs to have a solid understanding of the important testing principles as well as technical knowledge.

    I certainly see a strong push for testing skills to include technical skills today - I feel the era of the dedicated manual tester who followed a test script to exercise a product is probably gone. The skills needed to design good test scripts are absolutely necessary, along with the ability to automate those scripts and to do exploratory testing across the product.

    I prefer cross-functional teams with all the skills needed to design, build, test and deploy a product rather than hand-off to a separate QA team. The earlier we can engage the testing mindset the better; "shifting left" all the way to testing the requirements (be they user stories or any other format).

    A final personal peeve - testing doesn't break the product, it exposes where other people have left it broken.

    Thanks

    Shane

  • Success of QA depends how well they know Agile Methodology

    by Mayank Sharma,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    A QA team if performs well and succeeds in its goal to make the product bug free and of highest quality standards then it makes the company/organization to grow. In order to achieve the QAs should also know how to perform and succeed in an agile environment. I hope this book helps them www.amazon.com/dp/B06Y2W253K/ref=cm_sw_r_tw_dp_...

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT