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
- Simplified presentation of one-line Flow Analysis violations.
- The performance of several RuleWizard rules has been improved; see Updated Static Analysis Rules.
- Improvements to several rules to support Java 17 and 21 syntax; see Updated Static Analysis Rules.
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.PCF | Improved performance and compatibility with Java 17 syntax. |
CODSTA.CIOC | The rule has been updated to support Java 21 syntax cases. |
CODSTA.DINT | The rule has been updated to support Java 21 syntax cases. |
CODSTA.EPC.CLNC | Improved performance and compatibility with Java 17 syntax. |
CODSTA.OIM.CLONE2 | Improved performance and compatibility with Java 17 syntax. |
CODSTA.ORG.AMOC | Improved performance and compatibility with Java 17 syntax. |
CODSTA.ORG.DCI | Improved performance and compatibility with Java 17 syntax. |
CODSTA.ORG.UNDPN | Improved performance and compatibility with Java 17 syntax. |
CODSTA.POD.SMC | The rule has been updated to support Java 21 syntax cases. |
CODSTA.READ.CCB | The rule has been updated to support Java 21 syntax cases. |
CODSTA.READ.NSI | Improved performance and compatibility with Java 17 syntax. |
CODSTA.READ.PCTOR | Improved performance and compatibility with Java 17 syntax. |
CODSTA.READ.UATS | The rule has been updated to support Java 21 syntax cases. |
EJB.CDP | Improved performance and compatibility with Java 17 syntax. |
EJB.CNDA | Improved performance and compatibility with Java 17 syntax. |
EJB.CNDF | Improved performance and compatibility with Java 17 syntax. |
EJB.CRTE | Improved performance and compatibility with Java 17 syntax. |
EJB.MDBC | Improved performance and compatibility with Java 17 syntax. |
EJB.NFDC | Improved performance and compatibility with Java 17 syntax. |
EJB.NFS | Improved performance and compatibility with Java 17 syntax. |
EJB.PCRTE | Improved performance and compatibility with Java 17 syntax. |
EJB.RILH | Improved performance and compatibility with Java 17 syntax. |
EJB.RT | Improved performance and compatibility with Java 17 syntax. |
EJB.RTC | Improved performance and compatibility with Java 17 syntax. |
EJB.RTP | Improved performance and compatibility with Java 17 syntax. |
EJB.THISARG | Improved performance and compatibility with Java 17 syntax. |
EJB.THISRET | Improved performance and compatibility with Java 17 syntax. |
EXCEPT.AIOC | The rule has been updated to support Java 21 syntax cases. |
EXCEPT.NTERR | Fixed false positive OWASP.2021.N5.NTERR. |
FORMAT.APAREN | The rule has been updated to support Java 21 syntax cases. |
FORMAT.CBRACE | The rule has been updated to support Java 21 syntax cases. |
FORMAT.FCB | The rule has been updated to support Java 21 syntax cases. |
FORMAT.OSPL | The rule has been updated to support Java 21 syntax cases. |
FORMAT.SAP | The rule has been updated to support Java 21 syntax cases. |
GC.AUTP | Improved performance and compatibility with Java 17 syntax. |
GC.DUD | Improved performance and compatibility with Java 17 syntax. |
GC.GC | Improved performance and compatibility with Java 17 syntax. |
GC.GCB | Improved performance and compatibility with Java 17 syntax. |
HIBERNATE.CAR | Improved performance and compatibility with Java 17 syntax. |
HIBERNATE.UGNQ | Improved performance and compatibility with Java 17 syntax. |
INIT.NFS | Improved performance and compatibility with Java 17 syntax. |
INIT.SICUI | Improved performance and compatibility with Java 17 syntax. |
JAVADOC.BT | The rule has been updated to support Java 21 syntax cases. |
JAVADOC.ECTT | The rule has been updated to support Java 21 syntax cases. |
JAVADOC.MISFORMAT | The rule has been updated to support Java 21 syntax cases. |
JDBC.DSLV | Improved performance and compatibility with Java 17 syntax. |
JDBC.SCSF | Improved performance and compatibility with Java 17 syntax. |
JDBC.UDS | Improved performance and compatibility with Java 17 syntax. |
JUNIT.CSUPER | Improved performance and compatibility with Java 17 syntax. |
JUNIT.ISMTC | Improved performance and compatibility with Java 17 syntax. |
JUNIT.TCWNT | Improved performance and compatibility with Java 17 syntax. |
NAMING.IFV | Improved performance and compatibility with Java 17 syntax. |
NAMING.RPKG | Improved performance and compatibility with Java 17 syntax. |
OOP.ACECC | Improved performance and compatibility with Java 17 syntax. |
OOP.INSOF | The rule has been updated to support Java 21 syntax cases. |
OPT.ACDO | Improved performance and compatibility with Java 17 syntax. |
OPT.AGC | Improved performance and compatibility with Java 17 syntax. |
OPT.DIC | Improved performance and compatibility with Java 17 syntax. |
OPT.IRB | Improved performance and compatibility with Java 17 syntax. |
OPT.NCIO | The rule has been updated to support Java 21 syntax cases. |
OPT.NSF | Improved performance and compatibility with Java 17 syntax. |
OPT.SI | Improved performance and compatibility with Java 17 syntax. |
OPT.UEQ | Improved performance and compatibility with Java 17 syntax. |
OPT.UISO | The rule has been updated to support Java 21 syntax cases. |
PB.API.DNCSS | Improved performance and compatibility with Java 17 syntax. |
PB.API.KOEH | Fixed errors on String type keys. |
PB.API.SBCC | Improved performance and compatibility with Java 17 syntax. |
PB.API.URL | Improved performance and compatibility with Java 17 syntax. |
PB.CUB.MAIN | Improved performance and compatibility with Java 17 syntax. |
PB.EQLC | The rule has been updated to support Java 21 syntax cases. |
PB.LOGIC.JI | Improved performance and compatibility with Java 17 syntax. |
PB.NAECS | The rule has been updated to support Java 21 syntax cases. |
PB.NUM.IMOF | Improved performance and compatibility with Java 17 syntax. |
PB.OCSF | Improved performance and compatibility with Java 17 syntax. |
PB.PDCL | The rule has been updated to support Java 21 syntax cases. |
PB.PDS | The rule has been updated to support Java 21 syntax cases. |
PB.TYPO.UOL | Improved performance and compatibility with Java 17 syntax. |
PB.USC.AES | Improved performance and compatibility with Java 17 syntax. |
PB.USC.FCBS | Fixed incorrectly reported finding when map compute was used instead of put. |
PB.USC.UNARY | Improved performance and compatibility with Java 17 syntax. |
PROPS.BSPV | Improved performance and compatibility with Java 17 syntax. |
SECURITY.IBA.DXXE | Fixed false positive. |
SECURITY.WSC.AUIC | Improved performance and compatibility with Java 17 syntax. |
SECURITY.WSC.CL | Improved performance and compatibility with Java 17 syntax. |
SECURITY.WSC.CLI | Improved performance and compatibility with Java 17 syntax. |
SECURITY.WSC.DSER | Improved performance and compatibility with Java 17 syntax. |
SECURITY.WSC.SL | Improved performance and compatibility with Java 17 syntax. |
SERIAL.ENNAC | Improved performance and compatibility with Java 17 syntax. |
SERIAL.MRWD | Improved performance and compatibility with Java 17 syntax. |
SERVLET.AJDBC | Improved performance and compatibility with Java 17 syntax. |
SERVLET.BINS | Improved performance and compatibility with Java 17 syntax. |
SERVLET.IF | Improved performance and compatibility with Java 17 syntax. |
SERVLET.STM | Improved performance and compatibility with Java 17 syntax. |
TRS.IMSE | Improved performance and compatibility with Java 17 syntax. |
UC.AURCO | Fixed false positive for Map.computeIfAbsent(). |
UC.EF | The 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.CC | Added a parameter to report on non-branching conditions. |
BD.PB.SBONE | Rule 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 name New name Unit Test Bulk Creation Unit Test Single Class Creation Unit Test Tier 1 Unit Test Bulk Creation Tier 1 Unit Test Tier 2 Unit Test Bulk Creation Tier 2 Unit Test Tier 3 Unit Test Bulk Creation Tier 3 Unit Test Tier 4 Unit 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 Format Before Now SARIF for Azure DevOps
report.sarif report_azure.sarif XSL Custom
report.html report_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.DEREF | BD.PB.CC |
BD.PB.INTOVERF | BD.PB.INTDL, BD.PB.INTUB, BD.PB.INTVC and BD.PB.INTWRAP |
BD.PB.POVR | BD.PB.VOVR |
Resolved Bugs and FRs
Bug/FR ID | Description |
---|---|
JT-75934 | JtestCov does not recognize a modified files correctly |
JT-75937 | Lombok integration and Java |
JT-76175 | False positive OWASP.2021.N5.NTERR |
JT-76235 | How to fix the code for JAVA.SECURITY.IBA.DXXE |