Developing reliable software for Complex Industrial Robotics Systems (CIRS) is a challenging task. This is because a typical CIRS is comprised of numerous components including control computers, microprocessors, field-programmable gate arrays (FPGAs), and sensor devices. These components typically interact through a range of different interconnection technologies, e.g. Ethernet and dual port RAM, depending on delay and latency requirements on their communication. Thus, designing an appropriate interaction interface between the components is essential for the CIRS’s efficiency and reliability. Developing software for CIRS is demanding and as complexity of such systems continuous to grow, managing and developing software for CIRS is becoming increasingly difficult. The software for CIRS is typically comprised of source code in several languages, including C/C++ and other higher-level languages, in addition to hardware logic descriptions in VHDL. The software for all these components typically share large chunks of code (code reuse), and thus may be compiled and built for several different operating systems, and on several different processor architectures.
In large software systems, the probability of undetected software errors quickly becomes large, especially if the error appears in the interaction interface between the components. Current best practices used to reduce the number of software errors in systems are to apply techniques such as unit- and integration testing and code review. These techniques are labor intensive, and despite applying such techniques, software errors may still be detected late in the design process, often very close to release date. This is problematic because it is well-known that late errors is much more costly than errors detected early in the design process. In addition, to detect errors in the interfaces between the components, more systematic interaction testing is required.v
The goal of this research is to investigate how software errors can be detected as early as possible in the development process through use of more systematic automated software testing techniques. The demanding software development process for CIRS is special in its need for interaction testing between components and in its need for customized integration testing. We identify the following tasks for achieving the above-mentioned goals:
- We will design flexible interaction testing techniques. Automatically generating test cases guaranteeing that all possible interactions between two or more components are evaluated in order to reach more reliable control systems for CIRS.
- Establishing a framework for Continues Integration (CI) testing process for detecting both breakage of builds and running automatic test specially designed for CIRS.
- Do overall research on how hardware and software in a CIRS system should be designed in order to support CI and automatic testing in an efficient way.
- Establish a full scale model at ABB Robotics that include more systematic automated testing techniques based on the findings of the research.
- ABB Robotics
- Simula Research Laboratory