On January 29th, the MISRA and AUTOSAR consortiums announced a merger of the two most popular coding standards for safety-critical C++ development, clarifying two critical things:
This is excellent news for the growing number of organizations developing safety-critical systems in C++, who can now confidently invest in their compliance processes for AUTOSAR C++ 14 because the future of the standard is well defined.
Expecting this merger to happen, Parasoft heavily invested in enhancing the support for the AUTOSAR C++ 14 coding guidelines. The latest release of Parasoft C/C++test brings an updated automotive compliance pack, and enhancements to static analysis performance. Teams working with large codebases can now improve their productivity by shorter feedback cycles and the ability to review results freshly after source code was changed.
On the runtime testing side of things, we were working to support our customers collecting code coverage metrics from application/system level testing. An enhanced code coverage module simplifies the setup process, enables users to collect all type of coverage metrics from system/integration/unit testing and supports merging them to generate unified reports.
Read more below!
Parasoft C/C++test’s Automotive Compliance Pack now supports the latest version of AUTOSAR C++ 14 Coding Standard. The newest version, 18.10, was released in October 2018, and introduces significant improvements over the previous editions of the coding guidelines. There are new guidelines added to the standard, and some guidelines have new IDs. Teams planning the migration to the latest edition of the coding guidelines should put aside some time budget to analyze the enhancements in the standard to avoid surprises when reviewing compliance reports.
The new C/C++test release brings the best coverage for the AUTOSAR coding standard available on the market, combined with dedicated compliance reporting. This powerful solution helps organizations in creating AUTOSAR C++14 compliant code accelerate the process of achieving compliance. The reporting framework helps in managing the compliance process and automatically generates the compliance documentation conforming to the “MISRA 2016” standard, significantly reducing the manual overhead on the compliance activities.
With the C/C++test 10.4.2 release, the static analysis engine responsible for monitoring compliance with pattern-based rules is now optimized to reduce the analysis time in incremental builds and shorten the feedback cycles between modifying the code and reviewing static analysis results.
The enhancement responds to the growing size of code bases and increasing use of advanced build systems like Bazel, which heavily utilize team-wide caching and incremental approach to building the source code. It is expected that shorter feedback loops should improve developer productivity, since they can sooner react to reported problems while the modified code is still fresh in their mind. These optimizations were designed for CI/CD deployment, but users working in the IDE can also benefit from them and experience shortened analysis.
To help our users effectively monitor the thoroughness of their system/integration level testing, we’ve enhanced the Parasoft C/C++test code coverage module to better support complex build systems. Users can now select the simplified setup path without creating a dedicated project in the IDE to prepare the instrumented binary. C/C++test now provides a lightweight code coverage utility which can be easily integrated into any build system and used for preparing test binaries. The generated coverage build can be exercised with a user’s set of test scenarios, and collected coverage logs can be merged to get the full image of the code coverage results. In addition, users can combine code coverage results from system, integration, and unit level testing to get the full picture of their testing efforts.
Reports can be generated automatically using the command line interface or loaded to IDE for developers analysis and closing the gaps with point-unit tests. The enhanced solution utilizes previously-existing C/C++test components to provide the most effective way for achieving 100% of code coverage for industry popular metrics, starting from statement coverage, going through the block, call, and condition coverage, ending on MC/DC coverage metric.
Our last three releases were strongly focused on enhancing static analysis. We worked to make our static analysis checkers more precise, time-efficient, and to provide our users with the best coverage for important safety and security coding standards on the market. We are getting very good feedback! Especially customers appreciate the broad coverage of CERT, MISRA, and AUTOSAR — a critical factor when selecting a new static analysis tool on the very competitive market.
Looking into the near future, we will be investing some more time in C/C++test’s dynamic testing capabilities, especially the unit testing framework. We have a collection of innovations queued up in our backlog which are crying to be implemented. We can’t leave them waiting too long … expect some interesting unit testing goodies in the autumn this year!
Product Manager for Parasoft's embedded testing solutions, Miroslaw's specialties include C/C++, RTOSes, static code analysis, unit testing, managing software quality for safety critical applications, and software compliance to safety standards.