Want to see Parasoft in action? Sign up for our Monthly Demos! See Demos & Events >>
Introducing the first release of Parasoft C/C++test in 2020: 2020.1! You may notice the versioning schema looks different. In the past, all Parasoft tools were versioned with incremental numbers. Starting this year, the versions of all releases will include the year followed by the number of the release in that year.
Over the last few months, our team took the time to analyze how to enhance C/C++test to best fit evolving environments. We created new functionalities and enhancements to the existing core features. C/C++test 2020.1 brings a collection of exciting new functionalities.
The evolution of development environments is accelerating. New, advanced systems that are often AI-based require a lot of source code, which cannot be developed using the same tools, methodologies, and workflows of the past. With C/C++test 2020.1, we aimed to accommodate these evolutionary strides and produced a set of offerings that do just that.
There is a trend among development teams to move away from heavy IDEs to lightweight and extensible editors. Partly because large codebases containing millions of lines of code are too difficult for traditional IDEs.
Visual Studio Code is an excellent example of an extensible lightweight editor. In the Stack Overflow Annual Developer Survey for 2019, VS Code completely dominated the Most Popular Development Environments category. That’s why I’m happy to announce C/C++test static analysis extension for the Visual Studio Code Editor.
If you are developing with VSCode, you no longer need to leave your favorite editor behind to run static analysis, review results, or fix reported violations.
Maybe you’re trying to achieve MISRA or AUTOSAR C++ compliance? It all can be done from VSCode.
The C/C++test extension for VSCode can be found inside the C/C++test standard distribution (vsix file) or accessed from the Visual Studio Code Marketplace. You can learn more about the features of the extension in our upcoming VSCode blog post.
Containerized deployments of software tools are the new mantra for development teams. You can:
These and many other cumbersome and time-consuming tasks are made easy with containers. They’re great in so many ways.
The release of C/C++test 2020.1 offers a collection of enhancements that make it easy to use with Docker containers.
C/C++test supports any compiler that’s deployed in the container as well as the deployment of the Parasoft C/C++test tool itself within the container. It’s easy to configure Parasoft C/C++test to work in a containerized environment for static analysis and unit testing. You can also create a container image that’s ready to execute static analysis.
Want to learn more? Check out our webinar, Containerized Deployments of Embedded Development Toolchains.
CMake is probably the most popular tool for managing builds and tests, packaging software, and deploying it in the C/C++ world. Teams love CMake because it abstracts the build targets and automatically generates the build scripts for multiple build engines. It’s also important to mention that it scales easily for large projects.
Parasoft C/C++test 2020.1 offers a CMake extension, which simplifies the introduction of automated software testing into the build process.
Static analysis can also be effortlessly integrated with the help of compile-info JSON files generated by CMake. Learn how in our blog post, Using Parasoft C/C++test With CMake for Static Analysis.
C/C++test unit testing with CMake is now made easier. Special unit testing targets that automatically generate the necessary test infrastructure can be defined in CMakeLists.txt files with a dedicated function that is provided with the C/C++test extension.
The creation of productive unit tests has always been a challenge. Functional safety standards compliance demands high-quality software, which drives a need for test suites that affect and produce high code coverage statistics. Teams require unit test cases that help them achieve 100% code coverage.
This is easier said than done. Analyzing branches in the code, and trying to find reasons why certain code sections aren’t covered, continues to steal cycles from development teams.
The release of C/C++test introduces the brand new functionality that helps resolve the coverage gaps in the code. Parasoft discovered how to use advanced static code analysis (data and control flow analysis) to find values for the input parameters required to execute specific lines of uncovered code.
Select the line of code you want to cover and the Coverage Advisor will tell you what input values, global variables, and external calls you need to stimulate the code and obtain coverage.
Parasoft presented this capability at the Embedded World 2020 event, and it was very well received by the conference audience as well as by industry practitioners who visited our booth.
One of the biggest challenges in the adoption of static analysis is the ability to distinguish important violations from the less important ones. Critical issues should be addressed first. Low priority or noisy findings should be either ignored or the reaction should be postponed until critical results are addressed.
In the C/C++test 2020.1 release, Parasoft introduces an innovative functionality based on AI and ML to enhance static analysis with an automated prioritization capability. The functionality extends Parasoft’s DTP core capabilities by learning from the developer’s interaction with the static analysis results and applies the trained model to automatically prioritize newly found violations.
This innovation allows organizations to immediately improve productivity by reducing manual effort in their software quality endeavor and making sure they spend their precious time on what’s most important.
MISRA C:2012 remains the most popular coding standard for the C programming language. It was recently updated to support the evolution of the C language. MISRA C:2012 Amendment 2 now supports coding standard C11 and C18.
Amendment 2 takes the restrictive approach and forbids using the new language extensions, which are not yet fully analyzed for their impact on safety—there are new guidelines for it. More specific guidelines are expected in the future.
Parasoft is the first vendor to support MISRA C:2012 Amendment 2. The release of C/C++test 2020.1 covers the entire new set of guidelines.
Embedded devices with various sensors and actuators are becoming more and more complicated and the source code for drivers is also getting complex. Many teams struggle to build the test process that would allow them to certify their projects for functional safety.
We received multiple requests to help automate the process. Our enhanced unit testing framework was successful used to test Linux and LynxOS 178 kernel code.
Parasoft C/C++test provides 100% coverage for the required automated guidelines and is in the lead position in support of the AUTOSAR C++ coding standard. Parasoft is continuing to work on a few checkers for the partially automated category.
This is the category of the standard that cannot be fully replaced with the static analysis (by the nature of guidelines), but there is plenty of space where the tool can help and reduce the amount of manual overhead. The Parasoft C/C++test 2020.1 release brings five new checkers for the most important C++ coding standard.
With the current global health crisis, we’re all experiencing a rare moment in history. The folks at Parasoft worked hard from their home offices to successfully deliver the C/C++text 2020.1 release with all the features we promised. We continue to stay focused and have already started working on the next release. 2020.2 is coming in October. Stay tuned!
“MISRA”, “MISRA C” and the triangle logo are registered trademarks of The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. All rights reserved.
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.