SearcharxivSearch

arXiv subjects

Elson Kurian

Publications and source records attributed to Elson Kurian.

2 recordsLinked to original sources

Combined Program Analysis Techniques: A Systematic Mapping Study

Context. Since the eighties, the combination of program analysis techniques has been increasingly recognized as a promising approach to overcome the limitations of standalone methods. While individual techniques, based on either static or dynamic analysis, address important challenges in software dependability, their integration often yields synergistic effects on precision, coverage and insights. Objective. This paper surveys a significant portion of the modern literature on combining program analysis techniques, consisting of 248 primary studies, with the aim of cataloging the types of interactions and synergies that were exploited to define combined-program-analysis techniques so far. The goal is to provide a structured understanding of why and how program analysis techniques can be conjoined, and which benefits can arise from their interactions. Method. We devise an original taxonomy that classifies combined-program-analysis techniques according to their aimed synergistic effects, inter-analysis workflows and interaction schemata (to which we refer to as mapping functions). We then map the primary studies to the taxonomy, answering research questions on which synergistic effects those studies pursued via the combination of analysis techniques, which inter-analysis workflows they embodied, and which types of mapping functions they exploited. Conclusion. Our taxonomy and literature mapping reveal the commonalities and the differences, in terms of goals and patterns, in the design of combined-program-analysis techniques. Thereby we provide a framework of concepts that can foster the ability of researchers and practitioners to reason on existing combined-program-analysis techniques, and steer further research on new useful combined-program-analysis techniques and analysis frameworks.

cs.SE

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

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.

cs.SE