Software Test Automation Design
Software testing is an important activity for any organization responsible for producing software, whether it is a software manufacturer or an internal application development department. Software testing consumes up to half the total cost of developing many software products but, despite the huge investment, it is often done inefficiently. Some of the testing done by hand can be done faster, cheaper or better by machine.
For example, any change made to a computer program might have a side effect, interfering with part of the program that used to work. A "regression test suite" is typically a standard set of tests used to retest a program that has been changed. Because these tests are repetitive and slow when done by hand, they are good candidates for automation. But, efforts toward software test automation are not always successful or cost-effective.
This class explores several types of automated testing. The success and risk factors for each of these automated testing approaches are analyzed and evaluated as part of the class. Topics include:
- Introductory Example
- Foundational Concepts in
Automation
- Automating Regression Testing
- Automated GUI Regression Testing
- Test Scripting
- Some Successful Automation Approaches
- Getting Started with Automation
- Automation Requirements Analysis
- Design of Automated Tests
- Automation Architectures
- Automation Tools
- Mutating Automated Tests
- Testing Paradigms Applied to Automation
- Function Testing
- Domain Testing
- Spec-driven
- Risk-based
- Stress
- Regression
- Exploratory
- User
- Scenario
- Stochastic
|
Cost & Benefits of Automation
Managing Test Automation
Test Oracles and Reference Functions
Oracle Strategies for Verification
Self Verifying Data
Heuristic Oracles
Test Sets
Structures and Strategies for Automated Testing
|
This class treats test automation as a software development project. Participants will be given
exposure to the analysis of requirements, cost, risk, software architecture, high-level design, data design, and design for maintainability, as these apply to test automation.
PREREQUISITE: This class will be most informative for students who have extensive course work
with computers and significant work experience in programming, test automation, software testing, or test management.
REQUIRED TEXT: None.