Challenges for Good Design & Testing of GUI components in an application
GUI design of any application is rated good or bad according to the two fundamental attributes like:
1) Interaction: Means how the user is able to interacts with his application.
2) Appearance: Refers to how the application interface appears to the user.
Generally users are comfortable with a GUI design, “look & feel” of which is consistent.
Primary objective of GUI testing is to ensure the correct navigation like getting desired response when some Icon, menu choice, or ratio button is clicked.
Testers look for the compliance of following GUI design principles while testing the application.
Ten Principles of a Good GUI Design
1) Involve the users in GUI design
2) Know the cultural background past & experience of the users.
3) Do continuous prototyping for validating the requirements.
4) GUI design must follow the business workflow of the users.
5) Balanced use of GUI features � Avoid excessive use or even less use.
6) Concurrently creation of GUI, help, and training
7) Users can’t be expected to remember secret functions or commands
8) User can’t be penalized. All mistakes must be anticipated
9) Keep on reminding the user continuously about the application status
10) Keep GUI simple
Working with GUI is a two step process: 1) Identification of Application GUI Components 2) Defining the GUI Tests
Step -1: Identify the Application GUI Components
Graphical User Interface is a means which enable users to interact with the system using words, pictures, animation, sound, and video.
Following are the key components of the user interface:
a) Windows: In a window�s environment, user interacts with the application through different windows.
These are 1) A primary window 2) Secondary windows � that are generated from the primary window & can be many in numbers as per the requirements..
b) Menus: There are different forms and styles of menus e.g.
# Action menus (push button, radio button)
# Pull-down menus
# Pop-up menus
# Option menus
# Cascading menus.
c) Forms: These are the screens, which help the user to feed the data information into the application.
d) Icons: These are “visual push buttons,” through which user can navigate through the application. These are easily recognizable & easy to learn.
e) Controls: There are many types of control component that appears on the screen instantly. Through these controls the user interacts with the application according to the action prescribed for that control. Variety of controls are like: menu bars, pull-down menus, cascading menus, pop-up menus, push buttons, check boxes, radio buttons, list boxes, and drop-down list boxes.
While designing the GUI test design the first activity carried out by the tester is to define a unique name for every GUI component as described in the GUI Component Test Matrix below.
Step -2: Defining the GUI Tests
Here the tester firstly creates a checklist for verifying every GUI component against it. The checklist is quite elaborate & covers all possible type of interactions. It is not essential that it should apply to a particular GUI component.
Apart from the checking of above-mentioned GUI components, compliance to the applicable GUI design standard, if any, is also verified. Compliance to the GUI standards is an important aspect helpful in ensuring that the internal rules for construction are also followed with a view to achieve the desired consistency level.
Few important GUI standards that are essentially verified are as under:
1) Forms are enterable and are in display-only formats
2) Proper wording of prompts, error messages, and help features
3) Proper use of color, highlight, and cursors
4) Proper screen layouts
5) Proper function and shortcut keys, or “hot keys”
6) Screen elements being consistently located on screen
7) Logical sequence of objects
8) Consistent usage of font
9) Consistent usage of color
Clear-cut differentiation between automated GUI test cases & the manual ones is extremely important. This can be done by using an additional column in the GUI component matrix for indicating the type of the GUI test i.e. automated or manual.