This release includes the following enhancements:

Release date: May 29, 2024

Upgrade Note

  • DTP or License Server 2024.1 is required for licensing Jtest 2024.1. You must upgrade to DTP or License Server 2024.1 before upgrading to Jtest 2024.1 in order to license the product successfully.
  • Connections to DTP and License Server must be over HTTPS. HTTP is no longer supported.

Test Impact Analysis Enhancements

  • You can now enable continuous discovery and execution of impacted tests. Jtest will automatically notify you about test failures and changes in the covered code under development; see Test Impact Analysis.
  • The test impact analysis capabilities in Jtest have been made more precise. Impacted tests are now calculated based on modified methods rather than modified classes. Additionally, code changes that do not affect the code logic no longer result in tests being detected as impacted.
  • Impacted tests can now be calculated based on a wider range of methods to determine modified code, including determination of modified methods by analyzing Git commit history in addition to local modifications made in the IDE. For configuration details, see Test Impact Analysis.

Unit Test Assistant Enhancements

  • Jtest introduces test templates which enable you to control the structure of test classes in order to specify common configurations that are required for your particular tests. You can configure the template for the test class and test method individually. The templates can be configured in the Unit Test Assistant preferences; see Configuring Preferences.
  • The capability to create tests for modified methods has been expanded to support determination of modified methods by analyzing Git commit history in addition to local modifications made in the IDE. For configuration details, see Creating Test Suites.
  • Support for @Timeout annotations in Junit 5 has been added.

OpenAI Integration

  • Recommendations for Flow Analysis violations have been enhanced with OpenAI integration.
  • OpenAI responses can now be translated into Chinese or Japanese; see Improving Tests with AI.

Code Coverage Enhancements

  • Improved support for thread tracking in application coverage for multiuser mode.
  • Performance while collecting coverage in IDE has been improved. You can now monitor coverage while executing impacted tests.

Support for Android Kotlin

  • Jtest now supports test execution and collecting coverage from Android Kotlin projects.
  • Jtest test impact analysis also experimentally supports Android Kotlin test execution from the command line.

Support for Java 21

Support for Java 21 has been added:

  • Jtest can now analyze and test code compliant with Java 21 or earlier.
  • Unit tests can be created for code compliant with Java 21 or earlier.

Security Compliance Pack Enhancements

Support for CWE version 4.14 has been added and some configurations have been updated. See the New and Updated Test Configurations section below.

Static Analysis Enhancements

New and Updated Test Configurations

The Security Compliance Pack has been extended by adding support for the following test configuration:

  • CWE 4.14

The following test configurations have been updated:

  • CWE Top 25 2022
  • CWE Top 25 2023
  • CWE Top 25 + On the Cusp 2022
  • CWE Top 25 + On the Cusp 2023
  • Critical Rules
  • Flow Analysis Fast
  • Flow Analysis Standard
  • Flow Analysis Aggressive
  • OWASP ASVS 4.0.3
  • UL 2900
  • VVSG 2.0

The following test configuration has been removed:

  • CWE 4.13

Updated Static Analysis Rules

The following rules have been updated:

Rule ID

Updates

