As the software development started to evolve, the expectations towards the
software’s quality started to grow too, new development processes and metodologies
were created, and the software testing became more and more important. The software
testing is a major part of the development process to ensure software quality. Testing is a
complicated process, which requires time and cost. The classic source code testing (unit
testing) is a well defined process, the code coverage can be easily measured, and the
expected outputs of a function is well defined based on it’s inputs.
The appearance of the graphical user interfaces made software testing a lot harder.
The appearance and the functionality of the GUI can be hard to specify due to its
complexity. It handles numerous events, different type of user interactions, synchronous
and asynchronous events. The applications are running on different type of operating
systems and frameworks, and based on the environment tool support is not always
The first chapter of the thesis introduces the evolution of the graphical user
interfaces, explains the essential concepts of the software testing, and gives insight about
the different kind of testing methodologies and automatic test generations.
In the second chapter I compare the currently available tools for GUI testing on
the iOS platform.
In the third chapter I specify and implement a todo list handling test application,
which I am going to use to demonstrate the GUI testing capabilties of Xcode7.