Testing Graphical User Interfaces with Property-Based Testing

Abstract

Before a software product is released, it has to be verified that the product works as it should. Graphical User Interfaces (GUI) need to be tested like any other software products. The purpose of testing GUIs is to detect defects but also unexpected behaviour of a GUI. In 2000 John Hughes and Koen Claessen introduced a new software testing technique: \textit{Property-Based Testing} (PBT). In this testing technique the functionality of the system under the test is defined as properties. Properties are like rules for the features under test. A property defines a relation between input and output that should always hold for all inputs. A property is tested by generating a large number of inputs for which the property is tested. The goal of this thesis is to explore if PBT is applicable to UI testing. We formulate properties that describe the rules that a GUI should follow, then apply PBT and investigate whether defects could be exposed this way. We also explore whether PBT solves any of the challenges of UI testing, in particular whether test coverage can be increased by using PBT. As its results, this thesis shows that PBT can be applied in GUI testing and that there are defect classes that might not be detectable by traditional testing methods, but can be found using PBT

    Similar works