GUI Testing - Checking Application Functions
GUI Testing Handbook,
check other parts:
GUI Testing Introduction
| Testing GUI in Windows
| GUI of Web Application |
Automation of GUI Tests |
GUI Test
Automation Tips and Tricks
GUI (Graphical User Interface) is the front-end that serves as an interface
for the end users when in any kind of information processing and data
storage. GUI has virtually become the de facto standard for user interface
in almost all of the modern technologies. It has become popular for several
reasons:
- Easy to understand visual interface
- Flexibility to use in most application areas
- Choice of mouse or keyboard for the ones who find difficulty in typing
- Visibility of multiple windows for better handling of information
- Control of screens according to users wish
- Seamless integration between the packaged applications and customized
applications resulting in cross exchange of information
In reality, the advent GUI has made the interface easy for users but
conversely it had made life difficult for the programmers and the resources
working in development and implementation of the software. In the case of a
developed framework, even the programmers become oblivious to the difficulty
interface designs posed. The responsibility of the effective implementation
lies in the testing process where the hidden complexities rise to the fore.
GUIs make testing systems more difficult for many reasons: the event-driven
nature of GUIs, unsolicited events, many ways in/many ways out and the
infinite input domain problems make it likely that the programmer has
introduced errors because he could not test every path. Therefore Testing
plays a significant role in implementing or executing software successfully.
Introduction to Testing
Testing process can be either manual or automated. Manual Testing involves
testing an application without the help of any automated tool like load
runner, winrunner, silk test QTP etc. It is time consuming. Human effort is
required and sometimes manual testing is the recommended way of certain
functionality. Manual Testing has its limitations as human thoroughness may
not be sufficient to test the application. Automation Testing is testing an
application by taking the help of some automation tool like loadrunner,
winrunner, QTP etc. The advantage being the execution speed and the ease of
repetition to bring about zero defect results.
Testing process has some challenges which are very unique in nature and some
challenges that are more generic in nature. They can be categorized as
Analytical challenges and professional challenges. Analytical Challenges are
challenges that are not unique to Testing and most of the profession require
some degree of analytical skills. Analytic can be defined as "Having the
ability to analyze" or "Ability to divide into elements and principle".
Given the nature of testing it is very important for testers to have good
analytical skills. Like any other skill, analytical skill can also be
improved by practice. Professional Challenges are those challenges seen in
every professional area. The different challenges faced in this field and
how one can overcome them depends on one’s individuality and problem solving
capacity. These may be the interaction with the developer, attitude of
Management towards testing, identification of tools, their usage and
training, interaction with the customers, acceptability and entry-exit
criteria for the tests and many more. While testing any Windows based
application, the testing can be broadly categorized into following
compartments. They are Standardization Testing, GUI Testing, Validation
Testing, and Functionality Testing.
Standardization Testing
This emphasizes on the standardization part of the application.
Standardization means that the application being developed should have a
standard look and feel like any other window application.
General guidelines are as follows:
1. The application should have first "About Application" screen displayed.
2. Most of the screens/ dialog box (as on context) should have Minimize,
Restore and Close clicks.
3. Proper icon should be attributed to the application.
4. All screens/ dialog box should have a proper caption as per the context
used.
5. The application should be seen in the Windows Task Bar as well as status
bar.
Validation Testing
This emphasizes on the Validation aspect of the Application. Validation
testing mainly depends on the fields set in the dialog box and the functions
it has to perform. But still there are certain common rules that can be
applied.
General guidelines are as follows:
1. For text box fields where value entered has to be numeric check
following:
-- It should accept numbers only.
2. For text box fields where value entered has to be alpha-numeric check
following:
-- It should accept alphabets and numbers only.
3. If the field is a combo box then it has to be checked for following
points:
-- Check the combo box has drop down values in it, it is not empty.
-- Drop down values should be alphabetically sorted. This might change as
per requirement but as standard practices it should be alphabetically
sorted.
-- Selection of any drop down value is displayed on closing and opening the
same dialog box.
--Avoid displaying the first default value in the list.
4. If the field is a list box then it has to be checked for following
points:
-- Check the list box has values in it, it is not empty.
-- List box values should be alphabetically sorted and displayed. This might
change as per requirement but as standard practices it should be
alphabetically sorted.
-- Selection of any list box value should put a check before the value and
should display the correct value(s) selected on closing and opening of the
same dialog box.
-- If the list box supports multiple selection then check whether multiple
values can be selected.
5. If the field is a list of radio button then it has to be checked for
following points:
-- Check whether as per requirements all the values are listed.
-- Same selected value should be displayed on closing and opening of the
same dialog box.
6. Data Controls are to be tested as part of functionality testing.
Functionality Testing
This emphasizes on the Functionality aspect of the Application. The first
step to test the Functionality aspect of the Application is to check whether
all the requirements are covered in the software. The actual functionality
testing totally varies from software to software. Still one can frame
general guidelines.
General guidelines are as follows:
1. Check the functionality is covered as per Requirement specifications or
Functional specifications developed for the software.
2. Within a dialog box identify the dependent fields. Depending on the
dependency check the enabling and disabling of the fields.
3. This form will have the required fields and in addition to that will have
Add, Delete and Update buttons. Unless there is a single valid record
available it is not possible to update or delete.
4. Only on selecting a record from the list Delete and Update buttons are
enabled and Add button is disabled. By default No records will be selected.
5. Delete and Update should always give confirmation message before actually
performing the operation.
6. Delete operation should not show the deleted item in the list.
GUI Testing
Usability Testing is a mode of testing a particular product for its
compatibility in terms of use. GUI testing is a commonly known form of
Usability Testing of software or website. It is also known as User Interface
Testing. GUI testing is a performance related assessment of a software or
website in terms of ease of use, versatility, friendliness with focus on the
target audience, visual impact and the approach and time taken to progress
into the specific purpose.
The software or the website is released as a Beta version or as a pre
release to a set of users to evaluate and assess the performance of the site
or the software with focus on positive customer experience. Feedbacks from
the users are taken as a survey based questionnaire or as a predefined test
document of the functionality expected. The basic idea of going through this
exercise is to allow for the opinions and the responses from the view of the
cross section of the audience concerned. The test results are then evaluated
and changes implemented in the respective software or website.
In the view of web applications, Usability testing is becoming popular as
user centric design has become the focus of websites. This phenomenon has
lead to a new genre of employable professionals called usability engineers
whose responsibility includes positive focused friendly customer
experiences. There are also many instances where sites like drugstore.com,
altavista.com have been revamped as a result of evaluation and assessments
of GUI Testing. GUI Testing can be classified into four stages – Low level,
Application, Integration, Non-functional.
Table of stages and their associated test types
| Low Level |
- Checklist testing
- Navigation
|
| Application |
- Equivalence Partitioning
- Boundary Values
- Decision Tables
- State Transition Testing
|
| Integration |
- Desktop Integration
- C/S Communications
- Synchronization
|
| Non-Functional |
- Soak testing
- Compatibility testing
- Platform/environment
|
General guidelines for GUI Testing are as follows:
- All the dialog boxes should have a consistent look through out the
Application system. For e.g.- If the heading within a dialog box is blue
then for each dialog box the heading should be of this color.
- Every field on the screen should have an associated Label.
- Every screen should have an equivalent OK and cancel button. The color
combination used should be appealing.
- Every field in the dialog box should have a Short Cut Key support. For
e.g.- User Name
- Tab order should be normally set horizontally for the fields. In some case
as per the case the Tab Order can be set vertically.
- Mandatory fields should have * (RED ASTERIK) marked to indicate that they
are mandatory fields.
- Default key <Enter> should be set as OK for the dialog box.
- Default key <Esc> should be set as Cancel for the dialog box.
Ten Points to Remember in GUI Testing
- Test User Friendly labels and Messages, related message content,
understandability of the message
- Test Ease of Navigation
- Test Help Availability to the particular operation
- Test use of colors, fonts, alignment, tab orders
- Test End to End Navigation
- Test Functionality of control objects like buttons, textbox, list box etc
- Risk of Critical Defects detection possibility at later stages of Testing.
- Strict Adherence to Time and Schedule
- Risk of QA resources yet to familiarize on the new application
- Risk of Low priority aspects of the application not being tested till at
later stages
Glossary
- Winrunner, Loadrunner. Testing tools used for automation of testing
- GUI. Graphical User Interface.
- Standardization. Standards adopted to maintain the look and feel of Windows
- Validation. Confirmation of acceptable values, behavior of the object.
- Functionality. Intended performance of the software in terms of purpose and
Objective
|