Testing your (static analysis) truths

Casso San Román, Ignacio ORCID: https://orcid.org/0000-0001-9196-7951, Morales Caballero, José Francisco, López García, Pedro and Hermenegildo, Manuel V. ORCID: https://orcid.org/0000-0002-7583-323X (2020). Testing your (static analysis) truths. En: "30th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2020)", 7-9 Sep 2020, Bolonia (Italia).

Descripción

Título: Testing your (static analysis) truths
Autor/es:
Tipo de Documento: Ponencia en Congreso o Jornada (Artículo)
Título del Evento: 30th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2020)
Fechas del Evento: 7-9 Sep 2020
Lugar del Evento: Bolonia (Italia)
Título del Libro: LOPSTR 2020: 30th International Symposium on Logic-Based Program Synthesis and Transformation
Fecha: 2020
Materias:
ODS:
Palabras Clave Informales: Static analysis, Run-time checks, Random testing, Assertions, Abstract interpretation, Program analysis, (Constraint) logic programming
Escuela: E.T.S. de Ingenieros Informáticos (UPM)
Departamento: Inteligencia Artificial
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[thumbnail of HERMENEGILDO_2020-02.pdf] PDF (Portable Document Format) - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (504kB)

Resumen

Static analysis is nowadays an essential component of many software development toolsets, attracting significant research interest and practical application. Unfortunately, the ever-increasing complexity of static analyzers makes their coding error-prone. At the same time, the correctness and reliability of software analyzers is critical if they are to be inserted in production compilers and development environments. While there have been some notorious successes in the validation of compilers, comparatively little work exists on the systematic validation of static analyzers. Contributing factors here may be the intrinsic difficulty of formally verifying code that is quite complex and of finding suitable oracles for testing it. In this paper, we propose a simple, automatic method for testing abstract interpretation-based static analyzers. Broadly, it consists in checking, over a suite of benchmarks, that the properties inferred statically are satisfied dynamically. The main advantage of our approach is its simplicity, which stems directly from framing it within the Ciao assertion-based validation framework, and its blended static/dynamic assertion checking approach. We show that in this setting, the analysis can be tested with little effort by combining the following components already present in the framework: 1) the static analyzer, which outputs its results as the original program source with assertions interspersed; 2) the assertion run-time checking mechanism, which instruments a program to ensure that no assertion is violated at run time; 3) the random test case generator, which generates random test cases satisfying the properties present in assertion preconditions; and 4) the unit-test framework, which executes those test cases. We show how a combination of these elements and a trivial program transformation work together to compose a tool that can effectively discover and locate errors in the different components of the static analyzer. We apply our approach to test some of CiaoPP’s analysis domains over a wide range of programs, successfully finding non-trivial, previously undetected bugs, with a low degree of effort.

Proyectos asociados

Tipo
Código
Acrónimo
Responsable
Título
Gobierno de España
TIN2015-67522-C3-1-R
TRACES
Fundación IMDEA Software
Tecnologías y herramientas para el desarrollo de software consciente de los recursos, correcto y eficiente (IMDEA)
Comunidad de Madrid
P2018/TCS-4339
BLOQUES-CM
Sin especificar
Contratos inteligentes y blockchains escalables y seguros mediante verificación y análisis

Más información

ID de Registro: 70114
Identificador DC: https://oa.upm.es/70114/
Identificador OAI: oai:oa.upm.es:70114
URL Oficial: https://cliplab.org/papers/testing-ana-truths-pre....
Depositado por: Biblioteca Facultad de Informatica
Depositado el: 17 Mar 2022 09:27
Ultima Modificación: 28 May 2025 11:36