We're almost at the end of this lesson. In the
next two lessons we're going to talk about two main families
of testing techniques, black-box testing
techniques, and white-box testing techniques. So,
what I want to do before getting into the discussion of the
specific techniques in this families. I want to give you an
overview of what black-box testing and white-box testing are. Black box
testing is the kind of testing in which we consider the
software as a closed box. That's why it's called black box.
So we don't look inside the software, we don't want to
look at the code. We just going to look at the description
of the software. So this is the testing that is based
on a description of the software, which is what we normally
call the specification for the software. And what black box testing
tries to do is to cover as much specified behavior as
possible, and the main limitation black box testing and the reason
why this is complimentary to white-box testing is that it cannot reveal
errors due to implementation details. Conversely, white-box testing
is the kind of testing that looks inside the
box. So looks at the code and how
the code is written and uses this information to
perform the testing. So white-box testing is based
on the code, its goal is to cover as
much coded behavior in this case, as possible, and
its limitation is that unlike black-box testing, it can't
reveal errors due to missing paths. Where missing paths are
a part of a software specification that are not implemented and
the reason why you can not reveal them is because
it is focused on the code and not on the specification.