CODSTA.BP.PCFImproved performance and compatibility with Java 17 syntax.
CODSTA.CIOCThe rule has been updated to support Java 21 syntax cases.
CODSTA.DINTThe rule has been updated to support Java 21 syntax cases.
CODSTA.EPC.CLNCImproved performance and compatibility with Java 17 syntax.
CODSTA.OIM.CLONE2Improved performance and compatibility with Java 17 syntax.
CODSTA.ORG.AMOCImproved performance and compatibility with Java 17 syntax.
CODSTA.ORG.DCIImproved performance and compatibility with Java 17 syntax.
CODSTA.ORG.UNDPNImproved performance and compatibility with Java 17 syntax.
CODSTA.POD.SMCThe rule has been updated to support Java 21 syntax cases.
CODSTA.READ.CCBThe rule has been updated to support Java 21 syntax cases.
CODSTA.READ.NSIImproved performance and compatibility with Java 17 syntax.
CODSTA.READ.PCTORImproved performance and compatibility with Java 17 syntax.
CODSTA.READ.UATSThe rule has been updated to support Java 21 syntax cases.
EJB.CDPImproved performance and compatibility with Java 17 syntax.
EJB.CNDAImproved performance and compatibility with Java 17 syntax.
EJB.CNDFImproved performance and compatibility with Java 17 syntax.
EJB.CRTEImproved performance and compatibility with Java 17 syntax.
EJB.MDBCImproved performance and compatibility with Java 17 syntax.
EJB.NFDCImproved performance and compatibility with Java 17 syntax.
EJB.NFSImproved performance and compatibility with Java 17 syntax.
EJB.PCRTEImproved performance and compatibility with Java 17 syntax.
EJB.RILHImproved performance and compatibility with Java 17 syntax.
EJB.RTImproved performance and compatibility with Java 17 syntax.
EJB.RTCImproved performance and compatibility with Java 17 syntax.
EJB.RTPImproved performance and compatibility with Java 17 syntax.
EJB.THISARGImproved performance and compatibility with Java 17 syntax.
EJB.THISRETImproved performance and compatibility with Java 17 syntax.
EXCEPT.AIOCThe rule has been updated to support Java 21 syntax cases.
EXCEPT.NTERRFixed false positive OWASP.2021.N5.NTERR.
FORMAT.APARENThe rule has been updated to support Java 21 syntax cases.
FORMAT.CBRACEThe rule has been updated to support Java 21 syntax cases.
FORMAT.FCBThe rule has been updated to support Java 21 syntax cases.
FORMAT.OSPLThe rule has been updated to support Java 21 syntax cases.
FORMAT.SAPThe rule has been updated to support Java 21 syntax cases.
GC.AUTPImproved performance and compatibility with Java 17 syntax.
GC.DUDImproved performance and compatibility with Java 17 syntax.
GC.GCImproved performance and compatibility with Java 17 syntax.
GC.GCBImproved performance and compatibility with Java 17 syntax.
HIBERNATE.CARImproved performance and compatibility with Java 17 syntax.
HIBERNATE.UGNQImproved performance and compatibility with Java 17 syntax.
INIT.NFSImproved performance and compatibility with Java 17 syntax.
INIT.SICUIImproved performance and compatibility with Java 17 syntax.
JAVADOC.BTThe rule has been updated to support Java 21 syntax cases.
JAVADOC.ECTTThe rule has been updated to support Java 21 syntax cases.
JAVADOC.MISFORMATThe rule has been updated to support Java 21 syntax cases.
JDBC.DSLVImproved performance and compatibility with Java 17 syntax.
JDBC.SCSFImproved performance and compatibility with Java 17 syntax.
JDBC.UDSImproved performance and compatibility with Java 17 syntax.
JUNIT.CSUPERImproved performance and compatibility with Java 17 syntax.
JUNIT.ISMTCImproved performance and compatibility with Java 17 syntax.
JUNIT.TCWNTImproved performance and compatibility with Java 17 syntax.
NAMING.IFVImproved performance and compatibility with Java 17 syntax.
NAMING.RPKGImproved performance and compatibility with Java 17 syntax.
OOP.ACECCImproved performance and compatibility with Java 17 syntax.
OOP.INSOFThe rule has been updated to support Java 21 syntax cases.
OPT.ACDOImproved performance and compatibility with Java 17 syntax.
OPT.AGCImproved performance and compatibility with Java 17 syntax.
OPT.DICImproved performance and compatibility with Java 17 syntax.
OPT.IRBImproved performance and compatibility with Java 17 syntax.
OPT.NCIOThe rule has been updated to support Java 21 syntax cases.
OPT.NSFImproved performance and compatibility with Java 17 syntax.
OPT.SIImproved performance and compatibility with Java 17 syntax.
OPT.UEQImproved performance and compatibility with Java 17 syntax.
OPT.UISOThe rule has been updated to support Java 21 syntax cases.
PB.API.DNCSSImproved performance and compatibility with Java 17 syntax.
PB.API.KOEHFixed errors on String type keys.
PB.API.SBCCImproved performance and compatibility with Java 17 syntax.
PB.API.URLImproved performance and compatibility with Java 17 syntax.
PB.CUB.MAINImproved performance and compatibility with Java 17 syntax.
PB.EQLCThe rule has been updated to support Java 21 syntax cases.
PB.LOGIC.JIImproved performance and compatibility with Java 17 syntax.
PB.NAECSThe rule has been updated to support Java 21 syntax cases.
PB.NUM.IMOFImproved performance and compatibility with Java 17 syntax.
PB.OCSFImproved performance and compatibility with Java 17 syntax.
PB.PDCLThe rule has been updated to support Java 21 syntax cases.
PB.PDSThe rule has been updated to support Java 21 syntax cases.
PB.TYPO.UOLImproved performance and compatibility with Java 17 syntax.
PB.USC.AESImproved performance and compatibility with Java 17 syntax.
PB.USC.FCBSFixed incorrectly reported finding when map compute was used instead of put.
PB.USC.UNARYImproved performance and compatibility with Java 17 syntax.
PROPS.BSPVImproved performance and compatibility with Java 17 syntax.
SECURITY.IBA.DXXEFixed false positive.
SECURITY.WSC.AUICImproved performance and compatibility with Java 17 syntax.
SECURITY.WSC.CLImproved performance and compatibility with Java 17 syntax.
SECURITY.WSC.CLIImproved performance and compatibility with Java 17 syntax.
SECURITY.WSC.DSERImproved performance and compatibility with Java 17 syntax.
SECURITY.WSC.SLImproved performance and compatibility with Java 17 syntax.
SERIAL.ENNACImproved performance and compatibility with Java 17 syntax.
SERIAL.MRWDImproved performance and compatibility with Java 17 syntax.
SERVLET.AJDBCImproved performance and compatibility with Java 17 syntax.
SERVLET.BINSImproved performance and compatibility with Java 17 syntax.
SERVLET.IFImproved performance and compatibility with Java 17 syntax.
SERVLET.STMImproved performance and compatibility with Java 17 syntax.
TRS.IMSEImproved performance and compatibility with Java 17 syntax.
UC.AURCOFixed false positive for Map.computeIfAbsent().
UC.EFThe rule has been updated to support Java 21 syntax cases.

