Quick Facts

Technical Papers

Support & Manuals


Recent Reviews

User Testimonials

Press Releases

Jtest tool to debug Java(tm)

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 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 robust.

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 Java code

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 outcome changes.

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, and maintain.

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 software/components.
  • 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:

  1. Launch the Jtest GUI.
  2. Select the class that you want to test.
  3. 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 program.

There is no need for scripting or recording. Jtest gives you all the information you need to clean and strengthen your code.

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
  • Linux
  • Solaris

What are Jtest's system requirements?

  • Windows
    • Windows NT/2000 or 95/98
    • Pentium compatible 300MHz or higher (400 recommended)
    • 128 MB of RAM
  • Linux
    • 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
    • Solaris 2.7
    • 256 MB of RAM
    • 333 MHz processor
Tools to debug C++ and Java
(888) 305-0041 Copyright © 1996-2001 ParaSoft