Exhaustive testing of safety critical Java

T Kalibera, P Parizek, M Malohlava… - Proceedings of the 8th …, 2010 - dl.acm.org
Proceedings of the 8th International Workshop on Java Technologies for Real …, 2010dl.acm.org
With traditional testing, the test case has no control over non-deterministic scheduling
decisions, and thus errors dependent on scheduling are only found by pure chance. Java
Path Finder (JPF) is a specialized Java virtual machine that can systematically explore
execution paths for all possible schedulings, and thus catch these errors. Unfortunately,
execution-based model checkers, including JPF, cannot be easily adapted to support real-
time programs. We propose a scheduling algorithm for JPF which allows testing of Safety …
With traditional testing, the test case has no control over non-deterministic scheduling decisions, and thus errors dependent on scheduling are only found by pure chance. Java Path Finder (JPF) is a specialized Java virtual machine that can systematically explore execution paths for all possible schedulings, and thus catch these errors. Unfortunately, execution-based model checkers, including JPF, cannot be easily adapted to support real-time programs.
We propose a scheduling algorithm for JPF which allows testing of Safety Critical Java (SCJ) applications with periodic event handlers at SCJ levels 0 and 1 (without aperiodic event handlers). The algorithm requires that deadlines are not missed and that there is an execution time model that can give best- and worst-case execution time estimates for a given program path and specific program inputs.
Our implementation, named RSJ, allows to search for scheduling dependent memory access errors, certain invalid argument errors, priority ceiling emulation protocol violations, and failed assertions in application code in SCJ programs for levels 0 and 1. It uses the execution time model of the Java Optimized Processor (JOP). We test our tool with Collision Detector and PapaBench application benchmarks. We provide an SCJ version of the C PapaBench benchmark, which implements an autopilot that has flown real UAVs.
ACM Digital Library