New Parasoft C/C++test 2020.2 Release Enhances Modern Dynamic Workflows
By Mirek Zielinski
November 12, 2020
7 min read
Jump to Section
Our new C/C++test 2020.2 release increases the productivity of dev teams with new capabilities and enhancements to support modern dynamic workflows. Here’s a quick list:
- Enhanced support for GIT-based workflows
- Enhanced extension for the Visual Studio Code
- New in-file suppressions
- Enhanced performance of the static analysis engine
- Enhanced support for code coverage monitoring and traceability reporting
Other enhancements include:
- VS Code extension integration with Parasoft DTP
- Simplified installers
- Support for new compilers for expanded embedded test development ecosystem
Enhanced Support for Git-Based Workflows
Developers want to receive static analysis results as soon as possible to ensure compliance of their recent source code modifications. With “zero new violations” as the trending policy for many teams, developers want to focus on violations unique to recent modifications in the feature-branch, ignoring pre-existing violations. C/C++test now makes that easy.
The Parasoft C/C++test 2020.2 release introduces two functionalities that improve developer productivity:
- Git-based automatic adaptation of static analysis scope.
- The ability for developers to address only new issues identified within their most recent code changes.
C/C++test can now automatically compare SCM branches and limit the scope of the static analysis to modified files only. Newly identified code violations will be reported in seconds or minutes, instead of hours. Being able to distinguish between new and pre-existing violations allows developers to focus on introduced code changes that affect code safety, security, and overall quality.
Reduced scope of analysis may affect reduced accuracy for some of the checkers that require system-level scans. However, Parasoft C/C++test can combine this fast feedback and focus scans with complete analysis at CI/CD to ensure that nothing slips through a branch merge.
C/C++test 2020.2 supports results baselining. When running a static analysis scan, users can specify a reference report (XML report generated by C/C++test), which allows the current scan to contain only new violation findings. Pre-existing violations will be filtered out.
The functionality helps teams to establish a “zero new violations” policy and focuses developers on new changes. This capability is valuable when dealing with new code edits and with former code releases or legacy code. With this new feature, Parasoft C++test remains the industry leader in simplicity and flexibility of suppressions management.
Enhanced Extension for the Visual Studio Code
We’re thrilled to see how quickly our static analysis extension for the Visual Studio Code has gained adoption. In the VS Code marketplace, we’re getting close to 6,000 downloads. Thank you for your trust!
In this release cycle, we enhanced the extension by integrating it with Parasoft DTP. Users can easily download results from CI/CD scans without running analysis locally.
With the new “Download results from the DTP” command in the VS Code extension, users can obtain static analysis results from sessions executed on remote servers. No more waiting long hours to conduct local static analysis sessions. Users can quickly review problems, fix code, or suppress violations.
Based on user feedback, the enhancements in this release simplify their work approach. Enhanced Git integration with results baselining and DTP integration of the VS Code extension enables teams to implement effective and efficient workflows.
Users can run local and focused scans quickly at their desktops, eliminating the majority of identified problems. They can easily download complete CI/CD results using the DTP integration feature to make sure code is 100% compliant to project or industry standards.
New In-File Suppressions
Managing static analysis suppressions is important for any team that is serious about static analysis. There’s no best way to do it. Some teams suppress by adding comments in the code. Some suppress using meta entries stored in external databases.
Each method has its drawbacks. Either making the code bloated or struggling with configuration management of suppressions, which can often differ between version branches.
In Parasoft C/C++test 2020.2, we introduce a new way—and a third option—to suppress static analysis violations: Adding entries into plain text files that reside together with the source code.
It’s based on feedback from our users who prefer to store tool configuration as a code in the SCM and do not like to “decorate” their code with comments.
This new capability provides developers a straightforward and transparent way to manage suppressions without introducing any modification to the source code files. In turn, it eliminates any need for possible recertification.
These suppression text-based files are easy to customize and manage with UI “suppress” action or manually by editing the file. Plain and simple, one suppression file per source code directory, no additional configuration required. There’s also an automated procedure available to help users migrate old intrusive “local suppressions” to the new separate dedicated text-based file.
The suppression entry format design is intuitive and easy to read and edit. Suppression files are meant to be stored in SCM and live together with the version of the source code for which they apply. These files are intended to be a part of typical branching and merging operations. Developers can also review their suppressions as a part of the code review process and have full control over the suppression life cycle and sharing process. Simple and elegant.
Enhanced Performance of the Static Analysis Engine
The C++ language is becoming a language of choice for many high-profile, AI-based automotive projects. However, as the C++ language continues to evolve, and users adopt the latest editions of the language standards for their project, gaps in support of these modern C++ features, may cause parsing errors, which block users in their testing efforts.
In this release, we upgraded the C/C++test parser to adopt some of the novelties from C++20 and included complete support for C++17.
Users will also find greater accuracy for a collection of static analysis checkers used for AUTOSAR C++14 compliance. These rule updates lower the noise level, preventing unnecessary investigative efforts and increased productivity.
Additionally, this release boosted the static analysis engine’s performance to shorten the duration of analysis for modern C++. We reduced the size of cache data stored for the incremental analysis results, simplifying workspace management activities. This includes cloud-based deployments where cached data has to be persisted between runs.
Enhanced Support for Code Coverage Monitoring & Traceability Reporting
Code coverage monitoring is challenging, especially for large, multi-module projects. For these projects, a complete picture cannot be reached or is impractical to achieve through one local machine’s test execution session. It gets even more complicated when you want to track advanced code metrics like MC/DC.
With C/C++test 2020.2 and DTP 2020.2, users can now add two new widgets to their dashboards:
- C/C++test Coverage Overview – Percent
- C/C++test Coverage Overview – Trend
The new widgets enable monitoring the total percentage of the code coverage for all metrics supported by the C/C++test, including those required by safety standards such as statement, branch, and MC/DC. This high-level overview helps make educated decisions about resource allocation. It shows when compliance requirements are not met and where to focus attention.
To reduce the cost of achieving compliance, even more, we enhanced the Requirements View in C/C++test Professional for Eclipse. Parasoft C/C++test 2020.2 enhanced the automated import and export operations between ALM/RMS tools, simplifying usability, and ensuring traceability.
With the recent enhancements, users can import requirements information in two ways:
- Using ReqIF files.
- Using a preconfigured DTP connection.
This eliminates the need of sharing ReqIF files with team members. DTP’s single-point configuration can access all relevant data in the RMS/ALM systems such as codeBeamer or Polarion. And automatically synchronize requirements across all team members.
Also, the Requirements View is now synchronized with the Test Case Explorer. Requirements View updates whenever user correlates requirements or RMS test definition with a unit test case.
Tested requirements are automatically decorated with a suitable icon. Developers can automatically hide them from view — eliminating unnecessary distractions — to focus only on the remaining work and improve productivity.
Wait, There’s More!
As usual, we added a collection of the new supported compiler configurations:
- Clang 10
- GNU GCC 10
- IAR ARM 8.50
- Metaware ARC compiler 19.03
- ARM Clang 6.14
Aha! There’s one more to introduce: enhanced installers for C/C++test Professional. There’s a huge demand from our user community to simplify and modernize the installation process. With Docker, Cloud and fully automated, security-aware tool deployment processes, it’s no longer practical to operate with executable-style installers.
Our new installers have a simple form of zip-based packages that you can unpack to any suitable location. This is approach is much easier for automatic deployments.
Users can unpack Distro, scan for security, and install patches if needed. You can zip the modified installation back and automatically deploy it to developers’ machines. Alternatively, you can include in Docker images for cloud deployments. All automatically on demand without any manual interaction.
With 2020.2, new installers are available for C/C++test professional standalone and Eclipse plugin as a preview. Users can access them and familiarize themselves with the new installation approach. For our future C/C++test 2021.1 release, we anticipate that users will switch to only use our new installers. However, we’ll provide the old-style installers on demand.
With more and more people working remotely, the ease of use and automation of embedded testing tools became a strategic focus of the release 2020.2. Our user community drives us at Parasoft. We continue to focus on your feedback. Cool things are already in the works to deliver for you in early spring 2021.
To see the new features of Parasoft C/C++test 2020.2 in action, register and watch our webinar live:
- Wednesday, November 18, 11 a.m. – 12 p.m. PT
- Thursday, November 19, 11 a.m. – 12 p.m. CET