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

Assembling and Testing a Quadcopter (edX) EdX
MathWorks

Assembling and Testing a Quadcopter (edX)

Learn the crucial skills of system-level integration, comprehensive testing, and collaboration to design and evaluate quadcopter systems effectively. Welcome to Integration and Testing of Quadcopter Systems, the final course in the Engineering Design and Simulation Program. This course is focused on integrating all the quadcopter subsystems into a cohesive system-level model and conducting thorough testing to ensure optimal performance.

Self Paced
Self-Paced
Advanced React (Coursera) Coursera
Meta

Advanced React (Coursera)

Learn how to use more advanced React concepts and features, optimize and debug your React applications, and become proficient in using React Bootstrap and JSX. You’ll examine different types of React components, learn various characteristics and when to use them. You’ll start working with hooks, effects and other functional components. You’ll find out how routing is used in React to customize the users' experience, you’ll create a web application that consumes API data, and you'll get familiar with the most commonly used React framework integrations, tools, and debugging approaches.

Sep 21st 2026
4 Weeks
Securing Digital Democracy (Coursera) Coursera
University of Michigan

Securing Digital Democracy (Coursera)

In this course, you'll learn what every citizen should know about the security risks--and future potential — of electronic voting and Internet voting. We'll take a look at the past, present, and future of election technologies and explore the various spaces intersected by voting, including computer security, human factors, public policy, and more.

Sep 21st 2026
5-12 Weeks
Algorithmic Toolbox (Coursera) Coursera
University of California, San Diego,Higher School of Economics - HSE University

Algorithmic Toolbox (Coursera)

The course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies. You will practice solving computational problems, designing new algorithms, and implementing solutions efficiently (so that they run in less than a second).

Sep 21st 2026
5-12 Weeks
Black-box and White-box Testing (Coursera) Coursera
University of Minnesota

Black-box and White-box Testing (Coursera)

After completing this course, learners will have an understanding of a variety of black-box and white-box testing techniques. The learner will have put this understanding into practice, creating effective sets of test cases (called a test suite) to properly exercise software for defect finding. The learner will have examined requirements for testability, created an oracle for automated testing, assessed fault-finding effectiveness of test suites, and generated inputs using a variety of techniques.

Sep 21st 2026
4 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.

Sep 28th 2026
4 Weeks
Data Analytics for Lean Six Sigma (Coursera) Coursera
University of Amsterdam

Data Analytics for Lean Six Sigma (Coursera)

Welcome to this course on Data Analytics for Lean Six Sigma. In this course you will learn data analytics techniques that are typically useful within Lean Six Sigma improvement projects. At the end of this course you are able to analyse and interpret data gathered within such a project. You will be able to use Minitab to analyse the data. I will also briefly explain what Lean Six Sigma is.

Sep 28th 2026
5-12 Weeks
Engineering Maintainable Android Apps (Coursera) Coursera
Vanderbilt University

Engineering Maintainable Android Apps (Coursera)

Engineering Maintainable Android Apps, which is a 4 week MOOC that shows by example various methods for engineering maintainable Android apps, including test-driven development methods and how to develop/run unit tests using JUnit and Robotium (or equivalent automated testing frameworks for Android), as well as how to successfully apply common Java/Android software patterns to improve the extensibility and clarity of Android apps.

Sep 28th 2026
4 Weeks