Benefits of Automated Testing
Manually testing software is a time-consuming and often tedious process, one which cannot guarantee consistency of testing across releases and across platforms. Additionally, time constraints often do not afford us the luxury of being able to manually test and retest our applications before they are released. Inevitably the question remains, “Did any critical bugs go undetected?”
Automating your testing leads to a better use of your resources. Skilled testers are freed up to put more effort into designing better tests while machines that would otherwise lie idle overnight can be used to run unattended automated tests.
The benefits of automating software testing are many:
• Providing more coverage of regression testing.
• Reducing the elapsed time for testing, getting your product to market faster.
• Improving productivity of human testing.
• Improving the re-usability of tests.
• Providing a detailed test log.
The layered approach
The most common approach to any testing is the layered approach. The layered approach includes three types of tests:
1. Operability Tests which examine each object, verifying specific properties of the object such as: state, size, caption and contents.
2. Functionality Tests which examine the behavior of a group of objects that together provide a specific feature to the end user. This includes looking at a dialog as a collection of objects and verifying the functionality provided. It can also include verifying the interaction between objects. For example, verifying that a text box is enabled when a check box is checked.
3. System Tests which examine how the application under test (AUT) interacts with other software or hardware products within the software environment.
Other types of tests
Other types of tests that may be performed include:
1. Regression Tests which run existing tests on new versions of a program.
2. Error Tests which verify the system’s response to error conditions.
3. Stress Tests which measure the system’s response to repetitive or large amounts of data.
4. White-Box vs. Black-Box Tests Where white-box testing places the focus on the internal structure of the software (the code) while black-box testing views the software from the end-user perspective and is unaware of the underlying code.