Overview
Functional bugs prevent the correct execution of an application: Either an error appears, or a required function of the application is not executed properly. This type of bug can be detected with unit tests. Non-functional bugs, with which we concern ourselves in this project, are errors that do not prevent the correct execution but have unwanted effects. For example, a button hidden by another UI element does not prevent test code from executing, as the test code knows the button's ID and can therefore still click on it. The test runs through and the bug is not detected. In this project, we evaluate novel methods based on unsupervised machine learning to detect such non-functional user interface bugs automatically and without specific test code.