O'Reilly logo
live online training icon Live Online training

Hands-on Introduction to Software Testing

Understanding and Applying Techniques

Xavi Ametller

Testing is a critical part of Software development and, like it or not, we all do it at a greater or lesser extent. The discipline has been around for decades now and plenty of wisdom can be distilled from the classical authors and combined nicely with the new Agile automation driven testing world.

In this course Xavi Ametller will help you set up a good foundation to approach testing in an efficient and organized way. Xavi will share concepts and techniques with real world examples.

What you'll learn-and how you can apply it

Participants will understand…

  • The responsibility and limitations of testing in a Software context
  • How to organize themselves and their teams in order to test a feature
  • Which testing techniques can be used when

Participants will be able to…

  • Apply a wide range of testing techniques on their day to day work
  • Distinguish between ad-hoc and exploratory testing
  • Write good bug reports that will improve collaboration with devs and help get stuff fixed

This training course is for you because...

  • You are a Developer, probably working on an Agile team, who wants to gain a deeper understanding on the testing side of development.
  • You are a Junior QA who wants to set up a good foundation to work on the testing discipline
  • You are an IT manager and you would like to increase your knowledge of what to expect from your testers


  • Basic knowledge of web concepts (as several of the examples and explanations will be web based)
  • Basic understanding of Agile methodologies (else the Agile testing part may make no sense)
  • Basic understanding of programming languages (for the test automation part and the page object pattern)

Recommended reading:

About your instructor

  • Xavi Ametller has been working in software for more than 15 years now. He was lucky to become a tester in Microsoft more than 10 years ago and since then, he’s been bouncing between Dev and Test roles. As in most of his Test teams after Microsoft he has been the most senior tester, Xavi has gained plenty of familiarity introducing the testing concepts and techniques to devs, junior QAs and management alike.


The timeframes are only estimates and may vary according to how the class is progressing

Introduction (Lecture - 15 m)

  • Definition of Software Testing
  • Psychology and economics of testing
  • Testing vs checking
  • Q&A

Basic Testing techniques I (50 m)

  • “Boundary value analysis” and “Equivalence partitioning” (Lecture + demo - 15 mins)
  • Error guessing (lecture - 5 min)
  • Pair wise testing (also called All pairs) (Discussion + Demo - 20min)
  • Model Based Testing (10 min)
  • Q&A

Break (10 min)

More testing techniques (and other tips) (40 min)

  • Exploratory testing (Lecture + Exercice 20 min)
  • Tours
  • Other interesting things: (Lecture 20 min)
  • Checklists
  • Test responsibility matrix
  • Bug bashes
  • How to report a bug
  • Fuzz testing (optional if time permits)
  • Q&A

Break (10 min)

Agile testing (Lecture - 15 min)

  • The four quadrants of testing (10 min)
  • The testing pyramid (10 min)
  • Q&A

Technology facing tests (30 min)

  • Automation (Lecture – 10 min)
  • Page object pattern
  • Performance, Load and Stress testing (Lecture + example 15 min)
  • Example
  • Security Testing (5 min)

Conclusion (10 min)

  • Example combining several of the previous techniques
  • Summary
  • Where to go from here
  • Q&A (as needed)