Industrial Automation

Industrial Automation Software Solutions

Software Development & Testing for Industrial Automation

Functional safety standards such as IEC 61508 and its derivatives require organizations to prove that the software and safety requirements are met and fully tested. For over 30 years, Parasoft has been helping organizations follow such standards through required best practices like unit testing, test coverage, software metrics, traceability, and static code analysis with built-in support for MISRA, CERT, and other automation industry coding standards.

Address Today's Modern Software Development Challenges

Manage Increased Security Risks

Industrial automation systems (and the software that powers them) have become increasingly connected, no longer using private networks, but relying on the public Internet more and more to connect sensors to critical infrastructure control and back-end enterprise systems. The Internet, while enhancing the flexibility of the systems, has created an explosion of new threats and complexities. With any security holes in the control software, there is a risk of the gates being opened to a terrorist attack utilizing an unforeseen situation in the process. Parasoft C/C++test provides the most comprehensive software testing solution for security on the market for security, so organizations can develop and release software with fewer risks.

Tackle the Growing Complexities of Modern Development and Connectivity

Multi-layered industrial Internet of things (IIoT) solutions require different technologies and tooling to implement and test the software for each layer. Low level sensors and actuators are most likely developed with C and C++, while upper layers are implemented with Java or C#. Connectivity adds complexity with multiple components using different protocols to propagate messages up to the end user. Parasoft provides testing tools to address each layer of complexity, seamlessly integrated with sophisticated reporting and analytics to help organizations manage this growing complexity.

Comply With IEC 61508 and Its Derivatives

For required levels of functional safety and security many organizations choose to develop their industrial automation systems in compliance with the IEC 61508 standard, which requires disciplined and rigorous software development and testing processes. Automated software testing tools from Parasoft reduce the cost of compliance with IEC 61508 by providing the automated tools needed for efficiently achieving compliance, along with a centralized reporting system that makes documentation efforts less manual.

Parasoft Solutions for Industrial Automation

Parasoft’s integrated tool suite provides teams with a practical way to prevent, expose, and correct errors in order to ensure that their C and C++ code works as expected and complies with requirements. To promote rapid remediation, each problem detected is prioritized based on configurable severity assignments, automatically assigned to the developer who wrote the related code, and distributed to his or her IDE with direct links to the problematic code and a description of how to fix it. For embedded and cross-platform development, you can use C/C++test in both host-based and target-based code analysis and test flows.

Parasoft C/C++test helps industrial automation software development teams satisfy the software development and verification process requirements defined by the IEC 61508 standard. When results of the broad range of testing and code analysis types automated through C/C++test are processed, intelligent analytics are reported that significantly reduce the work required for software verification.

Parasoft C/C++test helps organizations achieve code compliance with coding standards to improve code quality, with the largest number of built-in checkers (rules) on the market for verifying compliance with standards like MISRA C 2023, MISRA C 2012, MISRA C++ 2008, AUTOSAR C++14, HIC++, and more.

For achieving secure coding best practices and security code compliance, Parasoft C/C++test provides the most comprehensive support for built-in checkers that verify compliance with security standards like CERT C, CERT C++, UL 2900, CWE, and more.

“MISRA”, “MISRA C” and the triangle logo are registered trademarks of The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. All rights reserved.

Parasoft minimizes the cost of the coding standards compliance process by providing dedicated reporting. Compliance reporting gives the user a dynamic view into the compliance process, helping prioritize results of static analysis violations according to groupings and categorizations from the original coding standard.

Compliance documentation is necessary for proving compliance. Generating it automatically saves teams valuable time when the generated reports and documentation comply with the MISRA 2020 standard, which is very popular across automation industries.

Parasoft C/C++test detects complex runtime-like problems early in the development stage by analyzing execution paths through the code and finding potential bugs. In addition to 2500+ rules and checkers, Parasoft makes it easy for teams to verify organization-specific coding guidelines with a special editor for creating custom checkers to extend (or replace) the built-in rules provided with the tool. With Parasoft C/C++test, users don’t have to write any scripts, and organization-specific coding guidelines can be fully automated to replace the manual process of compliance verification.

