Solid Sands is based in Amsterdam, the Netherlands. Our mission is to improve the quality of C and C++ compilers and libraries, and their safe and secure use by providing the best possible test and validation suite. Due to the close relationship with the SuperTest users, their feedback on our updates and suggestions on how to improve, we continuously expand and renew SuperTest. With our knowledge of past, current and upcoming versions of the C standard, new analysis and optimizations techniques and new use cases, Solid Sands stays at the fore-front of compiler and library testing and validation.
OUR MISSION IS TO IMPROVE THE QUALITY OF C AND C++ COMPILERS, AND THEIR SAFE AND SECURE USE BY PROVIDING, SUPERTEST, THE BEST POSSIBLE COMPILER VALIDATION SUITE
SuperTest – compiler testing for safety-critical automotive applications
Ensuring compiler and software quality
When one of Germany’s leading car manufacturers made the decision to use a new embedded processor in future production cars, it was of paramount importance that the compiler was validated and qualified under as stringent conditions as possible and required by ISO 26262.
Although the supplied compiler had already been validated by the compiler developer, additional testing was deemed necessary in order to guarantee that the target application code would compile without introducing execution errors. The safety-critical nature of automotive systems such as Electronic Stability Control (ESC) means that the embedded software needs to be 100% deterministic, not only in terms of its decision making but also in terms of its real-time performance. Eliminating errors introduced by the compilation process itself is a major factor in achieving these requirements.
SuperTest – reducing the risk in safety-critical automotive applications
It’s not only compiler developers who need to think about compiler validation. Software developers who require proof that their application code compiles without errors also need to think about it – especially when their applications are safety critical.
Re-using existing source code that you know compiles and runs flawlessly is one of the best ways to maintain software and product quality, but whenever you introduce a new product range it’s inevitable that you have to generate some new source code that may expose compiler errors. Even the individual code styles used by different software developers can expose problems with the compiler. However, potential problems aren’t confined to new code generation.
“Every time we receive a new version of a compiler, we need to check that the compiled code matches that produced by the earlier version. In the past, we did it by manual comparison at assembler level or by functional testing, but either way it took a lot of time and effort, and the results were often not repeatable. The same applies when we need to check compiler accuracy after switching between different C-language or CPU variants.” says Mitsuhiro Tani, Manager, Basic Software Eng. Div. DENSO Corporation in Japan,
SuperTest not only allowed to speed up and automate the process of identifying differences between compiler versions and validating language or CPU variants, it also allowed the company to build its own unique test requirements into the process.
Compiler suppliers validate their compilers using test suites that reflect typical use cases, but that doesn’t mean that every possible compiler option is covered. SuperTest gives the flexibility to configure own use cases and add own test suites, so software developers are able to leverage their in-house knowledge and add specific test cases that are critical to each application.
Because SuperTest is updated on a regular basis, SuperTest will be useful when software developers have to start using and verifying library code. Typical compiler errors detected by using SuperTest include the operation of Mathematical Functions that is not compatible with C language standard, inconsistencies between different compiler versions, inconsistent library operation between compilers, and so on.
“Since these compiler problems and errors can be detected before the product development and shipment, DENSO can significantly reduce the effort of updating. We believe that SuperTest has turned out to be a good investment for the company. ” says Hiroki Nakasato, Assistant Manager, Basic Software Eng. Div. DENSO Corporation,
The volume of test suites that are included in SuperTest and code samples that detect a range of potential compiler errors makes it very cost-effective. The fact that software developers can separate tests in a quick and effective way gives the test flexibility need to identify and locate bugs. Add to that the fact that a standard compliance check for a compiler takes less than 1 to 2 days to run and SuperTest saves a lot of time and money.
For companies with a very high reputation to maintain and strict automotive safety standards to meet, compiler quality will always be an issue. SuperTest’s ability to achieve the confidence levels needed to use compiler into safety-critical automotive applications has now won it a permanent place in the arsenal of software development tools.