A metaheuristic approach to automatic test case generation
for application with GUI
Belhassen Ouerghi
The metaheuristic methods
The problem
The problem
● Users love features and options.
● The majority of software application employ a graphical user interface(GUI).
● The GUI are becoming more and more complex (more options, more features).
● Testing a GUI taking into consideration (fonctionality,securitiy, usability…) is laborious and resource intensive.
New generation of GUI
Old school GUI
The solution
The solution
● Automating the process of testing.
● Scripting and capture and reply is the most common technique in the industry.
Is it really a good solution?
Why?
● Actions need often to be in specific order.
● Actions have to appear in the context of certain other actions to provoke faults.
● Tester have to compile the entire test suite.
● Slight changes to the GUI of SUT will break tests.
We do have obviously a problem to generate automatically test sequences.
The metaheuristic approach
● The problem of generating test sequences to GUIs will be treated as an optimization problem.
● Ant colony optimization algorithm is employed.
● New metric called MCT(Maximum Call Tree) is used to search fault-sensitive test cases.
How ant colony optimize their way
The event flow graph (EFG)
● Since many sequence are infeasible like this one: s=(Edit, Paste) it is helpful to employ a model of the GUI.
The maximum call tree criterion (MCT)
● Choosing the right criteria is critical for finding faults.
● Generating sequences that induce a large call tree within the SUT.
● Sequences are generated online (executing the SUT) therefore no need for a model of the GUI.
● Don‘t have to deal with the infeasibility.
The maximum call tree criterion (MCT)
Merging thread
Test environment requierment
● To be able to scan the GUI of the SUT to obtain all visible widgets and their properties(size, position, focus…).
● To derive a set of interesting actions(visible, enabled button, is clickable…).
● To give these actions unique name.
● To execute sequences of these actions.
How sequences are generated
The framework
RandomVs ACO
● K is the number of top-K sequences in every generation.
● α is the pheromone evaporation rate.
● ρ is the probability parameter for the pseudo proportional random selection rule.
Conclusion
We used the ACO optimization algorithm directed by MCT to automatically generate the input sequence for application with GUI.
Since we forgo the application of GUI model there is no risk of generating infeasible sequences.
References
● http://de.wikipedia.org/wiki/Ameisenalgorithmus
● „A Metaheuristic Approach to Test sequence Generation for Applications with a GUI“ paper from Sebastian Bauersfeld, Stefan Wappler, Joachim Wegner.
● http://en.wikipedia.org/wiki/Metaheuristic
A question
Is testing a GUI really an optimization problem?
Are we searching or planning when we test?
Find it out at 19.06.2013