In the previous lesson, we discussed the fundamental
concepts behind software verification in general, and software testing
in particular. In this lesson, we will discuss
one of the two main testing approaches. Black box
testing, also called functional testing. We will cover
the main characteristic of black box testing, its pros
and cons, and discuss some commonly used black
box testing techniques. We will conclude the lesson with
a practical exercise in which we will apply a specific black
box testing technique to a real program. We will derive test
cases for the program and assess how the use of a
systematic approach, in contrast to a brute force approach, can help.