Relational Symbolic Execution
نویسندگان
چکیده
Symbolic execution is a classical program analysis technique, widely used for program testing and bug finding. In this work we generalize symbolic execution to support program analysis for relational properties, namely properties about two programs, or about two executions of a single program on different inputs. We design a relational symbolic execution engine, named RelSym, which supports testing and bug finding for relational properties of imperative programs with for-loops and arrays. RelSym also combines relational symbolic execution with program logics. This combination is useful not only to test but also to prove relational properties, by exploiting the finite structure of arrays and for-loops. We demonstrate the flexibility of RelSym by testing and proving relational properties for examples from different domains, such as information flow, program equivalence, sensitivity analysis, and relational cost analysis.
منابع مشابه
A Direct Symbolic Execution of SQL Code for Testing of Data-Oriented Applications
Symbolic execution is a technique which enables automatically generating test inputs (and outputs) exercising a set of execution paths within a program to be tested. If the paths cover a sufficient part of the code under test, the test data offer a representative view of the program’s actual behaviour, which notably enables detecting errors and correcting faults. Relational databases are ubiqui...
متن کاملTesting Database Programs using Relational Symbolic Execution
Symbolic execution is a technique which allows to automatically generate test inputs (and outputs) exercising a set of execution paths within a program to be tested. If the paths cover a sufficient part of the code under test, the test data offer a representative view of the program’s actual behaviour, allowing to detect failures and correct faults. Relational databases are ubiquitous in softwa...
متن کاملA Symbolic Execution Algorithm for Constraint-Based Testing of Database Programs
In so-called constraint-based testing, symbolic execution is a common technique used as a part of the process to generate test data for imperative programs. Databases are ubiquitous in software and testing of programs manipulating databases is thus essential to enhance the reliability of software. This work proposes and evaluates experimentally a symbolic execution algorithm for constraint-base...
متن کاملTwo Data Organizations for Storing Symbolic Images in a Relational Database System
A method is presented for integrating images into the framework of a conventional database management system (DBMS). It is applicable to a class of images termed symbolic images in which the set of objects that may appear are known a priori. The geometric shapes of the objects are relatively primitive and they convey symbolic information. Both the pattern recognition and indexing aspects of the...
متن کاملSymbolic User-Defined Periodicity in Temporal Relational Databases
Calendars and periodicity play a fundamental role in many applications. Recently, some commercial databases started to support user-defined periodicity in the queries in order to provide “a human-friendly way of handling time” (see, e.g., TimeSeries in Oracle 8). On the other hand, only few relational data models support user-defined periodicity in the data, mostly using “mathematical” expressi...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- CoRR
دوره abs/1711.08349 شماره
صفحات -
تاریخ انتشار 2017