Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z
faqs.org - Internet FAQ Archives

comp.software.testing Frequently Asked Questions (FAQ)
Section - 13. What is black box/white box testing?

( Single Page )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Houses ]


Top Document: comp.software.testing Frequently Asked Questions (FAQ)
Previous Document: 12. How do I test web-related applications?
Next Document: 14. What are unit, component and integration testing?
See reader questions & answers on this topic! - Help others by sharing your knowledge
Black-box and white-box are test design methods.  Black-box test design
treats the system as a "black-box", so it doesn't explicitly use
knowledge of the internal structure.  Black-box test design is usually
described as focusing on testing functional requirements.  Synonyms for
black-box include:  behavioral, functional, opaque-box, and
closed-box.  White-box test design allows one to peek inside the "box",
and it focuses specifically on using internal knowledge of the software
to guide the selection of test data.  Synonyms for white-box include:
structural, glass-box and clear-box.

While black-box and white-box are terms that are still in popular use,
many people prefer the terms "behavioral" and "structural".  Behavioral
test design is slightly different from black-box test design because
the use of internal knowledge isn't strictly forbidden, but it's still
discouraged.  In practice, it hasn't proven useful to use a single test
design method.  One has to use a mixture of different methods so that
they aren't hindered by the limitations of a particular one.  Some call
this "gray-box" or "translucent-box" test design, but others wish we'd
stop talking about boxes altogether.

It is important to understand that these methods are used during the
test design phase, and their influence is hard to see in the tests once
they're implemented.  Note that any level of testing (unit testing,
system testing, etc.) can use any test design methods.  Unit testing is
usually associated with structural test design, but this is because
testers usually don't have well-defined requirements at the unit level
to validate.

Definitions of these terms can be found in these references:

Beizer, _Black Box Testing_, p. 8.
Beizer, _Software Testing Techniques_, pp. 10-11.
Daich, et al., _STSC Software Test Technologies Report_, pp. 198, 206.
Kaner, et.al., _Testing Computer Software_, Second Edition, pp. 41-43.
Mosley, _The Handbook of MIS Application Software Testing_, pp. 68-76.
Myers, _The Art of Software Testing_, pp. 8-11.
Wilson, _Unix Test Tools and Benchmarks_, pp. 298, 306

User Contributions:

Comment about this article, ask questions, or add new information about this topic:




Top Document: comp.software.testing Frequently Asked Questions (FAQ)
Previous Document: 12. How do I test web-related applications?
Next Document: 14. What are unit, component and integration testing?

Single Page

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
raymond.rivest@crim.ca (Raymond Rivest)





Last Update March 27 2014 @ 02:12 PM