Black-box and White-box Testing (Coursera)

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.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

After completing this course, you will be able to:

  • evaluate testability of requirements
  • define testable units within a program specification
  • apply black-box test input selection methods - specifically boundary-value analysis, fuzzing, and random selection - and select the method most-suited to achieve the given testing objective
  • assess the fault-finding effectiveness of a functional test suite using mutation testing
  • use category partitioning to develop automated functional tests (with Cucumber) based on a given software specification
  • create an expected-value oracle from a program description to use within the generated tests

In order to do well in this course, you should have experience with an OOP language (like Java), have an IDE installed (e.g., Eclipse), and be familiar with testing terminology (see Intro to Software Testing course within this specialization). we also expect a familiarity with the Software Development Lifecycle and the context in which the testing stage sits.
This course is primarily aimed at those learners interested in any of the following roles: Software Engineer, Software Engineer in Test, Test Automation Engineer, DevOps Engineer, Software Developer, Programmer, Computer Enthusiast.

Course 2 of 4 in the Software Testing and Automation Specialization.

What You Will Learn

  • You will evaluate testability of requirements
  • You will define testable units within a program specification
  • You will select and apply black-box test input selection methods, including boundary-value analysis, fuzzing, and random selection
  • You will develop automated tests and test oracles for automated software verification.

Syllabus

WEEK 1
Module 1: Introduction
In this module, we will learn about the basics of testing adequacy, as well as the factors that influence testing effectiveness and how we quantify these metrics.

WEEK 2
Module 2: Black and White-box Techniques
In this module, we will learn a variety of testing techniques that can be used in both white-box and black-box testing strategies.

WEEK 3
Module 3: Requirements-Based Testing
In this module, we focus on requirements-based testing. We review a set of requirements from a testing perspective and then move on to a more sophisticated way of writing requirements: structured requirements using the tool Cucumber.

WEEK 4
Performing Black and White Box Testing with Cucumber
In this module, we go further in using the Cucumber toolset in order to implement a variety of testing strategies against two example projects.

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

Related Courses

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.

Nov 9th 2026
2 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
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
Software Analysis & Testing (Udacity) Udacity
Georgia Institute of Technology,Udacity

Software Analysis & Testing (Udacity)

This course covers the theory and practice of software analysis, which lies at the heart of many software development processes such as diagnosing bugs, testing, debugging, and more. It presents diverse techniques, each with their own strengths and limitations, for automating tasks such as testing, debugging, and finding bugs in complex real-world programs. These techniques include dataflow analysis, constraint-based analysis, type systems, model checking, symbolic execution, and more. The course teaches the principles underlying these techniques as well as imparts hands-on experience with using and implementing tools based on these techniques.

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
Learn Software Testing Certification course (Eduonix) Eduonix
Eduonix Learning Solutions Pvt. Ltd.

Learn Software Testing Certification course (Eduonix)

Software Testing is one of the most important and critical component of Software development life cycle. The testing team is ultimately responsible of Software quality and forms the bedrock before it goes out to actual users and to market place. Over the years with innovative development techniques the software testing and quality assurance field has undergone a sea change. With new techniques like TDD(Test driven development) taking hold in industry the software developers must understand the nuances of new approaches to software quality. This is a free course with a MOOC List coupon.

Self Paced
Self-Paced
Learn React (Coursera) Coursera
Scrimba

Learn React (Coursera)

The ultimate React 101 - the perfect starting point for any React beginner. Learn the basics of modern React by solving 140+ interactive coding challenges and building eight fun projects. In this 143-part interactive tutorial, you'll learn how to build dynamic, interactive web applications with React.js. With Scrimba’s head of education, Bob Ziroll, as a guide, you’ll get to know all the bang-up-to-date features of React and fix them firmly in your memory by using them to create hands-on projects.

Nov 16th 2026
3 Weeks
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
Plant Bioinformatics (Coursera) Coursera
University of Toronto

Plant Bioinformatics (Coursera)

The past 15 years have been exciting ones in plant biology. Hundreds of plant genomes have been sequenced, RNA-seq has enabled transcriptome-wide expression profiling, and a proliferation of "-seq"-based methods has permitted protein-protein and protein-DNA interactions to be determined cheaply and in a high-throughput manner. These data sets in turn allow us to generate hypotheses at the click of a mouse.

Nov 16th 2026
5-12 Weeks
Software Engineering: Implementation and Testing (Coursera) Coursera
The Hong Kong University of Science and Technology - HKUST

Software Engineering: Implementation and Testing (Coursera)

Software Development Life Cycle (SDLC) is the process of developing software through planning, requirement analysis, design, implementation, testing, and maintenance. This course focuses on the implementation and testing phases of SDLC, and you will examine different software development processes for large software systems development, and understand the strengths (pros) and weaknesses (cons) of different software development processes.

Oct 26th 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.

Oct 26th 2026
4 Weeks
Automation in the AWS Cloud (Coursera) Coursera
AWS

Automation in the AWS Cloud (Coursera)

Automation in the Cloud can simplify processes, enable agility and scalability, and help you deploy faster. But how should you master these topics to enhance your career potential? The course kicks off by introducing automation in the cloud, comparing the differences between on-premises and cloud. We'll answer why automation is so powerful and you'll get hands-on by working with AWS CLI.

Nov 2nd 2026
3 Weeks