![]() |
Fundamental Approaches to Test Automation Approaches Providing A Basis For Effective Software Test Automation |
|
|
|
|
Introduction |
|
|
|||||
|
|
This section introduces in an informal manner some key approaches that can be adopted to make software test automation more effective. These principles can be incorporated into the design of test systems. Adopting these approaches can help to mitigate some of the complex problems of test automation ( see The Complex Nature of Software Test Automation ). |
|
||||||
|
|
||||||||
|
The approaches introduced in this section are:
|
||||||||
| Architectures & Frameworks
The most basic rule is that for all but the simplest set of testware an appropriate architecture should be designed. The structure should be thought out in advance to get an appropriate balance between development effort, maintainability and the rigour of the testing. For moderate sized systems individual tests can have their own architectures but for large systems with lots of test sets then the use of a generic framework within which many test sets can be implemented should be considered. There can be many different approaches to a test architecture. The remainder of this section and the section on advanced techniques outline principles that can be incorporated into an architecture. |
||||||||
|
Test Interactions act as building blocks for test solutions. As its name implies a test interaction interacts with the system under test. Each test interaction focuses on a specific meaningful interaction with the system. Not only does the test interaction interact with the system it also reports what happened. The client of the test interaction can now check whether what happened was what should have happened. Each test interaction follows a common pattern in the way in which it operates with client testware. This common pattern helps to provide a regular structure and patterns of operation within the testware. This is a major improvement over adhoc structures. Test interactions provide reusable context independent components for building tests.
|
||||||||
| Layering Test Interactions
Test-Interactions ( described above ) provide re-usable building blocks for tests. As well as being used to build actual tests test-interactions can be used as the basis of higher level test interactions. A layered approach allows more reuse of testware. |
||||||||
|
Wrapping the Interface To The Application The interface to an application can be used in many different test sets. Within a framework or the architecture of a test set individual elements of the GUI can be manipulated or queried by a number of test-interactions. To reduce duplication and hence reduce the though life cost of the test solution the interface can be wrapped within a library that provides a set of operations to manipulate and query the state of the GUI. |
||||||||