As we said at the end of the previous lesson, black-box testing is
the testing of the software when we look at it as a black box,
as a closed box, without looking at it inside, without looking at the
code. And there are several advantages in
using black-box testing. So let me recap
those advantages, some of which we already mentioned, and let me also expand
on that a little bit. The first advantage of when I mentioned is that
black box focuses on the domain, on the input domain of the software. And
as such, we can use it to make sure that we are actually covering
this domain, that we are actually covering the important behaviors of
the software. A second advantage is that black box testing does not
need the code. What that means is that you can perform early
test design. So you can start designing and writing your test cases,
even before writing your code, so that when the code is
ready, we can test it right away. And that helps prevent a
problem that is very typical in real life software development, which is
getting an idea of the project and having no time to create
the tests. In this way, we already have the tests, so
we just have to run them. Another advantage is that black-box testing
can catch logic defects, because it focuses on the description of what
the software should do, and therefore on its logic. If we derive
test cases from such description, then we can catch these kind of
problems. And finally, black-box testing is
applicable at all granularity levels, which
means that we can use black-box testing in unit testing, integration testing,
system testing, and so on. We can use it at all levels.