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