论文标题

蜘蛛:基于规范的集成缺陷揭示器

SPIDER: Specification-based Integration Defect Revealer

论文作者

Feofilaktov, Vladislav, Itsykson, Vladimir

论文摘要

现代软件设计实践意味着在开发现成的组件(通常是外部库)中的广泛使用。重复使用第三方代码的毫无疑问的优势可以被开发软件中出现的集成错误所抵消。出现此类错误的原因主要是由于程序员对外部库的细节(例如内部结构和功能的微妙之处)的误解或不完整的理解。图书馆提供的文档通常非常稀疏,仅描述了程序与库的交互的主要方案。在本文中,我们根据使用正式图书馆规格提出了该方法,该方法允许使用静态分析方法检测集成错误。为此,使用LIBL规范语言描述了外部库,将结果描述转化为KEX分析仪的内部数据结构。在程序模型中标记了库呼叫的不正确序列或违反API函数合同的不正确方案的执行,例如使用KEX Analyzer的特殊内置功能。稍后,在分析程序时,KEX能够检测到集成错误,因为错误的库用法方案被诊断为呼叫标记的功能。所提出的方法被实现为蜘蛛(基于规范的集成缺陷揭示器),这是KEX分析仪的扩展,并通过检测几个特殊制造项目的不同类别的集成错误以及从开放式存储库中获得的几个项目来证明其效率。

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.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源