ISO 26262 Compliance with Parasoft

Try Parasoft

ISO 26262 Compliance with Parasoft

What is ISO 26262?

ISO 26262 "Road vehicles – Functional safety" is a functional safety standard that covers electrical and electronic automotive systems and their development process, including requirements specification, design, implementation, integration, verification, validation, and configuration. The standard provides guidance on automotive safety lifecycle activities by specifying requirements at the software and hardware level.

Enforcing ISO 26262 Compliance with Source Code Analysis and Unit Testing

Parasoft users can leverage Parasoft C/C++test to reduce the cost of achieving ISO 26262 compliance by automating multiple testing methods required by the standard. Part 6 of the standard specifically addresses product development at the software level, and Parasoft users can save time and effort adhering to this part of the standard.

ISO 26262 Compliance Requirements

Understand how to comply with your ASIL level of risk

For the system development at the software level, users need to deploy a collection of software testing techniques. Which specific testing methods are required depends on the ASIL level classification of the system. For example, users developing systems classified as ASIL A will only need to demonstrate statement coverage to prove sufficient level of software testing, while users developing ASIL D systems will need to invest more work to assure appropriate level of MC/DC coverage.

Implement static analysis and unit testing

To comply with ISO 26262, organizations must implement multiple processes and requirements, and techniques like static analysis and unit testing, that automate software development activities, can significantly help organizations meet ISO 26262 requirements. Software tool qualification proves that the tool is suitable for developing a safety-related item or element.

Ensure your tool is qualified for use

For projects with a lower level of risk (i.e. ASIL A/B, SIL 1/2), Parasoft C/C++test is certified by TÜV SÜD as suitable for use when developing safety critical systems. For projects with a higher level of risk (i.e. ASIL D, SIL 4, SL A), Parasoft’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.

How Parasoft Helps Achieve ISO 26262 Compliance

Parasoft users can leverage Parasoft C/C++test to reduce the cost of achieving ISO 26262 compliance by automating multiple testing methods required by the standard to save time and effort. Automatically-generated reports and dashboards provide teams with a practical way to prevent, expose, and correct errors in the software and prepare the documentation required for the audits.

With its Qualification Support Tool, Parasoft helps organizations with higher ASIL levels run static analysis, unit tests, and any other testing practice used in the development process on a set of control code, and automatically generates the reports necessary to qualify the tool.

Parasoft C/C++test facilitates and automates the software testing methods specified in ISO 26262, part 6 of which is devoted to product development at the software level. Requirements for the following development activities are specified:

  • Initialization of product development
  • Specification of software safety requirements
  • Software architectural design
  • Unit design and implementation
  • Unit testing
  • Software integration and testing
  • Verification of software safety requirements

The tables listed in the sections below match key software testing methods from ISO 26262 with Parasoft C/C++test. (The tables are intended to provide a sample of Parasoft functionality and are by no means complete.)

This section of ISO 26262 (Part 6) defines general information about the process of software development and validation. See specifics in table below.

5.4.6 Requirements for achieving correctness of software design and implementation. Methods described here apply to both modeling and programming languages.
RequirementParasoft C/C++test capability
Enforcement of low complexityReports cyclomatic complexity, essential complexity, Halstead complexity, and other code metrics
Use of language subsetCoding standards enforcement, e.g., detection of unsafe language constructions
Enforcement of strong typingCoding standards enforcement, Implicit conversions detection
Use of defensive implementation techniquesEnforces defensive programming against appropriate coding standards rules, e.g., checking the return value of malloc, checking the error code value returned by called functions, etc.
Use of established design principlesEnforcement of industry coding standards rule sets, e.g. MISRA C/C++, JSF, HIS source code metrics, etc.
Use of unambiguous graphical representationEnforcement of specific formatting conventions
Use of style guidesEnforcement of specific coding conventions
Use of naming conventionsEnforcement of specific naming conventions

This section defines the process of specifying and implementing software units, as well as the verification of the design and implementation.

8.4.5 Specifies the verification methods for checking software unit design and implementation.
RequirementParasoft C/C++test capability
Control flow analysisControl Flow Analysis
Data flow analysisData flow analysis
Static code analysisCoding standards enforcement

This section defines the process of planning, defining, and executing software unit testing.

9.4.1 Describes general information about unit test execution
RequirementParasoft C/C++test capability
Unit test execution
  • Unit test execution module
  • Reports module for presenting results
Unit test specification
  • Configurable unit test generation module creates tests according to the defined specification
  • Test Case Explorer module presents a list of all defined test cases with pass/fail status
9.4.2 Describes methods used to specify and execute unit tests
RequirementParasoft C/C++test capability
Requirement-based tests
  • Users can design unit test cases with Parasoft C/C++test according to requirements
  • Unit test cases can be attributed with requirement ID
  • Parasoft C/C++test reporting framework integrates with Requirements Management Systems and generates reports presenting test results in context of specific requirements
Unit test specification
  • Maps test cases with requirements and/or defects in conjunction with the Concerto
  • Supports user-defined test cases created manually and tests created with the Test Case Editor
Interface tests
  • Unit test cases can be created
  • Uses function stubs and data sources to emulate behavior of external components for automatic unit test execution
Fault injection tests
  • Enforcing fault conditions using function stubs
  • Automatic unit test generation using different set of preconditions (e.g., min, max, heuristic values)
9.4.3 Defines methods that should be used to create test cases
RequirementParasoft C/C++test capability
Analysis of requirementsParasoft's reporting engine provides requirements to code and requirements to test traceability
Generation and analysis of equivalence classes
  • Uses factory functions to prepare sets of input parameter values for automated unit test generation
  • Uses data sources to efficiently use a wide range of input values in tests
Analysis of boundary values
  • Automatically-generated test cases (e.g.heuristic values, boundary values)
  • Employs data sources to use a wide range of input values in tests
Error guessing
  • Uses the function stubs mechanism to inject fault conditions into tested code
  • Flow Analysis results can be used to write additional tests
9.4.4 Defines the methods for demonstrating the completeness of the test cases
RequirementParasoft C/C++test capability
Statement coverageCode Coverage module
Branch coverageCode Coverage module
MC/DC (modified condition/decision coverage)Code Coverage module
9.4.5 Defines the requirements for the test environment.
RequirementParasoft C/C++test capability
Test environment for unit testing shall correspond as far as possible to the target environmentUnit test execution on both target device and simulator to perform tests in different environments (e.g. software-in-the-loop, processor-in-the-loop, hardware-in-the-loop
10.4.2 Describes general information about executing software integration tests.
RequirementParasoft C/C++test capability
Integration testsFlexible configuration of tested software scope (from single function to entire application)
10.4.5 Defines methods for demonstrating completeness of integration testing.
RequirementParasoft C/C++test capability
Function CoverageCode Coverage module
Function Call CoverageCode Coverage module
10.4.7 Defines requirements for the integration test environment.
RequirementParasoft C/C++test capability
Test environment for software integration testing shall correspond as far as possible to the target environment
  • Integration tests can be executed on both target device and simulator to perform tests in different environments (e.g. software-in-the-loop, processor-in-the-loop, hardware-in-the-loop)
  • Flexible stub framework
Comply with ISO 26262
Relevant Resource

ISO 26262 Software Compliance with Parasoft

Developing ISO 26262-compliant software for E/E systems in automobiles is no easy feat, but Parasoft eases the burden by offering a broad range of analysis tools and enabling you to automatically monitor compliance with your development policy — bridging the gap between development activities and business processes. For the complete list of mappings, download this resource.