EdX

Automated Software Testing: Model and State-based Testing (edX)

Automated Software Testing: Model and State-based Testing (edX)

Learn the advanced software testing techniques, tools, and best practices required to deliver high-quality software. 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.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

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. Key topics include state-based and web testing, combinatorial testing, mutation testing, 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!
This course is part of the Automated Software Testing Professional Certificate

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 todetermine the best testing strategies for a given context

Syllabus

Topic 1: Model-based testing and decision tables
Create decision tables to represent complex decisions of your software.
Apply different coverage criteria in the decision table to generate test cases.

Topic 2: Model-Based testing and state machines
Devise state machines that represent the software system (e.g., web systems) and use them to generate test cases.
Apply different coverage criteria to generate test cases that cover different paths of the system.

Topic 3: Self-testing
Understand what pre-conditions, post-conditions, and invariants are, and how to design them in your software system.
Use these contracts to test your software from the “inside out”
Write properties and let property-based testing frameworks generate test cases automatically.

Topic 4: Mutation testing
Understand the key ideas behind mutation testing.
Apply mutation testing in software systems and discover what parts of your software are not tested enough.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Business Model Testing (edX) EdX
Delft University of Technology,DelftX

Business Model Testing (edX)

Learn how to stress test your business model to help you anticipate change and harness your business model’s success. The world is changing rapidly and full of uncertainties. The future success of a business model depends on how well it is adapted to changing circumstances. Do you want to become aware of the relevant developments in technology, markets and society? And understand how this affects your business?

Self Paced
Self-Paced
Creative Design, Prototyping, and Testing (Coursera) Coursera
University of Maryland, College Park

Creative Design, Prototyping, and Testing (Coursera)

Designing the customer and user experience is essential to creating great products today. Gone is the old paradigm of “form follows function” model of design. The process must be iterative and follow the best product design and development processes. While designing a great user experience can be a lengthy and expensive process, there are approaches to doing it faster and smarter, without compromising results.

Jul 27th 2026
4 Weeks
MOQ (Coursera) Coursera
Board Infinity

MOQ (Coursera)

"Introduction to MOQ for .NET Testing" is a comprehensive course designed to equip .NET developers with essential skills in using MOQ, a mocking framework for unit tests. Spanning two modules, the course starts with the fundamentals of MOQ, covering its setup, basic concepts, and implementation in .NET projects. It then advances to more complex scenarios, teaching advanced mocking techniques, handling complex dependencies, and integrating MOQ with popular testing frameworks.

Aug 17th 2026
2 Weeks
Engineering Practices for Building Quality Software (Coursera) Coursera
University of Minnesota

Engineering Practices for Building Quality Software (Coursera)

Agile embraces change which means that team should be able to effectively make changes to the system as team learns about users and market. To be good at effectively making changes to the system, teams need to have engineering rigor and excellence else embracing change becomes very painful and expensive. In this course, you will learn about engineering practices and processes that agile and traditional teams use to make sure the team is prepared for change. In additional, you will also learn about practices, techniques and processes that can help team build high quality software. You will also learn how to calculate a variety of quantitative metrics related to software quality.

Aug 3rd 2026
4 Weeks
Mobile Development and JavaScript (Coursera) Coursera
Meta

Mobile Development and JavaScript (Coursera)

This course is the first in a series that will allow you to expand your skills as an Android developer into the world of cross-platform mobile development. This will allow you to use your foundations as an Android developer to build cross-platform mobile applications. The first step in this expansion is learning to program in JavaScript. This will prepare you to learn to use the React library for mobile development.

Aug 3rd 2026
5-12 Weeks
Introdução ao Teste de Software (Coursera) Coursera
Universidade de São Paulo, Brasil

Introdução ao Teste de Software (Coursera)

A necessidade das empresas em produzir software com qualidade tem aumentado a demanda por profissionais com conhecimentos e habilidades em Teste de Software. Entretanto, existe uma escassez de mão-de-obra especializada nesta área. Considerando essa lacuna, o curso de Introdução ao Teste de Software foi planejado para servir como um guia para pessoas que necessitam de uma fonte de consulta e/ou aprendizado na área.

Aug 10th 2026
5-12 Weeks