Main concepts
Most of the modern test techniques will check for error, fails, crashes or exceptions, but sometimes a bug is not an error but unexpected and confusing “functional” response of the system (see POLA (Principle Of Least Astonishment))
- For example, a sign-in form that, if the user submit with already registered data, will trigger two warning to the user, such as “account already existent” and “successfully logged”
- In this case, no errors or exceptions are triggered but the system behavior itself is not functional
Augusto: AUtomatic GUi Semantic Testing and Oracles
This technique leverage on common sense knowledge to automatically generate semantically-relevant test cases equipped with functional test oracle that can reveal hidden faults.
- the idea is to generate test case with useful combinations of actions, and not random sequences of actions
- detect failures that depend on the semantic of the application
The intuition is that many popular functionalities are implemented in similar ways and shall respond in similar ways
AIF (Application Independent Functionalities) (common sense knowledge)
- examples of AIF are CRUD (Create, Read, Update, Delete) operations, search and booking operations
Relying on common problem and common expectations means specify tests once for all and automatically adapt and reuse them
Augusto method is complementary to other automatic technique, allowing the developer to address more specific functionalities using other approaches.