EdX

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

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.

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 first course will teach you specification-based testing, boundary testing, test adequacy and code coverage, unit vs system testing, mock objects, design for testability, and test code quality.
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

  • How to test any software system using current state-of-the-art techniques
  • How to derive test cases that deal with exceptional, corner, and bad-weather cases by means of several different techniques
  • The limitations of current testing techniques and how to decide on the best testing strategies for a given context
  • How to develop testable architectures and to write maintainable test code

Syllabus

Topic 1: Automated software testing
Understand some basic principles of testing and why it requires creativity.
Get familiar with some testing vocabulary, which improves our communication.
Devise our first set of tests for a Java program and automate these tests using JUnit.
Understand the differences between unit, integration, and system testing, as well as the testing pyramid.

Topic 2: Functional testing
Learn how to read a requirement and derive the partitions, which are the actual concrete tests we will perform to make sure our system works (we call it "partitioning" and "equivalent partitioning").
Learn how to think about and test possible corner cases, as developersoften forget to deal with such cases (we call itboundary testing).
Get a few tips, based on experience, on common corner cases.

Topic 3: Structural testing and code coverage
Learn how to analyze the structure of your source code and derive meaningful tests.
Be able to use the most popular structural testing adequacy criteria, such as line coverage, branch coverage, and path coverage as well as to understand their differences.
Derive a minimal set of tests when your branches (e.g., ifs) are too complex.
Use a standard industry code coverage tool and interpret its results.

Topic 4: Testability and mock objects
Understand the differences between different test levels (e.g., unit, integration, and system tests)
Understand what makes a system more or less testable.
Propose refactoring opportunities for increasing testability.
Be able to apply mock objects in order to unit test a class.
Understand when not to apply mock objects and go for integration tests.

Topic 5 : Test code smells
Judge the internal code quality of your test suite and advice possible improvements.
Understand and avoid flaky tests.
Refactor and clean smelly test code.

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

Related Courses

Single Page Web Applications with AngularJS (Coursera) Coursera
Johns Hopkins University

Single Page Web Applications with AngularJS (Coursera)

Do you want to write powerful, maintainable, and testable front end applications faster and with less code? Then consider joining this course to gain skills in one of the most popular Single Page Application (SPA) frameworks today, AngularJS. Developed and backed by Google, AngularJS is a very marketable skill to acquire.

Jun 22nd 2026
5-12 Weeks
Automated Software Testing: Model and State-based Testing (edX) EdX
Delft University of Technology,DelftX

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.

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

Jun 22nd 2026
4 Weeks
Recommender Systems: Behind the Screen (edX) EdX
Université de Montréal,UMontrealX

Recommender Systems: Behind the Screen (edX)

How are items recommended when you’re browsing for movies, jobs or clothing online? Register here and you’ll discover the fundamental concepts and methods allowing the most relevant item suggestions to users from e-commerce to online advertisement. In this course, you will explore and learn the best methods and practices in recommender systems, which are an essential component of the online ecosystem. This course was developed by IVADO and HEC Montréal as part of a workshop that took place in Montreal.

Sep 26th 2023
5-12 Weeks
Responsabilidad Social Corporativa y su impacto sobre la Gestión de la Tecnología de la Información (edX) EdX
OECx,Open Education Consortium - OEC

Responsabilidad Social Corporativa y su impacto sobre la Gestión de la Tecnología de la Información (edX)

La complejidad de los problemas emanados de una rápida globalización de la economía así como los grandes avances en la tecnología de la información (TI) han acelerado la aparición de sucesivas crisis económicas y sociales en las que tanto gobiernos de muchos países como empresas encuentran dificultades para adaptarse a esta nueva situación y cambiar con agilidad sus modelos de gobierno y gestión.

No sessions available
4 Weeks
Introduction to Computational Thinking and Data Science (edX) EdX
MIT,MITx

Introduction to Computational Thinking and Data Science (edX)

This course is an introduction to using computation to understand real-world phenomena. This course will teach you how to use computation to accomplish a variety of goals and provides you with a brief introduction to a variety of topics in computational problem solving. This course is aimed at students with some prior programming experience in Python and a rudimentary knowledge of computational complexity.

Mar 20th 2024
5-12 Weeks
Computer Graphics (edX) EdX
University of California, San Diego,UC San DiegoX

Computer Graphics (edX)

Learn to create images of 3D scenes in both real-time and with realistic raytracing in this introductory computer graphics course. Today, computer graphics is a central part of our lives, in movies, games, computer-aided design, virtual simulators, visualization and even imaging products and cameras.

Self Paced
Self-Paced
Quantum Networking (edX) EdX
Purdue University,PurdueX

Quantum Networking (edX)

Learn about the science and engineering of future quantum networks whose security is guaranteed by laws of quantum physics. Applying exotic quantum properties such as entanglement to every-day applications such as communication and computation reveals new dimensions of such applications. Quantum encoding and entanglement distribution provide means to establish fundamentally secure communication links for transfer of classical and quantum data.

Mar 27th 2023
5-12 Weeks
Probability - The Science of Uncertainty and Data (edX) EdX
MIT,MITx

Probability - The Science of Uncertainty and Data (edX)

Build foundational knowledge of data science with this introduction to probabilistic models, including random processes and the basic elements of statistical inference. The world is full of uncertainty: accidents, storms, unruly financial markets, noisy communications. The world is also full of data. Probabilistic modeling and the related field of statistical inference are the keys to analyzing data and making scientifically sound predictions.

Jan 29th 2024
13-24 Weeks