To illustrate the idea, we take the programming exercise of solving a quadratic equation as a running example (Figure 3).
We have created a number of test cases, which are grouped into three levels of difficulty, namely, the beginner level, intermediate level and advanced level(Figure 4).