Automated Software Testing    

Code:

IS130-002

Series:

Information Management

Duration:

2 days

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


Automated Software Testing


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 often holds them back.

This course provides an opportunity to get to grips with test automation by combining a discussion of automation concepts with practical demonstrations of test automation tools. The demonstrations 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.

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.

Prerequisites:


Some knowledge and experience with traditional testing techniques for information systems software.

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 AnalystsTest Managers, Test Engineers, Testers, Quality Assurance Staff.