Simplify & Streamline Embedded Testing With Parasoft C/C++test
By Miroslaw Zielinski
May 12, 2021
5 min read
Embedded testing comes with several challenges. Check out how the release of Parasoft C/C++test 2021.1 can help simplify embedded testing, while also helping to meet compliance standards.
Jump to Section
Embedded testing and development teams get the speed and efficiency of a modern, highly automated CI/CD pipeline with the release of Parasoft C/C++test 2021.1. The latest release provides teams with fully integrated static and unit testing for delivery of continuous compliance and quality.
The new release continues its comprehensive support for the latest compliance standards, including the most recent release of MISRA C 2012. To efficiently achieve compliance with DISA ASD STIG security guidelines, the C/C++test 2021.1 release introduces a new configuration and support.
This release introduces new capabilities for software architectural analysis and continues our focus on Git-based workflows.
- Dedicated GitHub integration with new static analysis reports in SARIF format
- Support for software architecture analysis and enforcement (Lattix Architect integration)
- Enhanced extension for the Visual Studio Code plugin
Other important enhancements include:
- New code coverage extension for CMake projects
- Streamlined C/C++test deployments
- Support for Jama requirements traceability reporting
- Support for new compilers and IDE
See Parasoft C++test in action!
Dedicated GitHub Integration
C/C++test integration with GitHub workflows is now streamlined. The new release provides a dedicated GitHub Action, Run Parasoft C/C++test, which enables you to run code analysis with Parasoft C/C++test and review the analysis results directly on GitHub. Action’s documentation includes examples of the GitHub workflows that you may use as a base for your workflows. Read more about the C/C++test GitHub Action.
The new GitHub Action simplifies C/C++test integration into workflows and enables new static analysis reports in the SARIF format, which are automatically uploaded to GitHub. When C/C++test is included in the GitHub workflow, static analysis results are available in the Security tab as “Code scanning alerts.” They’re also included in your pull requests. This makes the static analysis deployment seamless and fully integrated with your workflows.
Support for Software Architecture Analysis & Enforcement With Lattix Architect Integration
Proper software architecture has a tremendous impact on the development, testing, compliance, and maintenance effort. Teams paying attention to the quality of their architecture reap short and long-term benefits. Our latest release brings new capabilities for analyzing, defining, and enforcing software architecture with the Lattix Architect integration.
Lattix Architect relies on code analysis data produced by C/C++test and offers its unique visualization, based on dependency structure matrix (DSM) technology, to quickly identify and remediate architectural issues. DSM-based visualization has been accessed by many customers to be easier to understand than graph-based representation, especially for larger projects. A good understanding of software dependencies helps in perfecting software architecture builds, testing, and satisfying compliance requirements.
The Heat Map is another useful view which aggregates code coverage, static analysis, and architecture findings into one holistic view of code quality. It shows all the critical quality data through the lens of the architecture which helps expose compliance gaps and therefore business risks.
Additionally, teams can include C/C++test and Lattix Architect in the CI/CD workflow and produce reports that integrate with the merge requests.
On-Demand Webinar: Achieve Faster Compliance to ISO 26262 With Lattix and Parasoft in a GitLab CI Pipeline
Enhanced Extension for the Visual Studio Code Plugin
The popularity of our extension for the Visual Studio Code continues to grow, and as a result, we continue to enhance it. Our most recent update simplifies VSCode usage for CI/CD workflows.
Users are now able to download static analysis results generated in the pipeline directly to this favorite code editor and work on the problems without switching between VSCode and the browser. These small productivity things matter to us!
There is also a dedicated command for GitHub, which recognizes your current repository and automatically finds the location of the static analysis report produced by the Run Parasoft C/C++test GitHub action. Once results are imported, you can analyze them in the Problems view and jump directly to the problem code to remediate.
There is a more generic variant of this action that enables downloading C/C++test static analysis results using a URL location. You can use it for accessing results produced by Jenkins or another CI/CD platform. To learn more about this functionality, download or update the extension from the Microsoft Marketplace. Go to the extension’s front page Details tab.
New Code Coverage Extension for CMake Projects
If you use CMake to build your code, you can now seamlessly integrate code coverage measurements into your project and get a better understanding of your testing completeness to satisfy functional safety standard requirements in code coverage.
C/C++test code coverage, unlike gcov, supports all relevant coverage metrics, including statement, branch, MC/DC, function, and call coverage that are important for standards like ISO 26262.
Our new extension also generates code coverage reports from your integration and system-level testing, which you can then merge with the already available unit testing code coverage report.
Adding the extension to your project is quite simple. All you need to do is add an “include” directive to your existing CMakeLists.txt file and that’s it. The extension has already been validated in combination with Make and Ninja build engines.
Using Parasoft C/C++test With CMake for Unit Testing
For current Parasoft practitioners, the long-existing “Timer” project example has been extended to demonstrate using Parasoft C/C++test with CMake for unit testing.
Streamlined C/C++test Deployments
In the 2020.2 release, we introduced a preview version of our simplified, archive-based installers for C/C++test Professional (Eclipse). In the current 2021.1 release, archive-based installers are official and replace now deprecated executable-style installers. This is in part of our continuous effort to streamline and modernize deployments in the era of cloud, virtualization, and containerization.
If you didn’t get a chance to update your installation process yet, you can still download the legacy installers via the Customer Portal. Please be aware, we plan to remove them in a future release.
Transitioning to the new installers is exceptionally smooth based on feedback from all our early adopters. If you’re using C/C++test standalone, all you need to do is unzip the package any place you want and start using the tool. For those that already have an automated deployment process, which for example includes the preparation of Docker containers, your scripts for sure will get simpler to configure.
If you need more information, there’s a short migration guide available in the Customer Portal to facilitate your switch.
Support for Jama Requirements Traceability & Reporting
Among many integrations we have added in this release, there is an integration with Jama connect, for requirements traceability, risk, and test management.
With this new integration, C/C++test unit testing results are correlated in Parasoft DTP with the Jama requirements and presented in the form of traceability reports which are needed for functional safety standards compliance. DTP also propagates unit testing results back to Jama by incorporating them into the proper requirements or test specifications.
In addition, when reviewing static analysis or unit testing results in DTP, users can automatically create a work item/task in Jama to address identified coding violations and software bugs.
Support for New Compilers & IDEs
With 2021.1 we introduce the integration with Texas Instrument’s Code Composer Studio version 10.x, and as usual, a collection of the new supported compiler configurations. Here’s a quick list.
- IAR BXARM Compiler for ARM v. 8.50.x
- Green Hills Software Compiler for ARM64 v. 2020_1.x
- QNX GCC 8.x (x86-64)
- QNX GCC 8.x (ARM64)
- TI ARM C/C++ Compiler v20.2
Looking Into the Future
With more and more teams transitioning to Git-based CI/CD platforms, we will continue our efforts in simplifying our integrations into these popular systems. Similarly, as we have done with GitHub in the current release, we plan to build integrations with other popular CI/CD solutions. And, we’ll be looking into adopting new static analysis rules, providing even more streamlined code coverage, and many other valuable features.
See Parasoft C/C++test in Action!
“MISRA”, “MISRA C” and the triangle logo are registered trademarks of The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. All rights reserved.