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

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 7th 2026
5-12 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.

Sep 7th 2026
3 Weeks
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
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
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
Python and Rust with Linux Command Line Tools (Coursera) Coursera
Duke University

Python and Rust with Linux Command Line Tools (Coursera)

This course is designed for beginners and those with some programming experience in either Python or Rust that want to implement automation and utilities in the command-line. Although no prior knowledge of Python or Rust is required, basic programming knowledge is recommended as well as some familiarity with the command-line interface (CLI).

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

Sep 14th 2026
5-12 Weeks
Introducción a UML (Coursera) Coursera
Universidad de los Andes

Introducción a UML (Coursera)

Bienvenidos a este curso de introducción al Lenguaje de Modelado Unificado, o UML por su sigla en inglés. Este curso surge como respuesta a la necesidad de los ingenieros de software de desarrollar la habilidad de abstraer y representar en un modelo problemas o soluciones. Esta habilidad es especialmente importante en el mundo del software donde las tecnologías son tan cambiantes. Un modelo te provee una forma de comunicar y validar un entendimiento, independiente de la tecnología en la que construirás una solución.

Sep 28th 2026
4 Weeks
Operations Research (2): Optimization Algorithms (Coursera) Coursera
National Taiwan University

Operations Research (2): Optimization Algorithms (Coursera)

Operations Research (OR) is a field in which people use mathematical and engineering methods to study optimization problems in Business and Management, Economics, Computer Science, Civil Engineering, Electrical Engineering, etc. The series of courses consists of three parts, we focus on deterministic optimization techniques, which is a major part of the field of OR. As the second part of the series, we study some efficient algorithms for solving linear programs, integer programs, and nonlinear programs.

Sep 28th 2026
5-12 Weeks
Data Engineering with Rust (Coursera) Coursera
Duke University

Data Engineering with Rust (Coursera)

Are you a data engineer, software developer, or a tech enthusiast with a basic understanding of Rust, seeking to enhance your skills and dive deep into the realm of data engineering with Rust? Or are you a professional from another programming language background, aiming to explore the efficiency, safety, and concurrency features of Rust for data engineering tasks? If so, this course is designed for you.

Jul 9th 2026
4 Weeks
Programming with Scratch (Coursera) Coursera
The Hong Kong University of Science and Technology - HKUST

Programming with Scratch (Coursera)

Learning coding is not only about understanding the programming language being used, but also developing important computational thinking skills, which are useful for problem solving across many disciplinary areas. In this course, students will learn basic programming skills by creating interactive storybooks, animations, and games with Scratch, which is a block-based visual programming language for anyone new to coding.

Sep 28th 2026
5-12 Weeks