Parasoft C/C++test’s convenient views and graphical editors reduce the manual effort of unit test case creation and maintenance with a unit testing framework designed with safety-critical software testing in mind. Stubs and test cases with values for tested software’s stimulation can be created as a source code or with graphical editors with source code generation capabilities. Users can store and review created test artifacts together with the project’s files. The initialization of the variables and input parameters for tested software stimulation is done in exactly the same way as during production software operation, making the method reliable and robust.

Unit testing is much easier and productive if used together with a stubbing/mocking framework. Parasoft C/C++test’s powerful module for creating stubs and mocks help in fault injection testing, reduce dependencies of the tested code, and enable users to easily stub out not yet implemented source code.

Parasoft C/C++test supports all the coverage metrics typically required when developing safety-critical software (statement, branch, MC/DC, function, call, path, simple condition, line, and block), displaying code coverage results from all levels of testing, including unit, integration, and system level testing.

C/C++test reduces the time required to analyze coverage results and find the gaps in the testing process. Developers can review code coverage results inside the IDE with dynamic views and filter the results depending on metric, function/method, or specific test case.

Parasoft integrates with requirements management systems to provide traceability reports that display the correlation between requirements and the following:

  • Source code created to implement these requirements.
  • Test cases created to test the requirements.
  • Results of executed tests.
  • Code coverage results.

Traceability reports provide clear and complete information about the development progress. Teams can easily determine how many requirements were already implemented and how thoroughly they are tested.

Parasoft C/C++test can be integrated with model-based development tools like Matlab/Simulink or IBM Rational Rhapsody, verifying the source code generated from the models for compliance with the coding standards and performing dynamic validation using data sets from the simulation engines, and then presenting code coverage results.

Parasoft C/C++test is certified by TÜV SÜD as suitable for use when developing safety critical software with the IEC 61508 standard. For projects with a higher level of risk, Parasoft C/C++test’s Qualification Kit automates a significant part of the tool qualification process, reducing the amount of manual work and eliminating this distraction from software teams.

A dedicated Qualification Support Tool guides users through all of the steps required to qualify the tool, automating the majority of the tedious manual work required to qualify the tool, including executing the test cases from the exhaustive test suite provided together with the Qualification Kit, and generation of the final reports required to document the qualification process.

Benefit From the Parasoft Approach

Reduce the cost of developing high-quality software without sacrificing time to market.

Benefit From a Unified Tool With Multiple Testing Practices

Parasoft C/C++test satisfies multiple software testing requirements enumerated in IEC 61508. The comprehensiveness of the solution translates into lower learning and setup effort. Developers don’t have to learn several tools and can focus on their core activities. Tool integrators or architects save time otherwise spent implementing interfaces between tools to exchange data and generate uniform reports.

Use a Tool Architecture Suitable for Safety-Critical Applications

Parasoft C/C++test is designed with safety-critical applications in mind. When performing unit testing or runtime memory monitoring, all components required to build the test binary, including the test cases for tested code, stimulation, and stubs are expressed in the form of the source code and can be versioned and inspected. By expressing all testing artifacts in the form of the source code, C/C++test ensures that the state of the memory before executing tests is constructed in the same way as in the production system.

Gain Efficiency With a Dedicated Qualification Kit for IEC 61508

Parasoft C/C++test is supported with a dedicated IEC 61508 qualification kit that complies with standard requirements for the tool qualification process. Instead of just providing qualification assistance in the form of the collection of test cases and templates for scripts and reports which require a lot of customization, Parasoft’s automated Qualification Support Tool guides users through all of the steps required to qualify the tool, and automates the majority of the tedious manual work required to qualify the tool. This includes executing the test cases from the exhaustive test suite provided, as well as generating the final reports required to document the qualification process.

"Parasoft's solution is teaching us all to be better programmers. It helps us find errors that we didn't even realize were errors. Parasoft's solution has saved the Global Modeling and Analysis team both time and resources that we would have otherwise spent finding and fixing defects. Instead, we get to spend that time adding new features and functionality."

- Trane