SPIDER: Specification-based Integration Defect Revealer

02/08/2022
by   Vladislav Feofilaktov, et al.
0

Modern software design practice implies widespread use in the development of ready-made components, usually designed as external libraries. The undoubted advantages of reusing third-party code can be offset by integration errors that appear in the developed software. The reason for the appearance of such errors is mainly due to misunderstanding or incomplete understanding by the programmer of the details of external libraries such as an internal structure and the subtleties of functioning. The documentation provided with the libraries is often very sparse and describes only the main intended scenarios for the interaction of the program and the library. In this paper, we propose the approach based on the use of formal library specifications, which allows detecting integration errors using static analysis methods. To do this, the external library is described using the LibSL specification language, the resulting description is translated into the internal data structures of the KEX analyzer. The execution of the incorrect scenarios of library usage, such as the incorrect sequence of method calls or the violation of the API function contract, is marked in the program model with special built-in functions of the KEX analyzer. Later, when analyzing the program, KEX becomes able to detect integration errors, since incorrect library usage scenarios are diagnosed as calling marked functions. The proposed approach is implemented as SPIDER (SPecification-based Integration Defect Revealer), which is an extension of the Kex analyzer and has proven its efficiency by detecting integration errors of different classes on several special-made projects, as well as on several projects taken from open repositories.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/10/2021

Data-Driven Abductive Inference of Library Specifications

Programmers often leverage data structure libraries that provide useful ...
research
10/11/2022

Code Librarian: A Software Package Recommendation System

The use of packaged libraries can significantly shorten the software dev...
research
05/24/2020

Req2Lib: A Semantic Neural Model for Software Library Recommendation

Third-party libraries are crucial to the development of software project...
research
05/27/2018

Developing RFID library systems in the direction of integration into the global identification system EPC

The possibility of modification of the regulatory framework of RFID libr...
research
03/17/2021

DUETS: A Dataset of Reproducible Pairs ofJava Library-Clients

Software engineering researchers look for software artifacts to study th...
research
11/21/2022

Contract-Based Specification Refinement and Repair for Mission Planning

We address the problem of modeling, refining, and repairing formal speci...
research
07/08/2022

Understanding the Role of External Pull Requests in the NPM Ecosystem

The risk to using third-party libraries in a software application is tha...

Please sign up or login with your details

Forgot password? Click here to reset