Parasoft Logo
LanguageArrow
 
Java testing tools: Static code analysis, code review, unit testing (JUnit, Cactus) with Parasoft Jtest

Java Static Analysis, Code Review, Unit Testing, Runtime Error Detection

ResourcesEvaluationDemo
Customers
Animation Customers
Partners
Animation Partners
Awards
Awards animation

Parasoft® Jtest®: Java Testing, Static Analysis, Code Review

Parasoft® Jtest® is an integrated solution for automating a broad range of best practices proven to improve software development team productivity and software quality. Jtest facilitates:

  • Static analysis – static code analysis, data flow static analysis, and metrics analysis
  • Peer code review process automation–preparation, notification, and tracking
  • Unit testing – JUnit and Cactus test creation, execution, optimization, and maintenance
  • Runtime error detection – race conditions, exceptions, resource leaks, security attack vulnerabilities, and more

This provides teams a practical way to prevent, expose, and correct errors in order to ensure that their Java code works as expected. To promote rapid remediation, each problem detected is prioritized based on configurable severity assignments, automatically assigned to the developer who wrote the related code, and distributed to his or her IDE with direct links to the problematic code and a description of how to fix it.

Parasoft's customers, including 58% of the Fortune 500, rely on Jtest for:

  • Preventing errors that compromise security, reliability, and performance
  • Complying with internal or regulatory quality initiatives
  • Ensuring consistency across large teams
  • Increasing productivity by automating tedious yet beneficial development practices
  • Successfully implementing popular development methods like TDD, Agile, and XP
Customers
Animation Customers
Partners
Animation Partners
Awards
Awards animation
Parasoft Java Quality Solution provides a fully-integrated suite for automating a broad range of best practices proven to improve software development team productivity and software quality.
Static code analysisFacilitates regulatory compliance (FDA, PCI, etc.). Ensures that the code meets uniform expectations around security, reliability, performance, and maintainability. Eliminates entire classes of programming errors by establishing preventive coding conventions.
Data flow static analysisDetects complex runtime errors related to resource leaks, exceptions, SQL injections, and other security vulnerabilities without requiring test cases or application execution.
Metrics analysisIdentifies complex code, which is historically more error-prone and difficult to maintain.
Peer code review process automationAutomates and manages the peer code review workflow- including preparation, notification, and tracking- and reduces overhead by enabling remote code review on the desktop.
Unit test generation and executionEnables the team to start verifying reliability and functionality before the complete system is ready, reducing the length and cost of downstream processes such as debugging.
Test case "tracing"Generates unit test cases that capture actual code behavior as an application is exercised providing a fast and easy way to create the realistic test cases required for functional/regression testing.
Automated regression testingGenerates and executes regression test cases to detect if incremental code changes break existing functionality or impact application behavior.
Coverage analysisAssesses test suite efficacy and completeness using a multi-metric test coverage analyzer. This helps demonstrate compliance with test and validation requirements such as FDA.
Team deployment and workflowEstablishes a sustainable process that ensures software verification tasks are ingrained into the team's existing workflow and automated so team members can focus on tasks that truly require human intelligence.
Error assignment and distributionFacilitates error review and correction. Each issue detected is prioritized, assigned to the developer who wrote the related code, and distributed to his or her IDE with direct links to the problematic code.
Centralized reportingEnsures real-time visibility into quality status and processes. This helps managers assess and document trends, as well as determine if additional actions are needed for regulatory compliance.

Evaluation downloads are available upon request.

