Start typing keywords to search the site. Press enter to submit.
Generative AI
Cloud
Testing
Artificial intelligence
Security
There are a great number of approaches and techniques, which one(s) should you use? You can choose static testing or dynamic testing or (often) both. But what should you do in your specific situation?
The decision which test design technique can best be used, can be very well prepared. It is never a random or ad hoc choice. The team has performed a quality risk analysis and now has insight into the areas with higher and lower risk. Usually, there is a need for higher coverage when there is a higher risk, and less coverage where there is a lower risk. This is often described in a test strategy.
A team could create a test intensity table once to guide the team members in the choice for test approaches and test design techniques.
The final choice depends on many variables, for example
And keep in mind that coverage-based testing should always be combined with experience-based testing, in some way or another.
Often, people involved in risk-based testing use the phrase “No risk – no test”. This sentence is incomplete. It is better to use the statement: “No risk – no test – no development”. Because when there is no risk that means that if the feature fails, nobody has a problem and thus nobody really needs it. It is therefore a waste of money to develop it. Especially since you also run the risk that there are faults that cause more damage than the total business value of the feature.
More information can be found in the building blocks “test strategy table” and “test intensity table“.
A more easily definable term closely related to coverage is the coverage type, the form in which test situations are deducible from the test basis. A coverage type focuses on achieving a specific coverage to detect specific types of defect (e.g. in the interfaces, the input checks or the processing), such defects are detected more effectively then by specifying ad hoc test cases. One coverage type could only be called ‘better’ with any practical use if it would find at least all of the defects found by the other coverage type plus some additional defects.
The decision to ‘test more thoroughly’ concretely translates to a decision to achieve more extensive coverage. In principle, there are 3 options in this respect:
A term to be introduced here in relation to coverage is coverage thoroughness.
In the test strategy is decided what coverage thouroughness is to be acheived in the test. This means that executives and other stakeholder most likely expect information about the thoroughness of your test. But what do they mean? They probably mean one of the four aspects related to thoroughness:
So, although a fascinating subject, it’s also a complex matter. There is no black and white here. However, we can state that testing everything is impossible. How more thorough is a certain coverage type compared to another (e.g. pairwise testing versus modified condition/decision testing)? How more thorough is one variation within a coverage type compared with another variation within that same coverage type (e.g. modified condition/decision testing versus modified condition coverage)? How many additional defects are to be found?
We describe various test design techniques, understanding how these work often goes best by using an example. To demonstrate how different test design techniques can be applied to the same functionality, we will use one example and for each technique create the test cases for this example.
The example case is about an amusement park. In this amusement park, called “QualityLand”, there are many different attractions. One of them is the “magic boat ride”. For a group of people to be allowed on this magic boat ride, there are a few rules that the group must comply with:
The process flow description for this example is shown in below figure. The Process flow for allowing access to the magic boat ride.
For each of the four coverage groups, we list the test design technique(s) in that group that are most relevant in a DevOps context. Per technique we mention the coverage that can be achieved and we show for this example what test cases the technique results in.
Continue to: