public course

2 Days


This workshop is designed for software developers and testers that want to learn new and innovative ways to perform software testing. The topics covered in this workshop are appropriate for any level of testing knowledge and experience, from foundation to advanced levels.

This workshop is 50% lecture and 50% interactive labs where you will be able to practice with others the techniques covered in the lectures.


Who Will Benefit

  • Test analysts
  • Testers
  • Test engineers
  • Software developers
  • Project managers
  • Test managers
  • QA analysts

Return on Investment

In this workshop you will see added value to your testing efforts by learning how to:

  • Prioritze your testing based on three views of risk - project, technical and business
  • Get the most testing from the most compact set of test cases
  • Identify the root causes of problems and correct them so they are not repeated
  • Perform regression testing so it does not become overwhelming
  • Developers can perform unit testing so that more defects can be found early in a project
  • Design tests based on a variety of sources - business and user scenarios, requirements, use cases and design models
  • Implement test automation in new and creative ways


1. Risk-based testing

  • How risk can be defined on software projects
  • How to assess risk
  • How to prevent being fooled by risk assessments
  • Experience:  Finding the risk in a project, finding the risk in software

2. Test efficiency (pair-wise, classification trees, etc.)

  • Why test efficiency is important
  • The fault model behind pairwise testing
  • The research behind pairwise testing
  • How to create test cases using pairwise techniques
  • Experience: Reducing the number of test cases from thousands to less than 100.

3.  Root cause analysis (defect analysis)

  • What is root cause analysis?
  • How to distinguish contributing causes from the root cause
  • Examples from real life
  • How to build a time line and causal factor chart
  • Experience: Finding the root cause of a problem

4.  Regression testing

  • What is regression testing?
  • How is regression testing performed?
  • How much regression testing is enough?
  • How to apply automation
  • How to perform regression testing in highly complex systems
  • Experience: Defining a regression testing strategy for a complex system

5.  Exploratory Testing

  • What exploratory testing is
  • What exploratory testing isn’t
  • Common objections to exploratory testing
  • Benefits of exploratory testing
  • How to test when you have no specs or requirements
  • How to perform exploratory testing
  • How to evaluate exploratory testing
  • How to get better at exploratory testing
  • Session-based testing
  • Experience: Performing a session-based test

6.    Scenario-based testing (use cases, etc.)

  • What is scenario-based testing?
  • How to find and/or define scenarios?
  • Defining test cases from use cases
  • Combining data with scenarios
  • Controlling scenario-based testing
  • Experience:  Designing a scenario-based test

7.    Requirements-based testing

  • What is requirements-based testing (RBT)?
  • What’s needed?
  • How RBT is helpful
  • Designing tests based on decision tables
  • Experience: Designing tests based on a requirement

8.  Model-based testing

  • What is model-based testing?
  • Examples of how design models can be used for designing tests
  • How to perform model-based test design
  • Experience: Designing tests based on a state-transition model

9.   Creative uses of test automation

  • Common uses of test automation
  • Some open source and “do it yourself” tool strategies
  • The benefits of small and random test automation

10.     Workshop summary