Concepts of Automated Testing
Theory and Practice of Test Automation Strategies, Tools and Frameworks
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 an in-depth discussion of automation concepts with practical demonstrations of test automation tools and frameworks. The demonstrations are all based on fully featured open source and “freeware” tools. Which means that participants can download and experiment with the tools after the course.
This ensures that when the time comes to evaluate and select a test automation tools and frameworks, participants will be well prepared with a detailed understanding of the role of automation tools, as well as their inherent strengths and weaknesses.
The course commences with a brief review of software testing concepts and then moves on to discuss the business case for test automation. This is followed by an in-depth discussion of test automation frameworks and strategies. The remainder of the course is organised into topics that cover code based testing; API testing and testing through the user interface (UI).
Course Features
- Designed to develop participant’s skills as a test automation specialist
- Based on a unique conceptual test automation framework that is used throughout the course to compare and contrast test automation frameworks, tools and concepts
- Cleraly identifies and explains different categories of test automation frameworks and tools
- Provides a practical demonstration of a typical frameworks and tools in each category
Participant Benefits
- Presents an in-depth perspective of test automation for those wanting to develop their careers as test automation specialists.
- Encourages the development of a test automation strategy strategy prior to acquiring test automation frameworks and tools
- Identifies the strengths and weaknesses of test automation for who need to develop test automation strategies, select test automation frameworks and manage test automation staff
- The course structure provides a logical framework for those who who want to gain an understanding of test automation
- Provides a sound basis for further exploration of test automation frameworks and tools after the course
Who Should Attend
- Those who want develop their careers as test automation specialists such as Test Engineers, Test Analysts, Software Engineers, Software Developers, and Quality Assurance Staff
- Those who need to develop test automation strategies, select test automation frameworks and manage test automation staff such as Test Managers, Software Development Managers, Process Engineers, Software Engineering Process Group (SEPG) Staff, Methodologists, Process Improvement Staff,
- Those who who want to gain an understanding of test automation such as Test Engineers, Test Analysts, Software Engineers, Software Developers, Quality Assurance Staff, Test Managers, Software Development Managers, Requirements Engineers, Requirements Analysts, Process Engineers, Software Engineering Process Group (SEPG) Staff, Methodologists, Process Improvement Staff
Course Duration
- 2 days full-time.
Course Agenda
Software Testing Concepts and Definitions
- Why Test Software?
- Views of Quality
- Identifying Software Failures
- Verification and Validation (Checking)
- Buiding Confidence in Software
- The Six Objectives of Software Testing
- Mapping Test Objectives to Traditional, Automated and Exploratory Testing
- What to Test?
- Testing Software Components
- Integrating Software Components
- Testing Software Features
- Feature Testing and Confidence in Component Integration
- The Targets of Software Testing
- How to Test?
- What Software Testing is Not
- Testing is Repeated Frequently During the SDLC
- Developing a Software Testing Strategy Based on Testing Context
The Business Case for Test Automation
- What is Test Automation?
- Benefits of Test Automation
- Reduced Effort in Some Areas
- Better Use of Resources
- Improved Development Life Cycle
- Achieves What Manual Testing Can’t
- More Accurate Tests
- Two Compelling Drivers For Test Automation
- Test Automation Costs
- Increased Effort in Some Areas
- Planning and Management Activities
- Establishing a Test Automation Framework
- Supporting the Test Automation Framework
- Developing Test Automation Scripts
- Developing a Business Case for Test Automation
- Test Automation Risks and Myths
Test Automation Frameworks
- Test Automation Frameworks
- Test Automation is More Than Capture Replay Tools and Scripting Languages
- Test Automation Framework Should Provide a Reusable Set of Components
- The Components of a Typical Test Automation Framework
- Connecting to the System Under Test (SUT)
- Connecting Through Program Code
- Connecting Through an API
- Connecting Through the User Interface
- The Need for Fixtures and Adapters
- Summarising Connection Methods in the Automation Triangle
- Static and Dynamic Test Oracles
- Test Drivers and Doubles
- Capture/Replay Tools
- Demonstration of a Capture Replay Tool
- Selecting a Test Automation Framework
Test Automation Strategies
- Choosing a Method for Connecting to the SUT
- Configuring the SUT
- Stand Alone Configuration
- End to End Configuration
- Ordering Tests to Build Confidence in the SUT
- Summarising Automation Strategies in the Test Automation Pyramid
- Developing a Test Automation Strategy
- Capture/Replay
- Capture/Replay Explained
- Problems With Capture/Replay
- Data Driven Testing
- Data Driven Testing Explained
- The Need for Control and Logging
- Problems With Data Driven Testing
- Keyword Driven Testing
- Keyword Driven Testing Explained
- The Need for Parsers and Fixtures
- An Approach for Developing Test Scripts
- Common Mistakes and Errors
Static Tools
- Model-Based Testing
- Comparing Specification and Model Based Testing
- Demo of a Test Data Generator
- Demo of an All Pairs Testing Tool
- Demo of a State Model Based Testing Tool
- Data Comparators
- Demo of a Data Comparator Tool
- A-B Testing Explained
- Static Code Analysis
- Static Code Analysis Explained
- Demo of a Static Code Analysis Tool
Test Harnesses
- Test Harnesses Explained
- Features of a Typical Test Harness
- Managing and Parsing Test Data
- Launching Test Scripts
- Enforcing Assertions and Logging Failures
- Examples of Different Types of Test Harness
- Demo of a Test Harness
Code Based Testing
- Connecting to the System Under Test Through Program Code
- Configuring the System Under Test
- Stand Alone
- Testing the SUT “Front End”
- Testing the SUT “Back End”
- xUnit Test Frameworks
- Understanding xUnit Test Frameworks
- Demo of an xUnit Framework
- xUnit Frameworks as Reuseable Drivers
- Test Doubles
- Different Categories of Test Double
- Mock Objects Explained
- Mock Objects as as Reuseable Test Doubles
API Testing
- Connecting to the System Under Test Through an API
- Configuring the System Under Test
- Stand Alone
- Testing the SUT “Back End”
- Demo of an API Test Framework
- User Interface Adapters
- Selenium Web Driver as an Example of a User Interface Adapter
User Interface Testing
- Connecting to the System Under Test Through The User Interface
- Configuring the System Under Test
- Stand Alone
- Testing the SUT “Front End”
- GUI User Interface
- Capture/Replay Tools
- Test Scripts
- Demo of a GUI Test Framework
- Web User Interface
- Capture Approaches
- Browser Plug-ins
- Proxy Servers
- Replay Approaches
- Browser Plug-ins
- Test Script With Browser User Interface Adapter
- Selenium IDE as an Example of a Web Capture/Replay Tool
- Capture Approaches
- Testing Web Based and Mobile SUTs Through the Browser GUI
Testing Non-Functional Requirements
- Repetitive Test Execution
- Large Number of Test Cases
- Large Number of Users
- Long Duration Test Execution
- Performance Testing
- Security Testing
- Verifying (Checking) Usability Requirements
- Demo of a Performance Test Tool
Testing Not Suitable for Automation
- Identifying usability requirements
- Identify areas of the system that are difficult to use
- Exploratory Testing
, #