Jtest Quick Fact Sheet
What is Jtest?
Jtest is the world's most complete automatic unit testing tool for
Java. Its purpose is to help you increase your Java.software reliability
while dramatically reducing the amount of time you spend testing. Jtest
is designed to reduce the burden on Java developers as they write and test
their programs from the class level at the earliest stages of development.
Jtest automates four essential types of Java testing including--for the
first time in software development history--automating black-box testing
by reading DbC information built into your class with the DbC language.
Jtest then automatically creates and executes test cases based on these
specifications. Jtest gives you the detailed error information you need
to make your JavaBeans, APIs and libraries, applications, and applets more
What types of testing does Jtest perform?
Jtest automatically performs white-box testing, black-box testing,
regression testing, and static analysis (coding standard enforcement) of
What is black-box testing and why is it important?
Black-box testing ensures that methods in your class function properly.
This type of testing is important because it can prevent a minor error
from going undetected and turning into a major problem when the class
interacts with other classes at the system-level.
What is white-box testing and why is it important?
White-box testing is a process that checks code using test data
derived from the class's internal structure. White-box testing at the
class level prevents errors that could cause problems when classes are
integrated into modules. Uncaught runtime exceptions found during
white-box testing are serious problems that need to be addressed.
What are coding standards and how can they help me?
Coding standards are language-specific rules that, if followed, help
reduce the opportunity for developers to introduce errors into code.
Jtest enforces coding standards automatically with its
static analysis feature. Jtest enforces a sophisticated set of Java coding
standards as well as a set of Enterprise JavaBeans-specific coding standards.
How does Jtest work?
During white-box testing, Jtest tests your
code's internal structure at the class (or module) level and validates
that the class, when passed unexpected input, will not cause the
program to crash. Jtest uses ParaSoft's patented Test
Generation System technology (patent #5,784,553 & 5,761,408) to
automatically generate input test cases that expose uncaught,
undocumented runtime exceptions.
Jtest can also generate white-box stubs to test classes using inputs from external
resources. Jtest tests classes that use CORBA® by providing white-box stubs for the
Object Request Broker and other objects referenced by the class. Jtest tests classes that use
Enterprise JavaBeans by making sure that Bean classes behave correctly regardless of
what values other Beans return.
During black-box testing Jtest automatically reads DbC specification
information built into a class with the DbC language, then automatically
creates and executes test cases that verify the functionality of the
specification. Jtest can also automatically provide a set of inputs based
on sophisticated analysis and then executes the class with the inputs.
You may also provide your own sets of inputs to be used by Jtest.
During regression testing, Jtest checks for
errors introduced into previously correct software during modifications.
Jtest remembers outcomes from previous runs, compares
the outcomes every time the class is tested, and reports an error if an
Jtest performs static analysis by parsing the Java source and
applying to it a set of coding standards. Jtest reports violations of
these standards as errors. Java coding standards help you avoid errors as
you write in the Java language and make your code easier to reuse, modify,
What is Design by ContractTM?
Design by Contract (DbC) is a formal way of using comments to incorporate specification information
into the code itself. Basically, the code specification is expressed
unambiguously using a formal language that describes the code's implicit
contracts. These contracts specify such requirements as:
- Conditions that the client must meet before a method is invoked.
- Conditions that a method
must meet after it executes.
- Assertions that a method must satisfy at
specific points of its execution.
What is the advantage of using DbC with Jtest?
- Functionality test cases are created automatically. If you
currently create your functionality test cases manually, this means fewer
resources spent creating test cases, and more resources to dedicate to more
complex tasks, such as design and coding. If you do not currently perform
functionality testing, this will translate to more reliable
- Functionality test cases are automatically updated as
the code's specification changes.
- Class/component misuse is automatically detected.
Is Jtest easy to use?
Jtest is extremely easy to use. Simply follow these steps:
- Launch the Jtest GUI.
- Select the class that you want to test.
- Click Start.
Jtest displays error messages from each type of testing
in the bottom of the GUI. You can then expand any error message to
view the stack trace, arguments, and the exact
code where the error occurs. Or, you can right-click the line of code
that contains the error to edit source code without leaving the
There is no need for scripting or recording. Jtest
gives you all the information you need to clean and strengthen your
Can I create my own coding standards with Jtest?
Yes. The RuleWizard feature helps you write and customize your own
Java coding standards. You can create coding standards by pointing and clicking.
RuleWizard makes suggestions to guide you through the coding standard creation process
and displays a green light when your coding standard is ready for use. The coding standards
you create and customize with RuleWizard will be enforced automatically by Jtest.
On which platforms does Jtest run?
- Windows NT/2000
- Windows 95/98
What are Jtest's system requirements?
- Windows NT/2000 or 95/98
- Pentium compatible 300MHz or higher (400 recommended)
- 128 MB of RAM
- 400MHz Pentium compatible
- 128 MB of RAM
- Supports RedHat Linux 6.1 or 6.2
- Gnome or KDE Windows Managers
- Kernel: 2.2.12-20 or 2.2.14-5
- libc: libc-2.1.2 or 2.1.3
- Solaris 2.7
- 256 MB of RAM
- 333 MHz processor