AvioAvionics software requires absolute safety and reliability. For over 30 years, Parasoft has been helping organizations meet rigorous standards through required best practices like unit testing, full test coverage, object code coverage, software metrics, and static code analysis. In civil aviation, organizations rely on DO-178C (for commercial software-based aerospace systems) and DO-278 (for communication, navigation, surveillance, and air traffic management software-based systems). In military and defense industries, where there are no strict certification specifications, some organizations volunteer to adapt DO-178/278 standards as a proven path to sufficient safety and security for created software. Parasoft provides an integrated solution to help organizations comply with the rigorous DO 178 standards.
Address Today's Modern Software Development Challenges
Protect Against Security Risks
Security is becoming a serious issue for aerospace and defense avionics. The threat of malicious interference into the software of a flying airplane is a real scenario, which development teams have to predict and prevent in an age marked by terrorism. Parasoft’s security-focused solution enables teams to get the critical feedback needed to ensure robust, secure software is delivered to market.
Follow Industry-recommended Development and Testing Best Practices
Coping with the growing complexity of avionics systems, organizations can use coding standards to ensure the creation of safe and secure code, along with additional software development and testing practices that are imposed by the regulatory standards used in aerospace and defense. Parasoft helps teams with these required techniques, such as model based development, requirements based testing, unit and integration testing, and code or object code coverage monitoring.
Reduce Complexity by Using a Unified Tool
Following all recommendations from regulatory standards requires a framework composed of multiple software tools that can exchange information, for example, to prepare reports and documentation. Instead of trying to integrate various independent software tools, which often becomes a nightmare and consumes precious time that could be spent developing core products, organizations can leverage the unified tooling of Parasoft C/C++test, which was built with the bigger picture in mind. Parasoft C/C++test is ready to be deployed in the most complex projects.
Parasoft's Solutions for Aerospace and Defense
Software compliance for aircraft starts with software engineering standards and best practices, complemented with specificifications for aircraft certification. Parasoft C/C++test is an integrated toolkit for C and C++ development and testing that supports a broad range of best practices that are proven to improve software safety and reliability in avionics.
Parasoft C/C++test automates C and C++ static analysis and unit/component testing on host and target with comprehensive code coverage supporting multiple levels of DO-178B/C. Included in static analysis is built-in support for all the popular standards used in aviation software, like MISRA C and JSF AV C++.
Parasoft helps organizations achieve compliance with DO178B/C, which explicitly requires created source code to conform to the software code standards (DO-178C, 5.3.2.b). All organizations wishing to be compliant with DO-178C need to demonstrate code standards compliance.
To this end, Parasoft C/C++test helps teams achieve compliance with multiple coding standards and improve code quality. Parasoft C/C++test provides a set of built-in checkers (rules) for verifying compliance with standards like JSF, MISRA C 2012, MISRA C++ 2008, AUTOSAR C++14, and HIC++.
Parasoft C/C++test helps organizations promote secure coding patterns and achieve compliance with security coding standards. C/C++test provides the most comprehensive set of built-in checkers (rules) on the market for verifying compliance with standards like CERT C, CERT C++, UL 2900, and CWE.
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 2200+ 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.
DO-178C does not explicitly list unit testing as a required testing method. However, the standard requires that test coverage of low level requirements is achieved (DO-178C 6.4.4.b). In most cases, unit testing is the most practical way of achieving this objective.
C/C++test reduces the effort related to unit test cases creation and maintenance by reducing the amount of scripting required and providing convenient views and graphical editors to simplify the process.
The design of C++test’s unit testing framework is created 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, for a superior approach.
C/C++test can be used to execute unit tests on the host platform, target processor simulator, or on the embedded target. This flexibility enables developers to run tests frequently inside their IDE and in the CI/CD pipeline, where simulators are typically used, as well as with real hardware, for DO-178C compliance purposes. Parasoft C/C++test’s test harness was optimized to take minimal additional overhead for the binary footprint and processor cycles. Dedicated integrations with embedded IDEs and debuggers make the process of executing unit test cases smooth and automated.
Unit testing becomes much easier and productive if it can be used together with a stubbing/mocking framework. Parasoft C/C++test’s powerful module for creating stubs and mocks can help in fault injection or robustness testing (DO-178C 188.8.131.52), reduce dependencies of the tested code, or to simply stub out not-yet-implemented source code.
DO-178C explicitly requires achieving test coverage of the software structure (DO-178C 6.4.4.c) to comply with the standard. Parasoft C/C++test supports all of the coverage metrics required by DO-178C (statement, branch, MC/DC), and more (path, simple condition, line, block, function, call). The tool presents code coverage results from all levels of testing including unit, integration, and system level testing.
Parasoft 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 IDE with dynamic views and filter the results depending on metric, function/method, or specific test case.
Parasoft C/C++test’s object code coverage module helps organizations achieve compliance with DO178C. For software level A, DO-178C requires demonstrating object code coverage and additional verification of the object code that is not directly traceable to the source code.
Parasoft C/C++test’s object coverage tools support instruction and branch coverage metrics at the assembly level. It also tracks switch statements, providing full insight into the test execution paths at the machine language instruction level.
Parasoft C/C++test’s requirements traceability reporting helps organizations achieve compliance with DO-178C, which explicitly lists requirements-based testing as an objective (DO-178C 184.108.40.206). Parasoft integrates with the team’s requirements management system to provide traceability reports that display the correlation between requirements and the
● Source code created to implement these requirements.
● Test cases created to test the requirements.
● Results of executed tests and code coverage results.
Traceability reports provide clear and complete information about development progress, and teams can easily determine how many requirements were already implemented and how thoroughly they are tested.
DO-178C introduces 5 software levels (SLs) A to E. The software level for a system is determined during the safety assessment process, based on the failure condition that may result from the anomalous behavior of the software. Software level A represents the most stringent level with the most rigorous practices required in aerospace software
development and testing.
To support tool qualification as described in DO-178C/DO-330, Parasoft C/C++test is supported with a dedicated Qualification Kit, which automates the tool qualification process, guiding users through all the steps required to conduct the qualification and
produce necessary documentation. A dedicated Qualification Support Tool automates the majority of the tedious manual work required to qualify the tool, including executing the test cases from the exhaustive test suite provided and generating the final reports required to document the qualification process.
Benefit From the Parasoft Approach
Reduce the cost of developing high-quality aerospace software without sacrificing time to market.
Want to Learn More?
Find out how Parasoft can help you achieve your software delivery goals.
Developing DO-178B/C Compliant Software for Airborne Systems
Developing DO 178B/C compliant software is no easy feat. Learn how to use Parasoft to make it easier.
For over 30 years, Parasoft has been helping the leading Aerospace, Military, and DoD firms delivery rigorous safety-critical and security-critical systems. By providing development and functional testing teams with best-in-breed technologies to automate and shift left their testing strategies, Parasoft customers are able to meet and exceed their Agile and DevOps delivery goals.