About this online course


Software testing gets a bad rap for being difficult, time-consuming, redundant, and above all - boring. But in fact, it is a proven way to ensure that your software will work flawlessly and can meet release schedules.

In a two-course series, we will teach you automated software testing in an inspiring way. We will show you that testing is not as daunting a task as you might think, and how automated testing will make you a better developer who programs excellent software.

This second course builds upon the first course's material. It covers more advanced tools and techniques and their applications, now utilizing more than just JUnit. Key topics include Test-Driven Development, state-based and web testing, combinatorial testing, mutation testing, static analysis tools, and property-based testing.

This is a highly practical course. Throughout the lessons, you will test various programs by means of different techniques. By the end, you will be able to choose the best testing strategies for different projects..

If you are or want to become a five-star software developer, QA engineer, or software tester, join this course. Testing will never be the same again!

What you'll learn

  • The key ideas behind advanced software testing techniques, such as mutation and property-based testing
  • The current state-of-the-art in software testing research, such as the usage of artificial intelligence to automate testing activities
  • The limitations of current testing techniques, and how to determine the best testing strategies for a given context


This is a Massive Open Online Course (MOOC) that runs on edX.


  • Familiar with the outline of the first course
  • Practical experience with testing

  • Starts: Future dates to be announced
  • Free
  • Length: 5 weeks
  • Effort: 3 - 5 hours per week

Related courses and programs