2024/09/13 by Wanja Zaeske, Pietro Albini, Zaeske, Wanja +5 · 2 voices
Computer Science · Engineering · #Interpretation (philosophy) #Measure (data warehouse) #Rust (programming language) #Safety Systems Engineering in Autonomy #Software #Software Reliability and Analysis Research #Software Testing and Debugging Techniques #Software development #Software quality #Software system
paper · pdf · doi:10.2514/1.i011558
openalex publication_date 2025/09/09 · openalex created_date 2025/09/16 · openalex updated_date 2026/07/02
Testing is an essential means to verify software for the purpose of certification, especially in safety-critical applications. To quantify how thoroughly a software item has been tested, a test coverage criterion is required. Maybe the strictest such known in safety-critical systems is modified condition/decision coverage (MC/DC), which DO-178C/ED-12C prescribes for the highest software software level in aviation. In the past, ambiguities in the interpretation of MC/DC have been resolved already, in CAST-10. However, some central features of the Rust programming language necessitate further clarification. This work investigates the aforementioned features, in particular pattern-matching, providing a consistent view on how to apply MC/DC to Rust. Hence, this paper informs the implementation of tools to measure MC/DC for code written in Rust, paving the road toward Rust in high-assurance applications.