White Box Testing
refers to the technique of testing a system with knowledge of the
internals of the system. White Box testers have access to the source
code and are aware of the system architecture. A White Box tester
typically analyzes source code, derives test cases from knowledge about
the source code, and finally targets specific code paths to achieve a
certain level of code coverage. A White Box tester with access to
details about both operations can readily craft efficient test cases
that exercise boundary conditions.
Advantages
Advantages
a. Increased
Effectiveness — Crosschecking design decisions and assumptions against
source code may outline a robust design, but the implementation may not
align with the design intent.
b. Full
Code Pathway Capable — all the possible code pathways can be tested
including error handling, resource dependencies, and additional internal
code logic/flow.
c. Early
Defect Identification — Analyzing source code and developing tests
based on the implementation details enables testers to find programming
errors quickly.
d. Reveal
Hidden Code Flaws — access to source code improves understanding and
uncovering unintended hidden behavior of program modules. Disadvantages
a. Difficult
To Scale — requires intimate knowledge of target system, testing tools
and coding languages, and modeling. It suffers for scalability of
skilled and expert testers.
b. Difficult to Maintain — requires specialized tools such as source code analyzers, debuggers, and fault injectors.
c. Cultural Stress — the demarcation between developer and testers starts to blur which may become a cultural stress.
d. Highly
Intrusive — requires code modification has been done using interactive
debuggers, or by actually changing the source code. This may be adequate
for small programs; however, it does not scale well to larger
applications. Not useful for networked or distributed systems.
No comments:
Post a Comment