Parasoft Jtest 7.0 is like a Java code development assistant on a SoBe Adrenaline Rush intravenous drip. Not only does it
do source analysis, perform coverage analysis, and manage unit test production, execution, and tracking, but now it provides
on-the-fly generation of functional tests for everything from stand-alone applications to container-supported servlets and
EJBs.

Parasoft Jtest 7.0
Parasoft, parasoft.com
|
Excellent 8.7 |
 |
| criteria |
score |
weight |
| Documentation |
8 |
20% |
 |
| Interoperability |
9 |
20% |
 |
| Performance |
9 |
20% |
 |
| Scalability |
9 |
20% |
 |
| Setup |
9 |
10% |
 |
| Value |
8 |
10% |
 |
|
 |
Cost: $3,495 for single seat of Professional Edition
Platforms: Hosted in Eclipse IDE. Windows 2000/XP/2003 Server, Linux
Bottom Line: For industrial-strength Java application testing, this is the tool to get. Because it allows you to do so much without coding,
it will be as useful to your QA department as it will be for your developers.
|
 |
About our Reviews and Scoring Methodology
|
|
|
|
In short, Jtest is becoming a one-stop-shopping Java-testing supercenter that copes with just about every Java component you
might develop, regardless of its run-time requirements.
Jtest’s analysis of a target application can be divided into two broad categories: static and dynamic. Static analysis examines
the application’s actual code, verifying that it adheres to more than 500 rules adopted from various experts and coding standards.
Of course, you can alter the test configuration so that your code is graded against a subset of the total rule collection.
When code is found to be in violation, you are provided with not only a description of the broken rule, but also relevant
explanatory notes; a Benefits section (which explains why you should adhere to the standard associated with the rule); and
code examples that show both improper and proper coding practices. In addition, Jtest includes a bibliography identifying
the source from which the rule was drawn.
Jtest’s dynamic side is its automatic unit test generation. Producing JUnit-compatible tests, Jtest creates not only the unit
test code, but does so in such a fashion that delivers intelligent coverage testing. For example, suppose that Jtest is in
its automatic test-generation phase and creates two tests and -- after running both -- discovers that the second test provides
no additional coverage beyond the first. Jtest will automatically drop the second test from its repertoire, generate a new
one, execute it, and see if it extends coverage. If so, Jtest keeps the new test and moves on.
Jtest further improves upon its intelligent unit test creation by looking for corner pocket conditions; that is, it tries
to produce tests that cause run-time exceptions.
Also, Jtest understands DbC (design by contract), the practice of embedding parameter and result documentation in Javadoc
comments preceding each method. Jtest will read that information and use it to guide its test generation; yet one more instance
of techniques that Jtest uses to add smarts to its unit tests.
Of course, there’s got to be some human intervention: It’s up to you to tell Jtest whether a given result or a run-time exception
is the correct response of the module under test. Happily, that’s easily done with the information that Jtest provides with
each reported result and error. Errors link to the source code, and the values of parameters that were passed to the target
method (and that caused the exception) are displayed. Jtest also produces (and links to) stack traces, so you’ve got just
about all the information -- and them some -- that any decent debugger would provide to diagnose the generated exception.
New with this is the Test Case Sniffer. The Sniffer watches as you exercise a particular module in your app, then creates
functional unit tests based on the information it gains “sniffing” out the methods you’ve called and the data. Suppose you’re
testing a collection of servlets that take input on the front end via incoming HTTP requests and database I/O on the back
end via JDBC. No problem; Sniffer will surround the module, audit the data flowing into and out of it, and use that information
to create its tests.
There is also a command line version of Jtest, which means that after you have a reliable stable of tests assembled, you can
incorporate them into your project’s build process. You can even configure the CLI to e-mail developers test results.
With the Test Case Sniffer, Jtest really does provide both white-box and black-box testing: white-box testing via the unit
tests it creates by scanning the code and creating unit tests accordingly; black-box (functional) testing via the new Sniffer
feature. Add new tests that ferret out security vulnerabilities, and Jtest 7.0 is about as close to a Swiss Army knife for
Java testing as you’re going to get.