Beruflich Dokumente
Kultur Dokumente
The opposite of this would be white box testing, where test data are
derived from direct examination of the code to be tested. For white box
testing, the test cases cannot be determined until the code has actually
been written.
Black box testing, also called functional testing and behavioral testing,
focuses on determining whether or not a program does what it is
supposed to do based on its functional requirements. Black box testing
attempts to find errors in the external behavior of the code in the
following categories:
It is best if the person who plans and executes black box tests is not the
programmer of the code and does not know anything about the structure
of the code. The programmers Testing Overview and Black-Box Testing
Techniques of the code are innately biased and are likely to test that the
program does what they programmed it to do. What are needed are tests
to make sure that the program does what the customer wants it to do. As
a result, most organizations have independent testing groups to perform
black box testing. These testers are not the developers and are often
referred to as third-party testers. Testers should just be able to understand
and specify what the desired output should be for a given input into the
program, as shown in Figure 3.
Testing Strategies/Techniques
Black box testing should make use of randomly generated inputs (only a
test range should be specified by the tester), to eliminate any guess work
by the tester as to the methods of the function.
Data outside of the specified input range should be tested to check the
robustness of the program.
Though centered around the knowledge of user requirements, black box tests
do not necessarily involve the participation of users. Among the most
important black box tests that do not involve users are functionality testing,
volume tests, stress tests, recovery testing, and benchmarks (Thaller94, 138-
149). Additionally, there are two types of black box test that involve users,
i.e. field and laboratory tests (Karat90, 352) and (Crellin90, 330). In the
following the most important aspects of these black box tests will be
described briefly.
2. Without clear and concise specifications, test cases are hard to design.
During a stress test, the system has to process a huge amount of data or
perform many function calls within a short period of time. A typical example
could be to perform the same function from all workstations connected in a
LAN within a short period of time (e.g. sending e-mails, or, in the NLP area,
to modify a term bank via different terminals simultaneously).
The aim of recovery testing is to make sure to which extent data can be
recovered after a system breakdown. Does the system provide possibilities
to recover all of the data or part of it? How much can be recovered and how?
Is the recovered data still correct and consistent? Particularly for software
that needs high reliability standards, recovery testing is very important.
In field tests users are observed while using the software system at their
normal working place. Apart from general usability-related aspects, field
tests are particularly useful for assessing the interoperability of the software
system, i.e. how the technical integration of the system works. Moreover,
field tests are the only real means to elucidate problems of the organisational
integration of the software system into existing procedures. Particularly in
the NLP environment this problem has frequently been underestimated. A
typical example of the organisational problem of implementing a translation
memory is the language service of a big automobile manufacturer, where the
major implementation problem is not the technical environment, but the fact
that many clients still submit their orders as print-out, that neither source
texts nor target texts are properly organised and stored and, last but not least,
individual translators are not too motivated to change their working habits.
Laboratory tests are mostly performed to assess the general usability of the
system. Due to the high laboratory equipment costs laboratory tests are
mostly only performed at big software houses such as IBM or Microsoft.
Since laboratory tests provide testers with many technical possibilities, data
collection and analysis are easier than for field tests.