IEC 61508 Software Development and Testing with Parasoft
IEC 61508 is considered a basic or “umbrella” standard for functional safety. IEC 61508 can be applied for any kind of safety-related electrical/electronic product. Industry sectors are supposed to provide their own specific standards and guidelines as needed, for example ISO 26262 in automotive. 61508 encompasses the entire safety lifecycle of safety-critical systems. It contains 4 Normative parts (1-4) plus 3 informative or “guideline” parts (5-7). Certification for IEC 61508 is optional - the standard does not require this. Manufacturers are obliged, however, to assess the process and products.
The IEC 61508 standard introduces the concept of Safety Integrity Level (SIL). SIL can take one of the four levels (SIL1-SIL4) corresponding to the range of a given safety function’s target likelihood of dangerous failures. Each safety function in a safety-related system needs to have appropriate safety integrity level assigned. An E/E/PE safety-related system will usually implement more than one safety function. If the safety integrity requirements for these safety functions differ, unless there is sufficient independence of implementation between them, the requirements applicable to the highest relevant safety integrity level shall apply to the entire E/E/PE safety-related system.
According to IEC 61508, the safety integrity level for a given function is evaluated based on either the average probability of failure to perform its design function on demand (for a low demand mode of operation) or on the probability of a dangerous failure per hour (for a high demand or continuous mode of operation).
The IEC 61508 standard specifies the requirements for achieving each safety integrity level. These requirements are more rigorous at higher levels of safety integrity in order to achieve the required lower likelihood of dangerous failures.
How to Leverage Parasoft Tools for IEC 61508
Parasoft C/C++test is an integrated development testing solution for automating a broad range of best practices proven to improve software development team productivity and software quality, including:
- Static analysis: monitor coding standards compliance and prevent defects early in the SDLC, including the elimination of the software constructs that poses security threats
- Unit testing: create and execute tests on the host or target
- Coverage metrics analysis: identify gaps testing, requirements and code coverage
- Runtime error detection: detect memory access errors, leaks, corruptions, and more
These technologies give teams 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, C/C++test can be used in both host-based and target-based code analysis and test flows.
Parasoft C/C++test helps industrial automation software development teams to 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 reduces the work required to for software verification.
What makes Parasoft's solution better than other solutions on the market?
Multiple testing methodologies integrated in one tool
As opposed to the fragmented tools provided by main competitors, C/C++test can satisfy multiple software testing requirements imposed by EN 61508. The comprehensiveness of Parasoft's 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 can save their time which would be otherwise spent on implementing interfaces between the tools for exchanging the data and generating uniform reports.
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 form of the source code and can be versioned and inspected. This approach is superior comparing to competitive tools, where the stimulation for tested code is sent at runtime from the host and requires additional conversions before assigning to the variables in memory. By expressing all testing artifacts in form of the source code, C++test removes this unnecessary layer and assures that state of the memory before executing tests is constructed in the same way as in the production system.
Unlike other tools with closed reporting modules, C/C++test is integrated with Parasoft's reporting and analytics platform (Parasoft DTP) for team wide data aggregation, convenient reporting, and advanced analytics. DTP aggregates relevant information from different sources such as source code or requirements management systems, testing tools or ALMs. Correlating this information provide unique capabilities for data analytics and allows to focus your efforts in the most productive way. With Parasoft DTP, you can increase your productivity by monitoring trends in your development process, and you can also generate reports that comply with industry standards such as “MISRA Compliance: 2016” - widely used in various industries.
Parasoft C++test is supported with an IEC 61508 dedicated qualification kit, which complies with standard requirements for tool qualification process. Unlike most of the competitors which provide qualification support in form of the collection of test cases and templates for scripts and reports which require a lot of customization, Parasoft C/C++test is supported with automated qualification kit. Dedicated Qualification Support Tool guides users through all the steps required to qualify the tool and automates majority of 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 final reports required to document the qualification process.