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

Introduction to Computer Science and Programming Using Python (edX) EdX
MIT,MITx

Introduction to Computer Science and Programming Using Python (edX)

An introduction to computer science as a tool to solve real-world analytical problems using Python 3.5. This course is the first of a two-course sequence: Introduction to Computer Science and Programming Using Python, and Introduction to Computational Thinking and Data Science. Together, they are designed to help people with no prior exposure to computer science or programming learn to think computationally and write programs to tackle useful problems.

Jan 24th 2024
5-12 Weeks
Implementing an SAP Solution (Coursera) Coursera
SAP

Implementing an SAP Solution (Coursera)

Implementing an SAP Solution is the fifth course in the SAP Technology Consultant Professional Certificate program. You’ll learn how to collaborate with stakeholders and other SAP professionals for key phases in the SAP Implementation lifecycle. You’ll explore how to build and prepare system and test environments for implementation and look at different types of testing. You’ll learn how to cleanse and anonymize test data, and use automation tools. You’ll look at SAP Best Practice Explorer and build your understanding of baseline configurations and integrations. You’ll learn how to document issues, bugs, and recommended fixes after testing. Plus, you’ll look at the process for going-live and getting sign off for a project.

Nov 9th 2026
5-12 Weeks
Meaningful Predictive Modeling (Coursera) Coursera
University of California, San Diego

Meaningful Predictive Modeling (Coursera)

This course will help us to evaluate and compare the models we have developed in previous courses. So far we have developed techniques for regression and classification, but how low should the error of a classifier be (for example) before we decide that the classifier is "good enough"? Or how do we decide which of two regression algorithms is better?

Nov 9th 2026
4 Weeks
Managing the New Product Development Process (Coursera) Coursera
University of Colorado Boulder

Managing the New Product Development Process (Coursera)

This course covers the product development process in detail. With the opportunity defined, learners begin with ideation techniques such as Design Thinking to create new product concepts. Learners define the tools to create product specifications that meet customer requirements, then conceptualize different ways of meeting those requirements. Learners conclude by exploring prototyping and the techniques used to down-select to a concept that is then carried through launch.

Nov 2nd 2026
5-12 Weeks
Sensory Science: Conducting Tests (Coursera) Coursera
University of California, Davis

Sensory Science: Conducting Tests (Coursera)

This course will introduce the sensory evaluation laboratory and will teach you best practices for testing and documentation. We'll explore how various factors, especially the testing environment, can influence sensory experiments. Our main focus will be on two specific sensory tests: duo-trio discrimination and 3-product consumer testing.

Nov 9th 2026
4 Weeks
Introduction to Java Programming: Writing Good Code (edX) EdX
Universidad Carlos III de Madrid - UC3M,UC3Mx

Introduction to Java Programming: Writing Good Code (edX)

Learn to program in an easy and interactive way and enter the fascinating world of computer science. This is an introductory course to learn programming with Java designed to teach how to code good programs in Java, understanding “good” as both correct and efficient. Basic principles of software engineering will be introduced to make it easier for our future self and others to reuse code. Ethical issues and the intellectual property of our programs will also be addressed in the last part of this course. Examples and case studies will be provided, so that learners can implement simple but increasingly complex programs in Java.

Self Paced
Self-Paced
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.

Nov 2nd 2026
5-12 Weeks
Introduction to Automated Analysis (Coursera) Coursera
University of Minnesota

Introduction to Automated Analysis (Coursera)

This course introduces state-of-the-art techniques for automated analysis. Automated analysis encompasses both approaches to automatically generate a very large number of tests to check whether programs meet requirements, and also means by which it is possible to *prove* that software meets requirements and that it is free from certain commonly-occurring defects, such as divide-by-zero, overflow/underflow, deadlock, race-condition freedom, buffer/array overflow, uncaught exceptions, and several other commonly-occurring bugs that can lead to program failures or security problems.

Nov 2nd 2026
4 Weeks