Let consider a large application to develop; it is not possible to list the entire exhaustive combination of User Test Cases : You could have millions of possible ways of using your complex application, hence millions of User Test Cases to record and run within the automated Software Factory.
When dealing with large and complex scenarios, Genetic Algorithms are good to find a solution quickly, whereas calculating all possible ways would last more than decades even with the fastest computer.
Let us assume that the red biomorph fractal below is THE best User Test Case that you are looking for, because it covers 100% of the needs (hence you don't have to tests all possible combinations, where many of them would likely to do nearly the same thing), and would guarantee no software regressions over years.
Since you don't know yet the solution, you would try to identify programmatically for exemple 1000 random combinations (24 of them are represented as white biomorph fractals below).
By letting them evolve throw a reproduction process (with various factors such as mutations) during a large number of iterations, this would lead to find a solution within minutes.
This may be not the perfect one, but the closest to the sought solution.