|
Secrets of Successful GUI
Testing Automation
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
Testing Automation is a process of
doing the testing of the application using appropriate tools and following
various testing methodology. Different tools are available from various
vendors with concentration on different type of testing. But the fact also
remains that the blending of manual and automated testing methods is the
best way to test any application.
Testing Automation should
concentrate on the following factors – Test process improvements,
requirement definition, feasibility, interface testability, maintenance,
Reusability.
Test Process Improvements
Test process improvement deals with
listing of the test process requirements. The test process requirement
definition is followed by designing the test process. This improvement is a
logical process analyzing the need to automate, areas to automate, spelling
the standards of automation, documenting the risks and assumptions. This is
a repetitive process as the application develops and the testing process
also improves concurrently.
Requirement Definition
Requirement definition is two folds
– automation requirements and testing requirements. These are documented as
test designs and goals of automation. There are four different set of
understanding of testing at this stage. The development team idea of
testing, the testing management goal of testing, the testing parameters of
the testers concerned, and the testing automation team view of testing. The
success of this step is in merging these views and requirements into one
test design to achieve successful testing automation.
Feasibility
Feasibility is selecting the right
tool and the right approach for testing automation. The tool selected and
the approach selected must relate to the product and the team involved in
testing. It would be a wiser idea to use a proof test by sampling the test
automation viability by using a test case appropriate to the application and
getting it executed through the test team. This provides a realistic
estimate of the feasibility of the tool and the approach adopted. GUI
Automation testing tool is the most difficult to select as there are lot of
methods and successful tests are still elusive. Sample testing when
selecting the right tool must involve the tests of regression,
configuration, reusability and Non-GUI testing.
Interface Testability
Applications have interfaces that
need rigorous testing. They are categorized as Command level testing,
application level testing and GUI level testing. An application might have
all the three interfaces or two or one of these interfaces. In several of
the applications, the interfaces may be hidden and executed internally with
GUI interface explicitly seen. The success in Interface testability lies in
understanding that ability to test an application is an application
requirement. An early start to testing goes a long way in ensuring
successful test automation.
Maintenance
Maintenance is termed as sustenance
in testing. The automation parameters must be improvised, expanded, enhanced
as newer versions, releases of the application comes to implementation. As
in the case of backward compatibility, forward compatibility of the testing
automation becomes mandatory. The test design and test cases remain in the
maintenance after the implementation of the application. As newer releases
are planned, the available test designs and test cases execute without any
bugs. This does not prove that the release is error and bug free, fit to be
released. Releases which have gone through this approach have been miserable
failures on implementation. This stresses the importance of maintenance of
automation of the testing tool and the vulnerability of the application in
testing where the testing parameters are not updated to the latest
enhancement or bug fix of the application.
Reusability
Reusability emphasizes on the
packaging the test conditions for future use. The knowledge of the existence
of reusable components goes a long way in saving time, rework of the
components. This stresses on ‘building on the work of others’ concept.
Reusable components can be used when testing new versions of the product. If
the application is introduced on new platforms, reusable components avoid
redundancy of work. Standardized reusable components for the common standard
tests applicable to every application can support a build process with less
effort and lesser time consumption.
Common problems identified with GUI test automation
The identification of the most
common problems associated with test automation leads to better testing
performance using automated products. The application should focus on the
test automation from the start of the development process. The testing
process is put on the back burner till the development is completed. This
leads to lack of time to develop the test automation process. Capturing
information along with the development helps in knowledge transfer to the
testing department and also in the tracking of progress. Testing automation
is introduced in the place of manual testing to ease testing, to improve
test conditions to test the various functionality of the system, and to save
time. But all these advantages do not occur at the same time.
Some
applications automation of testing might provide ease of testing and
improved test conditions or one or more of the objectives of test
automation. Clarity in the objectives of testing automation is required to
plan the automated testing process with success. Testing automation requires
highly skilled technical resources to concentrate on testing the
functionality of the application with least time dedicated to mastering the
tool. Lot
of testing automation tools is available in the market having their own
method of usage and technical expertise built in them. To identify the right
resource for the tool becomes important in this context. Lack of technical
expertise can be stated as one of the main problem associated with testing
automation.
Today testing automation is seen in large projects on account of
costing factors and demanding time schedules. The focus is tuned to the
volume and deadline of the testing automation to the functionality testing
of the application. Repetitive
testing forms the core of test automation and the automated testing tool is
suited best for reruns. The resource involved in this repetitive testing
loses concentration on the targeted results as the deadline of the testing
automation process nears its term. This highlights the importance of
deliverable time lines when automating a testing process accepting the fact
that automation is not an end to end automated process. These factors can be
best summarized as
- Lack of time to develop the
test automation process
- Lack of Clarity in the
objectives of testing automation.
- Lack of technical expertise
leads to Concentration on the specifics of automation factor of the
application testing rather than the actual testing
- Test automation is concentrated
more on large projects.
- Underestimating the time for
Repetitive testing deteriorates the performance of testers
Sample of a GUI Test Specification Template
- References
- Reference objects
- Reference
configuration
- Reference Data
objects
- Functional Testing
- Functional Test
Object 1
- Functional Test
Object 2
- Style Testing
- Application Rule
Test
- Windows Rule Test
- System Rule Test
- Other Test Issues
- Volume Test
- Security Test
- Concurrency Test
- Performance Test
- Installation / Un
installation Test
- System
administration
|
Sample of a GUI Test Case Template
- Test configuration
- GUI object to be
tested
- Hardware required
- Test Assertion
- Features to be
tested
- Test Precondition
- Pre state of the
GUI Object
- Test Sequence
- Method of testing
the GUI object
- Test Verification
- Checkpoint
- Method of asserting
the success/failure of the test
- Test Post condition
- Post state of the
GUI Object
|
10 Points to remember for a successful GUI Automation
Testing
- GUI test automation requires
some manual script writing which may include editing the test script
- Expertise is required in GUI
Automation tools to work with the latest User interface technologies
- Design changes to the GUI are
dynamic and happen throughout the development process
- Product Functionality Testing
should not depend on GUI testing automation as GUI redesigning is
dynamic in nature through the development process
- GUI Test Automation tool must
be manually changed to accommodate modified, deleted or redesigned GUI
objects on testing for new release of the application
- GUI Test Automation depends on
identification of the IP (Interaction Points)
- GUI Test Automation should have
both functionality test and style guide tests
- GUI Test Automation without
formalizing of the style guide fails in implementation
- GUI Test Automation does not
test the storage of data. Storage of data has a GUI testing parameter on
Overwriting which has to be tested by checking the data manually.
- When testing functionality of
the GUI objects, the following must be thoroughly tested
|
Elements
|
States
|
|
Buttons
|
Enabled / Disabled according
to function
|
|
OK, Cancel Buttons
|
Location – bottom / right
|
|
Data fields
|
Change to gray color when
read only
Proper Alignment
|
|
Tool bars / Menu
|
Change according to the
entry screen
|
|
Tab Order
|
Should be in sequence.
Grouped fields must have access through tab
|
|
Texts
|
Readable with standard font
and colors
|
|
Help
|
Context sensitive
On line help
|
Glossary
- Application Rule Test. Style set local to the application maintained in uniformity
- Windows Rule Test. Style set to maintain the look and feel of Windows
- System Rule Test. Style set to maintain the system related messages like alerts
|