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

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.

Sep 21st 2026
5-12 Weeks
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
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
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
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.

Oct 12th 2026
2 Weeks
Rust Fundamentals (Coursera) Coursera
Duke University

Rust Fundamentals (Coursera)

This comprehensive Rust programming course welcomes learners of all levels, including beginners and those with some programming experience. No prior knowledge of Rust is required, making it accessible to coding novices. Throughout the course, you will gain a solid foundation in Rust programming and develop proficiency in advanced concepts, enabling you to write efficient, reliable, and high-performance code.

Sep 21st 2026
4 Weeks
Automated Software Testing: Unit Testing, Coverage Criteria and Design for Testability (edX) EdX
Delft University of Technology,DelftX

Automated Software Testing: Unit Testing, Coverage Criteria and Design for Testability (edX)

Learn the software testing techniques, tools, and best practices required to deliver high-quality software. Software testinggets 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 andcan meet release schedules.

Self Paced
Self-Paced
Angular Fundamentals: Building Responsive Web Apps with Ease (Coursera) Coursera
EDUCBA

Angular Fundamentals: Building Responsive Web Apps with Ease (Coursera)

This comprehensive course takes you through AngularJS, delving into foundational principles, including architecture, data binding, and essential features. You'll deepen your understanding of AngularJS architecture, empowering you to initiate critical application development. Exploring advanced concepts, you'll interpret adept implementation of routing, navigation, and form controls, showcasing proficiency in data binding.

Sep 28th 2026
4 Weeks
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.

Sep 21st 2026
4 Weeks