Updated Flow Analysis Rules

The following rules have been updated:

Rule ID

Updates

BD.PB.CCAdded a parameter to report on non-branching conditions.
BD.PB.SBONERule updated to consider new methods of StringBuffer and StringBuilder classes.

Support for IDEs

The following IDEs are now supported:

  • IntelliJ 2023.3
  • IntelliJ 2024.1
  • Eclipse 2023-12 (4.30)
  • Eclipse 2024-03 (4.31)

Additional Updates

  • Authentication can now be enabled for connecting to a standalone License Server if it is configured to require authentication; see Setting the Parasoft License and license.network.auth.enabled.
  • Support for Lombok 1.18.32 has been added.
  • You can now specify custom parameters to be added to the report.xml header using the report.xml.param{n}.key and report.xml.param{n}.value settings.
  • The following licensed features have been renamed:
    Old nameNew name
    Unit Test Bulk CreationUnit Test Single Class Creation
    Unit Test Tier 1Unit Test Bulk Creation Tier 1
    Unit Test Tier 2Unit Test Bulk Creation Tier 2
    Unit Test Tier 3Unit Test Bulk Creation Tier 3
    Unit Test Tier 4Unit Test Bulk Creation Tier 4
     
    Ensure the correct feature name is listed in your License settings; see jtest.license.custom_edition_features.
  • The default report file names have changed for the following supported formats:
    Report FormatBeforeNow

    SARIF for Azure DevOps

    report.sarifreport_azure.sarif

    XSL Custom

    report.htmlreport_custom.html

    For details, see Report File Names.

Known Limitations

AI recommendations generated for CDD and METRIC rules, as well as .properties and .xml files, may not be accurate and should not be relied upon. See Generating a Suggested Fix.

Removed Support

Removed Support for IDEs

Support for the following IDEs is now removed:

  • IntelliJ 2020.1 - 2021.3
  • Eclipse 4.8 - 4.22

As a result, Java 11 is now required for running Jtest in an IDE or as part of a build system integration. Java 1.8 is no longer compatible.

Removed Rules

Removed Rule

Suggested Rule

BD.PB.DEREFBD.PB.CC
BD.PB.INTOVERFBD.PB.INTDL, BD.PB.INTUB, BD.PB.INTVC and BD.PB.INTWRAP
BD.PB.POVRBD.PB.VOVR

Resolved Bugs and FRs

Bug/FR ID

Description

JT-75934JtestCov does not recognize a modified files correctly
JT-75937Lombok integration and Java
JT-76175False positive OWASP.2021.N5.NTERR
JT-76235How to fix the code for JAVA.SECURITY.IBA.DXXE

  • No labels