O'Reilly logo
live online training icon Live Online training

Hands-on introduction to software testing

Understanding and applying techniques

Xavi Ametller

Despite common misconceptions, testing isn’t a spontaneous activity that’s only useful when your application has a problem—it’s a critical part of software development that requires knowledge and strategy. While quality assurance testers are the experts, it’s also critical that developers and engineers understand how to test using a wide range of techniques.

Join expert Xavi Ametller to develop a strong foundation in software testing so that you can test in an efficient and organized way, no matter what you're developing. You’ll learn concepts and techniques along with practical examples and lessons that apply to websites, mobile, and desktop applications.

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

By the end of this live online course, you’ll understand:

  • The responsibility and limitations of testing in a software context
  • How to organize your team in order to test a feature
  • Appropriate situations for each testing technique

And you’ll be able to:

  • Apply a wide range of testing techniques in your day-to-day work
  • Distinguish between ad hoc and exploratory testing

This training course is for you because...

  • You’re a developer working on an Agile team and want to gain a deeper understanding of testing.
  • You’re a junior QA engineer who wants a good foundational knowledge of testing.
  • You’re an IT manager and would like to increase your knowledge of what to expect from your testers.


  • Basic knowledge of web concepts and common programming concepts
  • Basic familiarity with Agile methodologies

Recommended preparation:

Recommended follow-up:

About your instructor

  • Xavi Ametller has been working in software for more than 15 years. He considers himself lucky to have been a tester at Microsoft early in his career; since then he’s held both development and testing roles. Xavi has plenty of experience introducing testing concepts and techniques to developers, junior quality assurance testers, as well as managers.


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

Introduction (15 minutes)

  • Group discussion: Do you practice Agile?; Which testing techniques are you already using today?
  • Lecture: Definition of software testing; psychology and economics of testing
  • Q&A

Basic testing techniques (50 minutes)

  • Lecture: Boundary value analysis and equivalence partitioning; error guessing; model-based testing
  • Group discussion: Pairwise testing
  • Q&A

Break (5 minutes)

More testing techniques (50 minutes)

  • Hands-on exercise: Exploratory testing; filling in a test responsibility matrix
  • Lecture: Tours; checklists; test responsibility matrix; bug bashes
  • Group discussion: Which checklists do you use?
  • Q&A

Break (5 minutes)

Agile testing (15 minutes)

  • Lecture: The four quadrants of testing; the testing pyramid
  • Group discussion: Which of the four quadrants do you cover?
  • Q&A

Technology facing tests (30 minutes)

  • Group discussion: Which kind of tests have you automated?; Do you externalize security testing?
  • Lecture: Automation; testing versus checking; page object pattern; performance, load and stress testing; security testing

Wrap-up and Q&A (10 minutes)