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

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.

Jun 1st 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
NoSQL Databases (edX) EdX
University System of Maryland - USM,USMx,University of Maryland Baltimore County,UMBC

NoSQL Databases (edX)

Build a foundation of the four NoSQL (non-relational) databases: Document-oriented, Key-Value Pair, Column-oriented, and Graph. This NoSQL database course provides you with an introduction, overview, and history of NoSQL databases (non-relational databases). In this course you will explore in detail the four types of NoSQL databases (e.g., Document-oriented, Key-Value Pair, Column-oriented, and Graph).

Sep 19th 2022
5-12 Weeks
Introduction to Optimization (edX) EdX
Seoul National University,SNUx

Introduction to Optimization (edX)

A self-contained course on the fundamentals of modern optimization with equal emphasis on theory, implementation, and application. We consider linear and nonlinear optimization problems, including network flow problems and game-theoretic models in which selfish agents compete for shared resources. We apply these models to a variety of real-world scenarios.

Oct 31st 2023
5-12 Weeks
Quantum Technologies for Decision Makers (edX) EdX
University of Queensland,UQx

Quantum Technologies for Decision Makers (edX)

Quantum technology is all around yet many of us can readily be confused by the science, let alone the trajectories to identifying commercial opportunities. In such a context, making strategic decisions when the science and engineering are shifting presents many innovation dilemmas. Our interest lies in exploring enough of the science to boost our understanding so that we can make informed decisions to allocate resources that create and harness emerging opportunities.

Mar 28th 2023
4 Weeks
Circuits and Electronics 3: Applications (edX) EdX
MIT,MITx

Circuits and Electronics 3: Applications (edX)

Learn about cool applications, op-amps and filters in the design of microchips used in smartphones, computers, and the internet. Want to learn how your radio works? Wondering how to implement filters using resistors, inductors, and capacitors? Wondering what are some other applications of RLC and CMOS circuits? This free circuit course, taught by edX CEO and MIT Professor Anant Agarwal and MIT colleagues, is for you.

Self Paced
Self-Paced
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
Quantum Mechanics and Quantum Computation (edX) EdX
University of California, Berkeley,BerkeleyX

Quantum Mechanics and Quantum Computation (edX)

A simple conceptual introduction to quantum mechanics and quantum computation. Quantum computation is a remarkable subject building on the great computational discovery that computers based on quantum mechanics are exponentially powerful. This course aims to make this cutting-edge material broadly accessible to undergraduate students, including computer science majors who do not have any prior exposure to quantum mechanics.

No sessions available
5-12 Weeks
Circuits and Electronics 2: Amplification, Speed, and Delay (edX) EdX
MIT,MITx

Circuits and Electronics 2: Amplification, Speed, and Delay (edX)

Learn how to speed up digital circuits and build amplifiers in the design of microchips used in smartphones, computers, and the Internet. Want to learn how to construct an amplifier for mobile phones? Wondering how energy storage elements like capacitors and inductors work, or how to make microchips run faster? This free circuit course taught by edX CEO and MIT Professor Anant Agarwal and colleagues is for you.

Self Paced
Self-Paced