Simona is the international institute for research into "Simulation, Motion and Navigation". This institute offers facilities for fundamental research into improving simulation technology and the use of this simulation technology to improve vehicle performance and safety. Simona is a joint venture between three faculties of TU Delft: the Faculty of Information Technology and Systems (ITS), the Faculty of Design, Production and Construction (OCP) and the Faculty of Aerospace Engineering (LR).
| Market: | Aviation |
|---|---|
| Technology: | Testing, code coverage, DO-187B standard, make, perl, shell scripts, cppunit, Bullseye , C++ |
| Brochure: | |
The Simona flight simulator is an advanced flight simulator built for research. It consists of an aramid-fibre cabin positioned on landing gear with six free-movement degrees.
Software errors in the Simona flight simulator can lead to situations in which the equipment and sometimes also the passengers may be in danger. A systematic approach to safety is therefore required. On the lower levels, safety is guaranteed by measures with respect to servo motors and the PLC that coordinates movements. A systematic approach is needed in order to gain more confidence in the accuracy of the software.
The DO-178B standard of the RTCA ("Radio Technical Commission for Aeronautics") is the generally accepted guideline within the aviation industry for the development of onboard software. This standard distinguishes between five levels with respect to the effect that a software component can have on the operation of the system as a whole:
Every level has clear requirements with regards to testing the software:
Most parts of the Simona flight simulator software can be classified under level C. The objective of this project is to test the Simona flight simulator software on level C of the DO-178B standard.
West developed a 'testbed', which is an environment in which tests can be developed, carried out and evaluated. Coverage results are also collected and presented.
The testbed supports both module and unit tests. The module test is a black box test. The test is designed in the same way as a flight simulation and the same steps are followed during the test as during a simulated flight.
A unit test is aimed at testing a source file, using as few alternative source files as possible. In some cases, such as when different source files depend on each other, a unit test can also test several source files. A unit test is a white box test.
The testbed is written with the help of make files, shell scripts and perl scripts. For the unit tests we use cppunit, a C++ port of the popular JUnit test tool for Java.
For measuring coverage, we chose the Bullseye CodeCoverage tool. This tool does not measure statement coverage however, which is necessary for level C of the DO-178B standard. Yet it does measure function coverage, decision coverage and condition coverage. The combination of function coverage and decision coverage correspond to level D of the DO-178B standard.