The problem● Users love features and options.● The majority of software application employ a graphical userinterface(GUI).● The GUI are becoming more and more complex (moreoptions, more features).● Testing a GUI taking into consideration(fonctionality,securitiy, usability…) is laborious and resourceintensive.
Why?● Actions need often to be in specific order.● Actions have to appear in the context of certain otheractions 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 generateautomatically test sequences.
The metaheuristic approach● The problem of generating test sequences to GUIs willbe treated as an optimization problem.● Ant colony optimization algorithm is employed.● New metric called MCT(Maximum Call Tree) is usedto search fault-sensitive test cases.
The event flow graph (EFG)● Since many sequence are infeasible like this one:s=(Edit, Paste) it is helpful to employ a model of theGUI.
The maximum call tree criterion (MCT)● Choosing the right criteria is critical for finding faults.● Generating sequences that induce a large call treewithin 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.
Test environment requierment● To be able to scan the GUI of the SUT to obtain allvisible widgets and their properties(size, position,focus…).● To derive a set of interesting actions(visible, enabledbutton, is clickable…).● To give these actions unique name.● To execute sequences of these actions.
RandomVs ACO● K is the number of top-K sequences in everygeneration.● α is the pheromone evaporation rate.● ρ is the probability parameter for the pseudoproportional random selection rule.
ConclusionWe used the ACO optimization algorithm directed by MCTto automatically generate the input sequence for applicationwith GUI.Since we forgo the application of GUI model there is norisk of generating infeasible sequences.
References● http://de.wikipedia.org/wiki/Ameisenalgorithmus● „A Metaheuristic Approach to Test sequence Generationfor Applications with a GUI“ paper from SebastianBauersfeld, Stefan Wappler, Joachim Wegner.● http://en.wikipedia.org/wiki/Metaheuristic
A questionIs testing a GUI really an optimization problem?Are we searching or planning when we test?Find it out at 19.06.2013