Course Description
This 2-day Automated Software Testing training course provides an opportunity to come to grips with test automation by combining a discussion of automation concepts with practical demonstrations of test automation tools.
The demonstrations in this course are all based on fully featured, open source, and “freeware” tools. Participants are able to easily acquire and experiment with the tools after the course. This ensures that when the time comes to evaluate and select a proprietary tool, participants will be well prepared with an in-depth understanding of the role of automation tools, as well as their inherent strengths and weaknesses.
Many organisations would like to automate some or all of their software testing tasks. However, uncertainty about where to start and the high cost of proprietary testing tools can often hold them back. This course will begin to provide some of the answers.
Course outcomes include:
- an understanding of the strengths and weaknesses of test automation
- encouragement to develop a strategy prior to acquiring a test
- automation tool
- preparation for the evaluation and selection of test automation tools
- a basis for ongoing experimentation and learning following the course.
Pre-requisites
Some knowledge and experience with traditional testing techniques for information systems software.
Who is this course for?
This course is ideal for Process Engineers, Software Engineering Process Group (SEPG) Staff, Methodologists, Process Improvement Staff, Software Development Managers, Software Engineers, Developers, Requirements Engineers, Requirements Analysts, Test Managers, Test Engineers, Testers, Quality Assurance Staff.
Course content
Testing Concepts & Definitions
Cause of Software Failures
Verification and Validation
Test Objectives
Expected Test Outcome
Test Levels
Test Activities
Project vs. Product Life Cycle
Introduction to Automated Software Testing
What is Automated Software Testing?
Why Automate Testing?
Automated vs. Manual Testing
Automation Drivers
Reduction of Testing Effort and Cost
Better Use of Resources
Improved Development Life Cycle
Achieves What Manual Testing Can’t
Improves Accuracy of Tests
Two Compelling Drivers For Test Automation
Business Case For Automated Testing
Benefits of Automated Testing
Cost of Automated Testing
Test Automation as an Investment Decision
Automation Risk Factors
Test Automation Myths
Test Automation Tools
Categories of Test Automation Tool
Selecting a Tool
Identifying Tool Requirements
Automation Strategies
Capture/Replay
The Capture/Replay Approach
Problems With Capture/Replay
Data-Driven Automation
Data-Driven Testing
Control and Logging
Problems With Data-Driven Automation
Keyword-Driven Automation
Keyword-Driven Testing
Parsing the test Cases
The Role of Fixtures
Connecting Test Scripts to the System Under Test
Via the User Interface
Using a Dedicated Test API
Test Oracles
The Test Oracle Problem
Automating Test Oracles
Model-Based Testing
Specification-Based vs. Model-Based Testing
Role of Model-Based Testing in Automation
Hybrid Automation Strategies
Developing an Automation Strategy
Common Errors
Planning the Development of Test Scripts
Test Harnesses
Test Harness Concepts
Test Harness Demonstration
Static Tools
Test Case Generators
Test Data Generators
Data Comparators
Static Code Analysis
Static Tools Demonstration
Code-Driven Testing
Unit and Integration Test Strategies
Top-Down Unit/Integration Testing
Bottom-Up Unit/Integration Testing
Why Use Drivers and Stubs?
Isolation Unit Testing
xUnit Test Frameworks
Test Doubles
Dummy and “Fake” Objects
Stubs
Mock Objects
xUnit Demonstration
Testing GUI Systems
User Interface-Based Testing
API-Based Testing
GUI Testing Tools Demonstration
Testing Web-based Systems
Capture/Replay
Capture
– Browser Plug-in
– Proxy
Replay
– Browser Plug-in
– Driver
Testing Via the Browser User Interface
Browser Automation
API-Based Testing
Scripting Web Tests
Testing JavaScript and AJAX
Web Testing Tools Demonstration
Testing Non-Functional Requirements
Large Number of Tests or Testers
Concurrency Testing
Performance Testing
Reliability Testing
Repetitive Tests
Compatibility Testing
Recovery Testing
Installation Testing
Localisation Testing
Usability Testing (verification aspects)
Security Testing
Non-Functional Testing Tools Demonstration
Testing Not Suitable for Automation
Usability Testing (validation aspects)
Exploratory Testing
Maintainability
Portability