The cost of finding issues during acceptance test phases is huge. Many organisations are trying to adopt new methods like Agile, Continuous Delivery or Dev-Ops to deliver change incrementally to reduce the feedback cycle, time and cost. The challenge to enable this is that verification needs to be fast and as efficient as possible.
The project management triangle which describes the inflexibility between time, cost and quality, has been a tool to rationalise having to push or pull on one of these leavers to deliver successful projects.
Today with experience, hindsight and being exposed to new technologies that make quality much cheaper and faster to implement, there are a number of low hanging fruit an organisation can pick to push the triangle in ways not originally envisaged.
Here are five such items that if implemented, cost very little and speed up delivery.
1. Set up your software vendor commercials to include a reference to acceptance criteria
Moving the detailed acceptance criteria outside the contract provide a mechanism to ensure acceptance can be clearly and adequately defined. Too often at the commercial stage the wrong people are in the room to make informed decisions on acceptance criteria. If the vendor gets nervous about what the future acceptance might be then this is an indication that something needs to be clarified. It might mean you need to get the right people in the room sooner rather than later to close out the deal. It also might cost more up front to get this agreed, but it will be exponentially more effective than arguing after the point when issues are identified by the acceptance team. Again this process shouldn’t be over complicated or time consuming. Getting the first agreement done will make the rest simple, using a framework like ISO29119 provides a solid starting point.
2. Build a quality policy for the team, project, organisation
A simple document could be a one-pager on the wall signed by the CEO or business, that brings everyone together for a common understanding of what quality means. The benefit of this activity is that the team agrees what is acceptable from each team member. This might include; an executable specification from the BA, an executable service model from the architect, or a set of acceptance tests passing from the developer. The business can no longer afford a team of specialised testers checking for mistakes.
3. Stop writing Test Strategies no one reads
Typically a test strategy details what the Test Team will do, its high in verbiage and low in detail. Start looking for ways of creating a consensus across the delivery team on the actual strategy to verify quality. Meaning what actions will be taken when and by who. Look at the Lean Test Canvas as an alternative way of approaching this and a simple one page plan on the wall that is shared across the team.
4. Automate verification as early as possible
This is a old chestnut and well understood, but often barriers are raised. For example ‘it’s the earliest I can automate’. Start understanding more about the technology you are involved in implementing, learn what others do or what the vendor recommends. Strip down the amount of function that is verified within an automated activity to its minimum and create lots of small tests. The default starting point for automation is unit level, don’t be fooled into thinking that acceptance test automation is where you should start your investment.
5. Stop automating manual tests
Don’t automate manual acceptance tests, deconstruct functions within a manual test and look at the different layers individual functions could be verified. Start by asking the developers if they already have tests that cover that function, get a recommendation of the fastest way to verify each function. Either the developers can start including the verification or create the verification and include it in the build/deploy process. If you don’t own development, go back to your commercials and start asking for automated verification of function on delivery.
After all that, why not start encouraging teams to solve defects during design, prototyping and development phases and allocate them time to utilise on innovation and uplift as the acceptance testing timeframes start falling.