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 suite(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
Area | Updates | References |
---|---|---|
Bulk creation of test cases |
| |
Creating parameterized tests |
| |
Creating Spring tests |
| |
Preferences | The configuration options are now better organized to help you quickly and intuitively configure UTA. | |
Timeout for test execution | The 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 ID | Header |
---|---|
SECURITY.WSC.IDP | Avoid 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
- We've added support for Gradle 7.0.
- We've added support for Lombok 1.18.20.
- You can now connect with the Jtest coverage agent via the HTTPS protocol. See Connecting with the Coverage Agent via HTTPS.
Resolved Bugs and FRs
Bug/FR ID | Description |
---|---|
FA-8624 | False positive for BD.EXCEPT.NP. BD.EXCEPT.NP triggers for variables that are assigned to a non-null value in a for loop. |
FA-8650 | Incorrect CFG after trying to simplify chained casts |
JT-73624 | Exception while closing the database |
JT-73664 | NPE in SECURITY.WSC.MCNC rule |
JT-73698 | Can we skip Lombok autogenerated code when performing analysis? |
JT-73720 | UC.UIMPORT false positive |
UTA-5250 | Support for Lombok framework |
XT-39322 | Proxy settings are not applied when requesting for license in lightweight Parasoft Plugin |