Preventing errors from being introduced at any stage of the chain
Compilers don’t exist in isolation. They are one component of the tool chain for developing applications. Ensuring that no component in the chain introduces errors is therefore of paramount importance, particularly when developing software for safety-critical applications.
Many of today’s software development tool chains include automated tools to check the functional safety of the source code itself, before it ever hits the compiler. These are typically static analyzers that verify guidelines, detect source code bugs, scan for security vulnerabilities, and flag style issues before a program is compiled. Several use formal methods that mathematically model the source code, providing users with a guarantee that their programs do not contain undefined behaviors, such as memory safety violations, buffer overflows, and null pointer dereferencing (a common error in C and C++ programming).
To give such guarantees, developers of analysis tools for C and C++ must ensure that their analyzers, static and dynamic, interpret and model the C or C++ standard correctly, which means testing and verifying them using a rigorous and comprehensive test suite. Tests in SuperTest are not “nice” – they investigate every corner of the language. That makes them the ultimate stress test for analysis tools. For example, software development tool company TrustInSoft uses SuperTest to verify its TrustInSoft Analyzer, both to sense-check its interpretation of the C and C++ language specifications and as a means of satisfying the ISO 26262 functional safety conformance requirements of its automotive customers.
SuperTest is also being used in other challenging tool chain verification applications. Embedded software development tool provider Kyoto Microcomputer Co. Ltd of Japan is using SuperTest to verify a LLVM/Clang based cross-compiler, the output of which runs under Windows on Ubuntu independently of the final bare-metal target compiler. For operating system compatibility reasons, it makes the use of the standard test suite supplied with LLVM/Clang unusable. SuperTest’s ability to run under Windows, its exceptional traceability between individual test results and the language specification, and its true compliance testing made it the ideal solution.
Capable of running in virtually any Windows or POSIX-based environment right through to resource constrained bare-metal systems with no operating system – the entire tool chain pathway from a C or C++ program to an embedded binary – SuperTest is proving to be a powerful asset in tool chain development worldwide.
Contact us today to discuss how our solutions can help you meet automotive safety standards.
Request a demo Contact Us
Home / Industries / Development Tool Provider