– User interface (UI) testing or GUI (graphical user interface) testing is defined as the process involving testing of the GUI of the software product.
– Testers perform this testing process for ensuring that their software system meets the specifications stated by the client.
– For this purpose, they may use a variety of test cases.
– The generation of the test cases is the most important and difficult part of this testing technique.
– For designing the test cases the test designers often look out the functionality of the software product.
– It is necessary that test suite covers all of the functionality of the product.
– Another point about which the test designers need to be careful is that their test suite must be capable of exercising the full graphical user interface of the system.
While designing such a test suite the following two major problems are encountered:
– On top of this, the misery of the tester increases manifolds when the regression testing also has to be carried out.
Dealing with Sequence Problem
– Not all the functionality of the system can be accomplished by a simple sequence.
– There are some that have to be accomplished through a sequence of complex GUI events.
– Take an example: for opening a file, the user has to click on the file menu and selecting the open option from the menu will have to specify the file name.
– After this the focus would be entirely up on the newly opened file or window.
– Thus, the focus will be shifted from the previous window to current one.
– This means if the number of the possible operations is increased, the complexity of the problem also increases and that too exponentially!
– Imagine the workload of the tester.
– And the workload of the tester who is manually creating the test cases would be even higher.
Dealing with Size Problem
– A command line interface (CLI) system has less number of operations to be tested when compared with a GUI based system.
– There is great number of operations that require to be tested in a GUI based system.
– The Microsoft WordPad which is quite a small program consists of 325 GUI operations that can be tested.
– Think about the large computer programs where this number would be an order of higher magnitudes.
As we mentioned above that regression testing add to the misery of the testers and especially with the GUI based systems. You must be thinking why is it so? Well this is so because the application’s GUI does not remain the same for every version of it.
– It keeps changing its form even if no change occurs in the underlying application.
– For example, if a test has been designed for tracking a certain path through the application’s GUI, it may not be able to do so because the location or the appearance of the intermediate elements might have changed.
– All these issues have necessitated the need for using the automated approach to GUI testing.
– For this purpose a number of techniques have been devised.
– These techniques apart from generating the complete UI testing suite also simulate the real users’ behavior.
– A number of these techniques are based up on the techniques that were earlier designed for testing the CLI based software systems.
– The major problem being faced in applying these techniques to GUI based systems is the scaling problem.
– For example, the finite state machine based modeling program (program is used for generation of test cases that is modeled as an FSM) can get too un-wielded and complex for a GUI based software system.
– But the same program works well for a CLI based system having few states.