Automatically Generating Test Cases for Safety-Critical Software via Symbolic Execution

09/22/2022
by   Elson Kurian, et al.
0

Automated test generation based on symbolic execution can be beneficial for systematically testing safety-critical software, to facilitate test engineers to pursue the strict testing requirements mandated by the certification standards, while controlling at the same time the costs of the testing process. At the same time, the development of safety-critical software is often constrained with programming languages or coding conventions that ban linguistic features which are believed to downgrade the safety of the programs, e.g., they do not allow dynamic memory allocation and variable-length arrays, limit the way in which loops are used, forbid recursion, and bound the complexity of control conditions. As a matter of facts, these linguistic features are also the main efficiency-blockers for the test generation approaches based on symbolic execution at the state of the art. This paper contributes new evidence of the effectiveness of generating test cases with symbolic execution for a significant class of industrial safety critical-systems. We specifically focus on Scade, a largely adopted model-based development language for safety-critical embedded software, and we report on a case study in which we exploited symbolic execution to automatically generate test cases for a set of safety-critical programs developed in Scade. To this end, we introduce a novel test generator that we developed in a recent industrial project on testing safety-critical railway software written in Scade, and we report on our experience of using this test generator for testing a set of Scade programs that belong to the development of an on-board signaling unit for high-speed rail. The results provide empirically evidence that symbolic execution is indeed a viable approach for generating high-quality test suites for the safety-critical programs considered in our case study.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/19/2020

Combining Dynamic Symbolic Execution, Machine Learning and Search-Based Testing to Automatically Generate Test Cases for Classes

This article discusses a new technique to automatically generate test ca...
research
10/29/2019

Knowledge and skills requirements for the software design and testing of automotive applications

The required knowledge and skills that should be provided to the novice ...
research
12/10/2021

Compositional Test Generation of Industrial Synchronous Systems

Synchronous systems provide a basic model of embedded systems and indust...
research
10/25/2021

Complete Agent-driven Model-based System Testing for Autonomous Systems

In this position paper, a novel approach to testing complex autonomous t...
research
10/03/2019

Decentralized On-line Task Reallocation on Parallel Computing Architectures with Safety-Critical Applications

This work presents a decentralized allocation algorithm of safety-critic...
research
12/03/2019

Achieving Determinism in Adaptive AUTOSAR

AUTOSAR Adaptive Platform is an emerging industry standard that tackles ...
research
02/28/2021

On Introducing Automatic Test Case Generation in Practice: A Success Story and Lessons Learned

The level and quality of automation dramatically affects software testin...

Please sign up or login with your details

Forgot password? Click here to reset