Many companies use SuperTest to qualify the compiler or library they are already using. However, for leading automation company KUKA, SuperTest is also a decision-making tool that helps them decide, on a project-by-project basis, which C/C++ compiler and standard library to use.

Headquartered in Augsburg, Germany, KUKA is one of the world’s leading suppliers of intelligent automation solutions, ranging from robots, mobile robots, and manufacturing cells to fully automated networked robotic systems for industries as diverse as automotive, electronics, metal & plastic, consumer goods, e-commerce/retail and healthcare. That means the company has a large number of development teams working on different projects, each project having its own unique hardware/software and functional safety requirements. Helping the company’s development teams decide on which C or C++ language version, compiler, and library combination to use is one of the tasks of KUKA’s Competence Center for Functional Safety.

“If you change the CPU architecture, there is the problem that you may have to do a lot in software regarding the new compiler backends to support it,” says Robert Bertossi, Team Lead for KUKA’s Safety Platform. “We think SuperTest can assist us with that, by helping us assess the available compilers.” Part of that assessment has to do with ensuring functional safety, which is important for all kinds of robots and critical in the development of collaborative robots that interact with humans.

“We need to comply with standards such as IEC 62061 and IEC 61508 for the functional safety of machinery and safety-related systems, which, although different to those in the automotive industry, are similar in terms of the required quality measures and tool qualification,” says Christian Hartmann, Manager of KUKA’s Competence Center for Functional Safety.

Among other things, meeting these standards for a specific project means KUKA needs to qualify the selected compilers.

“SuperTest helps us decide whether to recommend that a project team uses for example GCC or Clang, as well as helping us make decisions about whether to switch to a newer version of the compiler,” says Christian. “If a new GCC or Clang version is released that has some features the project team would like to use, we can run it with SuperTest to discover if it has disadvantages as well as test the new features. When it comes to evaluating a new standard library, we can use SuperTest to see if the new library’s behavior is similar to the library we used before.” KUKA also uses SuperTest to make recommendations on which C or C++ language variant a project should use with the selected compiler.

“We can use SuperTest to check whether there are any problems moving to a newer language standard – for example, moving from an older version of C++ with a given compiler to a newer version that includes more functions,” says Robert Bertossi. “It allows us to see how well the compiler fares with the new standard to determine whether there are any problems we need to fix beforehand.” SuperTest is one of many different tools KUKA has integrated into its compiler qualification tool chain. “I was satisfied with the ability to integrate SuperTest, because you can just script around it and call all the executables from the command line. All you need to supply is the configuration data,” says Robert. “As a result, the process itself is heavily automated. Most of the manual labor is in analyzing the results.”

Solid Sands offers support to their customers and Robert adds: “In the beginning we did need some support, but they were always very quick to help and their answers were very on-point. With other companies you sometimes have to deal with a representative who doesn’t know anything about technical issues, but with Solid Sands we always had the impression we were talking to people who know their product, and that’s a real time-saver.”