This release includes the following enhancements:

Release date: November 2, 2021

Integration with Azure DevOps and GitLab

We've added enhancements to help you streamline your workflows with CI systems. You can now conveniently review results reported by Jtest directly in Azure Pipelines or GitLab.

Integration with Azure DevOps

We've added the Jtest extension for Azure DevOps, which allows you to easily integrate Jtest with your Azure DevOps pipeline. The extension provides a task for running analysis with Jtest and generating the Jtest report in the Azure DevOps-specific SARIF format. The analysis results are then displayed in build results for each execution of your pipeline. See https://marketplace.visualstudio.com/items?itemName=parasoft.jtest-azure-devops for details.

Integration with GitLab

You can now integrate with GitLab by modifying your GitLab workflow to run analysis with Jtest and generate the analysis report in the SAST format. This allows you to review results reported by Jtest as code vulnerabilities in GitLab. See https://gitlab.com/parasoft/jtest-gitlab for details.

Enhanced Unit Test Assistant

We've introduced new features and enhancements to the existing functionality to help you streamline the test creation process and conveniently configure the UTA options.

New UTA Features and Enhancements

New Coverage Options

UTA now creates multiple test cases per method that cover different code branches in the method under test. You can create test suites optimized for one of the following:

  • Maximum code coverage – UTA will create tests to cover the maximum possible number of execution paths using the minimum number of tests required to do so.
  • Test suite maintainability - UTA will create fewer tests that cover the main execution paths, resulting in tests that are less complex and more maintainable.

See Creating Test Suites for details.

Automatically Adding Assertions

UTA now adds assertions to the tests that it generates during bulk test creation using the Create test suite option (formerly Add test case(s); see Other Changes to UTA).  After generating tests, UTA runs the tests and captures the behavior of the code under test, adding assertions that verify the return value of the method under test (if there is one) and fields in the class under test that change. See Creating Test Suites.

UTA Enhancements

  • The Add test cases(s) option was renamed to Create test suite and the options in the dialog were simplified to only expose the most commonly used options. All other options were moved to the preferences. See Other Changes to UTA.
  • UTA now supports projects that use the Lombok framework.
  • Test cases that exercise code that is expected to throw an exception now are configured to expect the exception to be thrown.
  • We've added enhanced support for @InjectMocks.
  • We've improved initialization of Strings to values that are required to cover specific blocks of code in the method under test.
  • We've improved initialization of values passed to factory methods to cover specific blocks of code in the method under test.

Other Changes to UTA

AreaUpdatesReferences
Bulk creation of test cases
  • The Add test case(s) option was renamed to Create test suites.
  • Tests created with the Create test suites option are now automatically run using the Track and make assertions functionality to add assertions.
Creating parameterized tests
  • Creating parameterized tests must now be enabled and configured in the UTA preferences.
  • Parameterized tests are no longer created with the Create test suites (formerly Add test case(s)) option. You can only create parameterized test cases with the Parameterized option in the Unit Test Assistant view.
  • The options to configure parameterized tests have been moved from the bulk creation dialog to the UTA preferences.
Creating Spring tests
  • Creating Spring tests must now be enabled and configured in the UTA preferences.
  • Spring tests are no longer created with the Create test suites (formerly Add test case(s)) option.  You can only create Spring test cases with one of the Spring options in the Unit Test Assistant view.
  • The options to configure parameterized tests have been moved from the bulk creation dialog to the UTA preferences.
Preferences

The configuration options are now better organized to help you quickly and intuitively configure UTA.

Timeout for test executionThe Configure tests with timeout (in ms) option has been moved from the bulk creation dialog to the Preferences page.
Assertion templates

Enabling the Generate sample assertions option no longer results in adding assertion templates to the test code when tests are created with the Create test suites (formerly Add test cases(s)) option.

Running Jtest from a Docker Container

We've added support for deploying Jtest in a Docker container image. Running Jtest from a Docker container allows you to leverage Jtest's capabilities in a containerized environment to ensure consistency across the team and multiple development cycles. See Deploying Jtest in a Docker Container.

Extended Support for Java

Jtest can now analyze code written in Java 16 and 17.

Support for IDEs

We've added support for the following IDEs:

  • IntelliJ 2021.1
  • Eclipse 2021-03 (4.19)
  • Eclipse 2021-06 (4.20)
  • Eclipse 2021-09 (4.21)1

1 This IDE runs with Java 16, which may impact Test Impact Analysis. See Known Limitations for information about the workaround.

Support for Cucumber

You can now integrate Jtest with Cucumber – a tool that reads executable specifications written in a natural language. Integrating with Cucumber allows Jtest to report results and collect coverage data for Cucumber tests. See Integrating with Cucumber.

Extended Security Compliance Pack

We've extended the Security Compliance Pack by adding support for the latest versions of CWE and OWASP Top 10. See the New and Updated Test Configurations section below.

New and Updated Test Configurations

We've added the following test configurations:

  • CWE 4.5
  • CWE Top 25 2021
  • CWE Top 25 + On the Cusp 2021
  • OWASP Top 10-20211

 1This is a preview version of the test configuration, which is not part of Parasoft Compliance Pack solution. Reviewing rule violations using the compliance extensions on DTP is not supported.

Removed Test Configurations

  • CWE 4.4
  • CWE Top 25 2020
  • CWE Top 25 + On the Cusp 2020

New and Updated Static Analysis Rules

We've added the following rules:

Rule IDHeader
SECURITY.WSC.IDPAvoid setting the write or execute file permissions to unintended users

We've updated the following rules:

  • BD.SECURITY.TDRESP
  • SECURITY.WSC.MCNC
  • UC.UIMPORT

Accepting the Parasoft End User License Agreement

You must accept the Parasoft End User License Agreement (EULA) to use Jtest. The Parasoft EULA is available in the Jtest installation directory and at https://www.parasoft.com/license.

To agree to the terms of the EULA, enable the following setting in your jtestcli.properties configuration file: parasoft.eula.accepted=true.

If you install the Parasoft Plugin in your IDE, you will be prompted to accept the EULA by the installation wizard and the EULA acceptance setting will be automatically added to the jtestcli.properties file.

Other Enhancements

Resolved Bugs and FRs

Bug/FR IDDescription
FA-8624False positive for BD.EXCEPT.NP. BD.EXCEPT.NP triggers for variables that are assigned to a non-null value in a for loop.
FA-8650Incorrect CFG after trying to simplify chained casts
JT-73624 Exception while closing the database
JT-73664NPE in SECURITY.WSC.MCNC rule
JT-73698Can we skip Lombok autogenerated code when performing analysis?
JT-73720UC.UIMPORT false positive
UTA-5250Support for Lombok framework
XT-39322 Proxy settings are not applied when requesting for license in lightweight Parasoft Plugin

  • No labels