In all our years of compiler testing, there’s one thing we can say for certain – no compiler is perfect. It’s inevitable that whenever you really put a new or old compiler through its paces you’ll find an error. That’s why compiler qualification for safety-critical...
We were recently asked if SuperTest is suitable for ‘white-box’ testing, in addition to its normal role as a ‘black-box’ testing platform. As legitimate as this question is, it reminded us that there might be some confusion surrounding black-box and white-box testing...
Is the software community turning from C to C++? Given the interest we’ve seen for C++ compiler test and validation solutions, we certainly think so.
The original C language has served the automotive industry well. But the evolution of ADAS and also due to new AI algorithms is driving the automotive industry to switch from C to C++.
Most of the time, clients come to us with a specific request or problem and we try to find the best solution. Then we incorporate it in the next release of SuperTest. But we do much more than only work on a ‘you ask, we answer’ model. We like our job, so we are always working on new test capabilities to stay ahead of the changing compiler landscape. And that will always lead to some exiting new insights.
Model-based design is a popular and efficient way of developing applications. But your model will ultimately have to be translated into executable machine code – a process that can introduce software artefacts. So how do you make sure that any artefacts introduced don’t impact your application?
Everyone knows that compiler test suites test the language features of a compiler. That’s what it says on the box. But there’s a lot more going on inside modern compilers than the straightforward translation of language constructs into executable code. For example, modern compilers often respond differently to different construct combinations, or optimize code for speed of execution or memory usage.
It’s not uncommon for a locomotive or airplane to be in use for 30 years or more. Last year, a Boeing 747 used by GE Aviation was retired after 50 years of active service and the Dutch Railways still have trains in service that were introduced in 1986. However, they rarely remain exactly the way they were built.
If your embedded application is safety-critical, it’s only natural you’d want to do everything humanly possible to make sure it’s 100% tested and free of bugs. So you test, test and test again at every stage of software development, until you’re finally ready to compile and test the application on your target hardware.
It’s no secret that compilers fulfil a critical role in application development – compiling efficient source code to efficient machine code. And with that role comes huge responsibility. Our experience is that widely used C and C++ compilers for mainstream processor...