Feature: Tools
Figure 2: SuperGuard report Unlike the corresponding binaries,
function-like macros are not pre- compiled but generated by the SDK’s compiler with the application source code. It is therefore vital that, together with other header file content, they are verified for a given application’s specific use.
Code coverage analysis In SuperGuard, special focus is placed on the code coverage achieved for a mature and popular open-source C Standard Library implementation to meet the ASIL D requirement of Clause 12.4.2.3. For many functions in that library, SuperGuard achieves 100% coverage, including MC/DC coverage. Although every library
implementation is different, they all handle a similar case analysis. SuperGuard’s high code coverage is beneficial for all C Standard Library implementations.
Anomalous cases SuperGuard tests handle anomalous cases in two ways. Te first relates to defined behaviour resulting from an anomalous input – for example, passing a negative number to the function sqrt() must return the value NaN (assuming IEC 60559 arithmetic). Although anomalous, the function behaviour is fully defined and can be verified. Te second relates to requirements
the compiler can verify. For example, if a function must have a void return type, a test can try to use the return value expecting it will generate a compiler error. SuperGuard calls such tests an X-Test. X-Tests PASS if the compiler raises an error at compilation and FAIL if it does not. X-Tests are never executed.
Error-free Soſtware developers must not assume third-party and/or commercial off-the- shelf tools and components, such as
28 October 2022
www.electronicsworld.co.uk
compilers and standard libraries, are error-free, or that pre-qualification implies this is the case. SuperGuard adds the traceability
needed to relate requirements-based test results back to the C Standard Library specification. Full traceability is provided by breaking down ISO C Standard Library functional specifications into clearly- defined requirements, developing suitable test specifications and implementing them according to the required standard. Furthermore, it allows developers to perform tests in the same development environment, under the same use-case conditions and on the same target hardware used in their application, with close to 100% structural code coverage. By generating a comprehensive qualification report (Figure 2) tailored to certification organisation needs, SuperGuard helps demonstrate the integrity of library components used in safety-critical applications.
Page 1 |
Page 2 |
Page 3 |
Page 4 |
Page 5 |
Page 6 |
Page 7 |
Page 8 |
Page 9 |
Page 10 |
Page 11 |
Page 12 |
Page 13 |
Page 14 |
Page 15 |
Page 16 |
Page 17 |
Page 18 |
Page 19 |
Page 20 |
Page 21 |
Page 22 |
Page 23 |
Page 24 |
Page 25 |
Page 26 |
Page 27 |
Page 28 |
Page 29 |
Page 30 |
Page 31 |
Page 32 |
Page 33 |
Page 34 |
Page 35 |
Page 36 |
Page 37 |
Page 38 |
Page 39 |
Page 40