|
Wasp Static Error Checker
-
Version
3.2
If your Java program has been thoroughly tested but
still error-prone,
the Wasp analyser can help to detect subtle run-time
errors
and weak points in your program.
The following kinds of errors may be statically
detected:
null pointer exception, impermissible cast,
array index out of bounds, division by zero, etc.
The following kinds of weak points may be detected:
uninitialised variable,
unreachable branch in conditional or switch statement,
unreachable loop body or catch clause,
assignment of variable whose value is never used,
unreachable main exit of method, etc.
Wasp produces detailed and precise method call graph.
The method call graph of a program helps to know for
each method
what actual methods are called in its body.
Additionally, for each method you may know where this
method may be called.
In comparison with other static error analysers,
Wasp has two important advantages.
Wasp is able to distinguish between a definite error,
a possible error (warning), and a potentially
erroneous situation.
In the latter case, Wasp produces a message called
conditional error that in practice appear to indicate
an error
in approximately one case from five.
Wasp performs context-sensitive data flow analysis,
so it is able to recognize an error that appears only
for some calls
of the method containing it, but does not for other
ones.
All known to us static analysers (e.g. QStudio Java,
MetaMata Audit, etc)
that statically detect run-time errors may produce
only long lists of warnings because they
can not recognize definite errors in a program due to
weak
analyses applied. A user has to waste much time to
analyse all warnings.
Wasp has proven its ability to find subtle bugs in
programs even
after debugging and testing stages of development
because Wasp
detects situations of real complexity.
|