Cryptography Reference
In-Depth Information
CHAPTER 13
Strategies for
Testing LINT
Don't blame the Compiler.
—David A. Spuler: C++ and C Debugging, Testing, and Code Reliability
I N THE PREVIOUS CHAPTERS WE have encountered here and there hints for testing
individual functions. Without meaningful tests to ensure the quality of our
package, all of our work would be for naught, for on what else are we to base our
confidence in the reliability of our functions? Therefore, we are now going to give
our full attention to this important topic, and to this end we ask two questions
that every software developer should ask:
1. How can we be certain that our software functions behave according
to their specifications, which in our case means first of all that they are
mathematically correct?
2. How can we achieve stability and reliability in the functioning of our
software?
Although these two questions are closely related, they are actually concerned
with two different problem areas. A function can be mathematically incorrect,
for example if the underlying algorithm has been incorrectly implemented, yet it
can reliably and stably reproduce this error and consistently give the same false
output for a given input. On the other hand, functions that apparently return
correct results can be plagued by other sorts of errors, for example an overflow
of the length of a vector or the use of incorrectly initialized variables, leading
to undefined behavior that remains undetected due to favorable (or should we
rather say unfavorable?) test conditions.
We thus must be concerned with both of these aspects and institute
development and test methods that can provide us sufficient trust in both the
correctness and reliability of our programs. There are numerous publications that
discuss the significance and consequences of these wide-ranging requirements
for the entire software development process and delve deeply into the issues of
software quality. Considered attention to this topic has found expression not
least in the international trend to institute the ISO 9000 standard in software
 
Search WWH ::




Custom Search