Automated Testing at the User Interface level
WHAT IS TESTAR?
TESTAR is a tool that enables the automated system testing of desktop, web and mobile applications at the GUI level.
Since 2014, TESTAR has been deployed and used in several companies with impressive results, which show its potential to grow into a full-fledged tool that can help companies improve system testing at the GUI level.
TESTAR is available under the BSD3 license.
WHERE DOES IT COME FROM?
TESTAR has been developed within the context of the FITTEST (Future Internet Testing) project (EU project no: 257574 FP7 Call 8 ICT-Objective 1.2 Service Architectures and Infrastructures) that run from 2010 till 2013. After that development has been continued by the Universidad Politecnica de Valencia, Utrecht University and the Open University The Netherlands in the context of several national and European funding initiatives.
HOW DOES IT WORK?
TESTAR automatically executes test sequences following the steps in the diagram below.
Start the System Under Test (SUT), optionally instrument it (e.g. to obtain internal information necessary to guide the search).
Scan (or scrape) the GUI in order to obtain the state of all control elements on the screen (type, position, enabled/disabled, etc.)
Generate widget tree. This is a hierarchical representation that enables TESTAR to derive a set of sensible actions (such as clicks, keystrokes, drag and drop operations, etc.).
Select promising actions (actions that are likely to expose faults) according to TESTAR’s internal search state, and execute them.
Repeat: Tree generation, action derivation, action selection and execution are repeated until the desired sequence length has been reached.
Stop: Eventually, depending on the criteria used for the tool’s fitness function, the generated sequence is rated and the SUT stopped.
Start again: In the next iteration the tool generates another sequence and repeats sequence generation until.
End: when a certain stopping criterion (e.g. time or a particular number of sequences) has been met.