Software teams must continually answer two key questions to ensure they deliver a quality product:
- Are we building the correct thing?
- Are we building the thing correctly?
In recent times, I’ve noticed a seismic shift of a tester’s role on an agile software team from testing that the team is building the thing correctly to helping the team build the correct thing. That thing can be a user story, a product or even an entire company.
As Trish Khoo recently wrote:
“The more effort I put into testing the product conceptually at the start of the process, the less I effort I had to put into manually testing the product at the end”
It’s more valuable for a tester to answer ‘will it work?‘ at the start than ‘does it work?‘ at the end. This is because if you can determine something isn’t the correct something before development is started, you’ll save the development, testing and rework needed to actually build what is needed (or not needed).
But how do we know it actually does work if we’re focused on will it work? How do we know that we’re building the thing correctly? The answer is automated tests.
Automated tests, written by programmers, alongside testers, during the engineering process validate the software does what it’s meant to do correctly. Behavior driven approaches assist to translate acceptance criteria directly into automated tests.
So, how can a tester be involved to make sure a team is building the correct thing?
- get involved in writing the acceptance criteria for every story;
- ensure a kick off for each story happens so the programmer(s) understand(s) what is expected and any edge cases or queries are discussed;
- work with the programmer(s) to automate tests based upon the acceptance criteria;
- ensure a handover/walk-through happens as soon as a story is finished in development to ensure that all the acceptance criteria are met and tests have been written;
- showcase the finished product every iteration to the business.
You’ll soon find you can provide much greater value as a tester determining whether something will work and then working alongside the development team to ensure it works as it is developed.