Course Description
This 2-day Practical Software Testing training course is designed to bridge the “testing gap”. It is aimed at software testers who need a practical approach to User Acceptance Testing (UAT) and System Integration Testing (SIT) that can be applied to software projects in the real world.
There are many training courses offering a solid grounding in the theory and practice of software testing but software testers attending these courses often struggle to apply what they have learnt when they return to the workplace. This gap between theory and practice is known as the “testing gap”.
This course is presented by an experienced software tester who shares a wealth of practical tips and recent project experience with participants during the course.
Pre-requisites
Familiarity with business environments and business information systems.
Who is this Course For?
- Test Managers, Test Engineers, Testers, Quality Assurance Staff,
- Business Analysts, Business Systems Analysts, Systems Analysts,
- Functional Analysts, Requirements Analysts,
- User Representatives, Project managers, Program Managers,
- Software Engineers, Developers, Requirements Engineers, Human Factors Specialists,
- Process Engineers, Software Engineering Process Group (SEPG) Staff, Methodologists, Process Improvement Staff
Course Content
Problems with Software Testing
Software testing popular myths and incorrect beliefs
The testing “gap”
Product vs. project life cycles
Views of software quality
Measure of “excellence”
Fit for intended purpose
Conform to specification
Absence of defects and other quality goals
Provides value
Summarising views of quality in the quality triangle
Aligning software testing objectives with views of quality
Validating that software is fit for its intended purpose
Verifying that software conforms to its specification
Identifying failures caused by defects
Measuring non-functional product attributes
Building confidence in the reliability of the product
A Framework for Better Understanding Software Testing
Levels of software testing
Unit and component testing level
Integration testing level
Understanding multiple levels of integration
Vertical vs. horizontal integration
System testing level
The “recursive” nature of test levels
Identifying test items and their relationship to test levels
Selecting a test basis
Requirements as a test basis
Program code as a test basis
Variations on requirements & code
Models as a test basis
Experience as a test basis
Designing test cases
What is a test case?
Test to pass or “positive” test cases
Test to fail or “negative” test cases
Overview of test case design techniques
Who executes the tests?
Automating test execution
Planning User Acceptance Testing (UAT) & System Integration Testing (SIT)
The standard User Acceptance Testing (UAT) strategy
The standard System Integration Testing (SIT) strategy
Customising UAT & SIT strategies
Risk-based testing
Identifying and prioritising product risks
Mitigating product risks with testing
Developing UAT & SIT Test Plans
Identifying test activities
Estimating test effort
Assigning resources
Developing a test schedule
Risk analysis
Test environment & tools
Feature Testing
Features vs. components
What is feature testing?
Testing features in isolation
Testing vertical integration
When is feature testing performed?
The role of feature testing during SIT
The role of feature testing during UAT
Modelling features
Why model features?
How to model features
Developing a feature test specification
Feature testing tools & test automation
Planning & managing feature testing
End-To-End Testing
Business object life cycles and scenarios
What is end-to-end testing?
Testing features in a specific sequence
Testing horizontal integration
When is end-to-end testing performed?
The role of end-to-end testing during SIT
The role of end-to-end testing during UAT
Modelling business object life cycles
Business object states
External & internal events that trigger changes of state
Grouping states
Conditions and actions
Modelling decisions
Generating test scenarios
Basing test scenarios on the life cycle of a business object
Prioritising test scenarios based on risk
Developing an end-to-end test specification
End-to-end testing tools & test automation
Planning & managing end-to-end testing
Date-Based Testing
When is date-based testing performed?
Date-based testing & feature testing
Date-based testing & end-to-end testing
Date-based events
Relative & absolute dates
Anniversaries & time periods
Adding date-based events to the life cycle models
System clocks
Real time clocks
Proxy clocks
Date-Based testing combined with feature & end-to-end testing
Developing a date-based test specification
Date-based testing tools & test automation
Planning & managing date-based testing
Exploratory Testing
When is exploratory testing performed?
Exploratory testing & feature testing
Exploratory testing & end-to-end testing
Exploratory testing & date-based testing
Skills required for exploratory testing
Test specifications vs. checklists
Exploratory testing tools & test automation
Planning & managing exploratory testing
Managing the UAT & SIT Effort
The importance of bug “triage”
Bug tracking
Requirements & change management
Tracking progress
Using “burn down” charts to track test execution progress
Using the rate of finding bugs to track product quality
Using the gap between finding and fixing bugs to track product readiness
Finding a voice for product confidence!