The goal of testing is to assess the quality of the product the most efficient way – enabling the Product Owners to make decisions about whether the product is Shippable.
Product Risk Analysis is all about achieving the most efficient use of resources to find the most severe defects as early as possible to ensure the quality of the product.
Test Design is all about uncovering as many defects as possible with the least effort – or in other words – testing as much as possible with as few tests as possible. To achieve this kind of Test Design, the Test Analysts are using Test Techniques.
By combining Product Risk Analysis and Test Techniques you achieve the right quality at the right cost. What would be a better Strategy for efficient Test Automation than to use the resulting Test Design as a basis for your automated tests.
Example
We started out modelling the possible process flows of the system. It turned out that there were numerous possible flows and it was not possible to identify a few of the variations as more critical than the other variations meaning that Product Risk Analysis was not a sufficient approach this time.
We then decided to use Test Techniques to narrow down the scope of testing. We used a Test Technique called N-path which is very suitable for testing of process flows, and we chose a medium coverage by using 2-path. This means that every pair of in/out for every process will be tested at least once. By using this technique we identified 17 tests.
Now we had achieved a manageable number of tests and a sufficient Test Coverage – meaning we had found the most efficient way to test the complex process flows of the system under test. For more about Test Techniques, I recommend TMap®:
https://drive.google.com/file/d/0B1mncLJKDX4DNHJhRGM1NXd4X0E/view
But still it would be a lot of work to execute those tests. We decided to automate the resulting Test Design to improve the test efficiency even further.
We did this by designing the automated tests as building blocks – one building block for each process – making it possible to run any process flow variation.
To increase flexibility even more we used a Data Driven approach. We are able to use the same tests for many different purposes by running them in different sequences using different input.
– Testing the complex process flow of the system under test
– Automated functional end-to-end regression test
– Test Data generation
– Automated Test Environment verification
– Test of Data Migration