Visual Testing of GUI Based Software Systems
Testing of software systems visual interface is an emerging testing type that concentrates on verifying the properties of all User Interface (UI) widgets (e.g. text fields and combo lists) in all visual interface elements (e.g. screens and reports) of a specific system. It also checks that the layout of the visual interface element is appealing and matches the corresponding system prototypes and specifications. Writing and executing test cases for visual testing is considered a time consuming task since the tester should cover all properties of all UI widgets of all visual interface elements. UI widget properties include label, text length, visibility, foreground colour, background colour, and position. In addition, visual testing negatively affects tester’s health, in particular, eye fatigue, resulted from long time use and concentration to check UI look and feel against low quality monitors with radiation emission. Although visual testing is a time consuming and health hazardous, it cannot be skipped in the testing phase of software systems development. This is attributed to GUI being the front end facing the client in his acceptance testing and heavily participates in his decision of whether to accept or reject the system. This adds more monotonous tasks that are participating to degrading the efficiency of the testing process, in particular, in visual regression testing. The problem is getting even worse if the system is required to operate equivalently across different configurations and environments (e.g. operating systems, browsers, and digital surfaces). Visual testing is different from the GUI testing being addressed in the literature. GUI testing mainly concerned with functional testing of software systems through their GUI and not the GUI itself as it is the case in visual testing.
The importance of regression testing in the context of incremental and iterative software development, the time and efficiency factors of regression testing, and the destructive effect of UI bugs have raised the following research questions for investigation:
- Can visual test cases be surveyed and a corresponding repository is created?
- What is the fitness of using the archived visual test cases as a platform for prospective visual tests?
- Can the archived visual test cases be automated and reused?
- How usable and maintainable will the automated test cases be for non-technical test engineers?
- What is the effect of the reusable automatable visual test cases on regression testing, in particular, and software development process, in general?