Technologies
SOA / Web services
Java
C/C++
.NET languages (C#, VB.NET, ASP.NET, Managed C++)
XML
WSDL
SOAP
PoX (Plain XML)
REST
JSON
BPEL
Web Applications
RIA
AJAX
JSP
JavaScript
VBScript/ASP
HTML
CSS
Multiple Message Protocols
WS-* Standards
UDDI
WSIL
MTOM(XOP) / MIME / DIME Attachments
HTTP 1.0, 1.1
HTTPS
TCP/IP
SMTP
.NET WCF (TCP, HTTP, WS Transaction Flow)
JMS
IBM MQ
Sonic MQ
TIBCO Rendezvous
EJB
RMI
CORBA
Customers
Animation Customers
Partners
Animation Partners
Awards
Awards animation
For a Printable Version, Click Here (159 KB PDF).
 
Jtest: Java Static Analysis, Code Review, Unit Testing, Security
 

Automatically Identify and Prevent Java™ Errors throughout the Entire Development Lifecycle

Parasoft Jtest is a comprehensive Java testing product for development teams building Java EE, SOA, Web, and other Java applications. Whether a team is trying to build quality into new code or extend a legacy code base without breaking existing functionality, Jtest provides them a practical way to ensure that their Java code works as expected. It empowers them to modify their code quickly and with confidence, resulting in optimization of development resources and control of development schedules and costs.

Jtest reduces the risks and costs of Java development by helping teams:

  • Modify existing code quickly, and with confidence — Enables teams to quickly build a regression safety net that will expose defects immediately upon introduction and determine if code modifications break existing functionality— even if the team has a large existing code base with no tests or minimal tests.
  • Control development costs and schedules — Exposes errors as early as possible, which is when they are fastest and cheapest to fix. Tests a broad range of potential user paths to uncover difficult-to-find problems that could delay releases or require post-release patches.
  • Optimize development resources — Automatically vets approximately 80% of coding issues so developers can spend less time on line-by-line inspections and debugging, and more time on design, algorithms, and implementation.
  • Leverage the power of the latest technologies while controlling their risks — Reduces the difficulty of testing complex enterprise applications (such as SOA/Web services and Java EE applications).
  • Gain instant visibility into Java code's quality and readiness — Provides on-demand objective code assessments and tracks progress towards quality and schedule targets.

Automatically Expose Difficult-to-Find Runtime Bugs with Data Flow Static Analysis

BugDetective is a new static analysis technology that searches a code base for errors which can lead to runtime bugs and application instabilities. By automatically tracing and simulating execution paths through even the most complex applications—those with paths that span multiple methods, classes, and/or packages and contain dozens of sequence calls—BugDetective exposes bugs that would be very difficult and time-consuming to find through manual testing or inspections, and would be exponentially more costly to fix if they were not detected until runtime. Using BugDetective, developers can find, diagnose, and fix classes of software errors that can evade coding standards analysis and/or unit testing. Exposing these bugs early in the software development lifecycle saves hours of diagnosis and potential rework.

Automate Code Review

To help developers identify small coding mistakes before they spawn bugs that are difficult to find and fix, Jtest's coding standards analysis automatically checks whether code follows over 700 Java coding best practices and any number of custom coding rules. Coding standards analysis can also be used to prevent application-specific errors, enforce a security policy, improve code readability and maintainability, and identify code that would benefit from refactoring. Many coding problems can be resolved automatically, so code can be improved in just seconds.

Since this automated coding standards analysis virtually eliminates the need for line-by-line inspections during peer code reviews, these reviews can focus on high-return value analysis, such as examining design, algorithmic, or implementation issues. Peer code reviews are further supported by Jtest's Code Review module, which automates the review process to facilitate participation and communication. This makes code reviews more productive and practical for software development organizations—especially those with distributed teams.

Subjecting code to automated and manual inspections ensures that quality is built into the code, which allows QA to focus on high-level verification, reduces time to market, and improves project predictability.

Verify and Capture Code Behavior at the Unit, Component, and Application Level

Developers and QA testers can use Jtest to build a test suite that not only verifies code correctness and reliability at multiple levels, but also captures code behavior to establish a baseline for regression testing.

As soon as a Java method or class is implemented, the developer can test it in isolation to start finding errors instantly. To facilitate this initial developer testing, Jtest automatically generates extendable, high-coverage JUnit tests that expose reliability problems and can be leveraged for regular regression testing.

Once Java EE classes are deployed to a local application server, Jtest can automatically generate Cactus tests for them and then execute those tests in the application container to simulate the code's realistic runtime environment. This ability to test complex, difficult-to-test Java EE applications in isolation (on the desktop or a local server) before they are deployed to a production system promotes early exposure of defects that are typically not noticed until QA or later—when finding and fixing them is significantly more difficult and expensive.

By monitoring a deployed application in real time, Jtest Tracer® can capture realistic functional tests to further extend the regression test suite. Simply use the application's GUI or a test client (such as Parasoft SOAtest) to execute the use cases you want to verify, then Jtest Tracer® will capture these operations in "positive" JUnit test cases. If the functionality associated with your use cases later breaks, these test cases will fail.

Establish an Automated Infrastructure for Regular Automated Regression Testing

Collectively, these test cases establish a robust regression test suite that automatically runs on a regular basis to detect defects immediately upon introduction and determine if code modifications break existing functionality. Having such a regression test suite helps developers rapidly change code with confidence, which is especially critical for teams working on complex and constantly-evolving applications.

Even if the team has a large existing code base with no tests or minimal tests, they can use Jtest to create a robust, low-noise regression suite overnight.

Integrate Jtest into the Team's Infrastructure and Workflow

Jtest's support for team deployment standardizes testing team-wide and provides a sustainable workflow for integrating best practices into the team's existing processes—with minimal disruption. The architect defines the team's designated test configurations, then Parasoft Team Configuration Manager (TCM) automatically shares them across all team Jtest installations. Developers can test code directly from their IDE to find and fix problems before adding it to source control. Additionally, Jtest Server can test the entire project code base each evening, then email reports to the manager and responsible developers if any problems are detected. Developers can then import results into their IDEs to review and repair the errors reported for code they authored. Jtest Server also sends information from these tests to the Parasoft Group Reporting System (GRS), which collects and analyzes data from Jtest and other testing products, and then organizes data into role-based dashboards that provide managers, architects, developers, and testers instant visibility into the project's overall quality and status.

Features

  • Automatically creates sensitive low-noise regression test suites—even for large code bases
  • Automatically finds runtime bugs in execution paths that may cross multiple methods, classes, or packages
  • Generates functional JUnit test cases that capture actual code behavior as a deployed application is exercised
  • Generates extendable JUnit and Cactus (in-container) tests that expose reliability problems and capture behavior
  • Executes the test suite to identify regressions and unexpected side effects
  • Parameterizes test cases for use with varied, controlled test input values (runtime-generated, user-defined, or from data sources)
  • Monitors test coverage and achieves high coverage using branch coverage analysis
  • Identifies memory leaks during test execution
  • Steps through tests with the debugger
  • Tests individual methods, classes, or large, complex applications
  • Checks compliance to configurable sets of over 700 built-in rules, including 100 security rules
  • Corrects violations of 250 rules
  • Allows creation of custom rules by modifying parameters, using a graphical design tool, or providing code that demonstrates a sample rule violation
  • Calculates metrics such as Inheritance Depth, Lack Of Cohesion, Cyclomatic Complexity, Nested Blocks Depth, Number Of Children
  • Identifies and refactors duplicate and unused code
  • Supports Struts, Spring, Hibernate, EJBs, JSPs, servlets, and so on
  • Full integration with Eclipse, RAD, JBuilder
  • Limited integration (result import only) with IntelliJ IDEA and Oracle JDeveloper
  • Integration with most popular source control systems
  • Automates the peer code review process (including preparations, notifications, and routing)
  • Shares test settings and files team-wide or organization-wide
  • Generates HTML and XML reports
  • Tracks how test results and code quality change over time
  • Provides GUI (interactive) and command-line (batch) mode

Platforms

  • Windows 2000, Windows XP, Windows 2003 Server, Windows Vista
  • Solaris
  • Linux
  • Mac OS X

Window System Requirements

Operating System

  • Windows 2000, XP, 2003, or Vista

IDE (for plugin version only – not required for standalone version)

  • Eclipse 3.4-3.0, IBM Rational Application Developer 7.5-6.0, JBuilder 2007

Hardware

  • Intel Pentium III 1.0 GHZ minimum; Intel® Pentium IV Single Core 3.0 GHZ recommended
  • SVGA 800x600 display minimum; 1280x1024 recommended
  • 1 GB RAM minimum; 2 GB RAM recommended
  • A mouse or an alternative pointing device

JRE

  • Sun Microsystems JRE 1.3 or higher (32-bit)

Linux/Solaris System Requirements

Operating System

  • Linux: Red Hat Enterprise Linux 3, 4, 5 (glibc version 2.3.2 or higher, package compat-libstdc++-33 installed)
  • Solaris: Solaris 8, 9, or 10
  • Windowing system: Motif xServer or OpenWin (Solaris) or GTK (Linux)

IDE (for plugin version only – not required for standalone version)

  • Eclipse 3.4-3.0, IBM Rational Application Developer 7.5-6.0, JBuilder 2007

Hardware

  • Linux: Intel® Pentium® III 1.0 GHZ minimum; Intel Core 2 Duo 2.0 GHz or higher recommended
  • Solaris: UltraSPARC processor 1.0 GHZ minimum; 2 UltraSPARC processors 1.5 GHz or higher recommended
  • SVGA (800x600) display minimum; 1280 x 1024 or higher recommended
  • 1 GB RAM minimum; 2 GB RAM recommended
  • A mouse or an alternative pointing device

JRE

  • Sun Microsystems JRE 1.3 or higher (32-bit)

Mac System Requirements

Operating System

  • Mac OS X 10.5 or higher

IDE

  • Eclipse 3.2, 3.3, or 3.4

Hardware

  • Intel® Xeon® 2.0 GHz or higher recommended
  • SVGA (800x600) display minimum (1024 x 768 recommended)
  • 1 GB RAM minimum; 2 GB RAM recommended
  • A mouse or an alternative pointing device
Customers
Animation Customers
Partners
Animation Partners
Awards
Awards animation

"It normally takes us two days to create one realistic [functional] test case given the complexity and size of our code base. Using the Jtest Tracer® we are able to generate these realistic test cases in just a few hours. That is a lot of bang for the buck in our organization. We are constantly trying to produce software faster, and get it out there. There is constant pressure on Test to not only test faster but to test effectively in a shorter period of time. Tracer allows us to create more effective test cases in a much shorter span of time.”

Kevin George, Sr. Test Engineer
ADP


"We deployed Parasoft Jtest as part of our effort to improve development productivity and code reliability. Developers are now required to systematically perform Static Analysis and Unit Testing on new and changed code. Parasoft Jtest is used to enforce coding standards and to detect and fix errors early in the development cycle. We are constantly looking at ways to improve our bug detection capabilities and are thrilled to explore the new features in Parasoft Jtest."

Laurent Nicolas, Software Development Manager
Cisco Systems


“Having the ability to automatically generate and execute Cactus tests for our Java EE applications in a live runtime environment makes life easier. Parasoft Jtest has reduced the resources required to ensure the reliability of our core trading systems, where glitches and down-time are not acceptable.”

Anthony Licciardi, Vice President
Lehman Brothers


“Parasoft Jtest takes testing to a whole new level, well beyond any other testing solution. Jtest Tracer® has helped us identify breakages. With high rates of code change, we can’t avoid these problems from occurring, but we can now identify and address them as soon as they occur, which is when it's fastest, easiest, and cheapest to fix them.”

Luis Barbier, Software Consultant
ISO


"Jtest is an extremely effective tool to identify critical software errors. We don’t see repeat errors, and our developers get constant reinforcement of their progress as they improve their code. It has eliminated the prospect of being summoned to the executive suite late at night to explain why an online application has become unavailable again. Jtest has allowed developers to take greater personal responsibility for the quality of their own code."

Mark Figley, Enterprise Architect
AIG United Guaranty


“Jtest allows us to reduce errors at the source, adjust our practices as necessary to eliminate a repeat of that error, and improve our overall software development process that carries forward from project to project. That is where we save real time and money in the long run.”

Giorgio Frondoni, Software Development Manager
Transcore


"Wipro has been using Parasoft Jtest successfully for years... By using Parasoft Jtest globally, we can deliver top-quality code to clients faster and more cost effectively. We have automated and standardized our best practices for providing customers the highest quality code. We have dramatically improved the productivity of our testing efforts and this helps strengthen our position as a global provider of IT solutions.”

Vidya Kabra, Software Engineering Tools Group Head
Wipro


“One of the biggest gains is that Parasoft Jtest has taught engineers how to be better developers. In the process of using Parasoft Jtest, we are getting fewer and fewer defects in the code base because developers are learning how to write better Java.”

Andy Chessin, Technical Leader
Cisco Systems


“[Parasoft Jtest and C++test have] increased confidence in our software, decreased testing time and produced a more reliable product. We are able to double code coverage in our test cases.”

Jeremy Kincaid, Senior Software Engineer
Intermoco

Customers
Animation Customers
Partners
Animation Partners
Awards
Awards animation

Jtest is available in the following editions:

  • Professional Edition: A completely integrated tool suite that enables developers/testers to perform automated code analysis (with built-in coding standards/rules and any custom rules developed in the Architect Edition) and automated unit testing (with automatically-generated and user-defined test cases) and in-container testing from the desktop. Tests that scan multiple classes/files/directories can be performed directly from the development environment, with results immediately reported in the GUI for review/repair. Additionally, problems identified by Server Edition tests can be imported into the GUI for review/repair. The Professional edition is intended to be installed and licensed on every developer and tester desktop.
  • Architect Edition: Includes the Professional Edition functionality, and adds the RuleWizard module, which enables the creation of custom coding standards/rules using a graphical interface. The Architect Edition is intended for use by an architect or the individual responsible for establishing coding standards for the organization.
  • Server Edition: Includes the Architect Edition functionality, and adds support for performing automated code analysis and unit testing as batch or “server” processes. The provided command-line interface can test the complete project code base and be integrated into the automated build process. Results are written to customizable reports, which can be easily accessed by team members and automatically e-mailed to designated recipients. Additionally, developers and testers can import Server Edition test results into the desktop GUI for review/repair.
    The Server Edition also provides:
    • The Team Server module, which enables centralized administration and sharing of coding standards/rule sets, unit testing configurations, and test assets. Team Server is designed for development teams that want to ensure consistency in test practices across the team. When Team Server is implemented team-wide, the architect/lead developer can configure and upload standard team-wide test settings/configurations/files, then Team Server will automatically share them across all team Jtest installations. Team Server may be installed and run on any supported computer system (e.g., one of the developers' workstations, the server hosting a Parasoft Server Edition product, or an independent system).
    • The Code Review module, which automates preparation, notification, and tracking of peer code reviews, addresses the known shortcomings of this very powerful development practice. Jtest automatically identifies updated code by scanning the source control system, matches the code with designated reviewers, and tracks the progress of each review item until closure. With the Code Review module, teams can establish a bulletproof review process—where all new code gets reviewed and all identified issues are resolved.
    • BugDetective, a new static analysis technology that searches a code base for errors which can lead to runtime bugs and application instabilities. By automatically tracing and simulating execution paths that may through even the most complex applications—those with paths that span multiple methods, classes, and/or packages and contain dozens of sequence calls—BugDetective exposes bugs that would be very difficult and time-consuming to find through manual testing or inspections, and would be exponentially more costly to fix if they were not detected until runtime. Using BugDetective, development teams can find, diagnose, and fix classes of software errors that can evade coding standards analysis and/or unit testing.

The following optional licenses are available:

  • Jtest Tracer®: Adds the ability to generate functional test cases that capture actual code behavior as a deployed application is exercised. As testers use the application's GUI or a test client (such as Parasoft SOAtest for SOA/Web services or Parasoft WebKing for Web applications) to execute the use cases they want to verify, Jtest Tracer® captures these operations in "positive" JUnit test cases. The result is a library of realistic test cases against which new code can be tested to ensure it meets specifications and does not “break” existing functionality. This license is required to generate test cases with Jtest Tracer®; it is not required to execute Tracer-generated test cases.
  • Security: Adds a comprehensive knowledgebase of security issues and guidelines that Jtest can apply when scanning and analyzing source code. When applied, this module will search and identify a broad range of security vulnerabilities, including such issues as improper input handing, malicious code, concurrency issues, improper logging, command injections, improper error handling, string formatting issue, denial of service, authentication, and many more. This module provides the ability to define a security policy that will guide, direct, and enforce secure coding practices in application development.
Customers
Animation Customers
Partners
Animation Partners
Awards
Awards animation

Platforms

  • Windows 2000, Windows XP, Windows 2003 Server, Windows Vista
  • Solaris
  • Linux
  • Mac OS X

Window System Requirements

Operating System

  • Windows 2000, XP, 2003, or Vista

IDE (for plugin version only – not required for standalone version)

  • Eclipse 3.4-3.0, IBM Rational Application Developer 7.5-6.0, JBuilder 2007

Hardware

  • Intel Pentium III 1.0 GHZ minimum; Intel® Pentium IV Single Core 3.0 GHZ recommended
  • SVGA 800x600 display minimum; 1280x1024 recommended
  • 1 GB RAM minimum; 2 GB RAM recommended
  • A mouse or an alternative pointing device

JRE

  • Sun Microsystems JRE 1.3 or higher (32-bit)

Linux/Solaris System Requirements

Operating System

  • Linux: Red Hat Enterprise Linux 3, 4, 5 (glibc version 2.3.2 or higher, package compat-libstdc++-33 installed)
  • Solaris: Solaris 8, 9, or 10
  • Windowing system: Motif xServer or OpenWin (Solaris) or GTK (Linux)

IDE (for plugin version only – not required for standalone version)

  • Eclipse 3.4-3.0, IBM Rational Application Developer 7.5-6.0, JBuilder 2007

Hardware

  • Linux: Intel® Pentium® III 1.0 GHZ minimum; Intel Core 2 Duo 2.0 GHz or higher recommended
  • Solaris: UltraSPARC processor 1.0 GHZ minimum; 2 UltraSPARC processors 1.5 GHz or higher recommended
  • SVGA (800x600) display minimum; 1280 x 1024 or higher recommended
  • 1 GB RAM minimum; 2 GB RAM recommended
  • A mouse or an alternative pointing device

JRE

  • Sun Microsystems JRE 1.3 or higher (32-bit)

Mac System Requirements

Operating System

  • Mac OS X 10.5 or higher

IDE

  • Eclipse 3.2, 3.3, or 3.4

Hardware

  • Intel® Xeon® 2.0 GHz or higher recommended
  • SVGA (800x600) display minimum (1024 x 768 recommended)
  • 1 GB RAM minimum; 2 GB RAM recommended
  • A mouse or an alternative pointing device
Copyright © 1996-2010 Parasoft   T: 888-305-0041   E: info@parasoft.com