Pasar al contenido principal

Main navigation

  • Sobre El ITEFI
  • Investigación
  • Formación y empleo
  • OpenLab
  • Servicios científico técnicos
  • Directorio

Testing Your (Static Analysis) Truths

static analysis
run-time checks
random testing
assertions
abstract interpretation
program analysis
(Constraint) logic programming
Casso, I., Morales, J.F., López, P., Hermenegildo, M.V.
Truths. Logic-Based Program Synthesis and Transformation - 30th International Symposium, Post-Proceedings, Lecture Notes in Computer Science, Vol. 12561, pág. 271-292, Springer, 2021.
https://doi.org/10.1007/978-3-030-68446-4_14

Static analysis is nowadays an essential component of many software development toolsets. Despite some notorious successes in the validation of compilers, comparatively little work exists on the systematic validation of static analyzers, whose correctness and reliability is critical if they are to be inserted in production environments. Contributing factors 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: the static analyzer, the assertion run-time checking mechanism, the random test case generator, and the unit-test framework. Together they compose a tool that can effectively discover and locate errors in the different components of the analysis framework. 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.

 

Partially funded by MICINN PID2019-108528RB-C21 ProCode and the Madrid P2018/TCS-4339 BLOQUES-CM program.

GiCSI
Departamento de Acústica y Evaluación No Destructiva (DAEND)
  • GAA: Grupo de Acústica ambiental
  • G CARMA: Grupo de Caracterización de materiales mediante evaluación no destructiva
  • ULAB: Ultrasonidos para el análisis de líquidos y bioingeniería
Departamento de Tecnologías de la Información y Las Comunicaciones (DTIC)
  • GiCP: Grupo de investigación en Ciberseguridad y Protección de la Privacidad
  • GICSI: Grupo de investigación en Criptología y Seguridad de la Información
    • LCQE: Laboratorio de Comunicaciones Cuánticas
  • PSUM: Grupo de Procesamiento de Señal en sistemas Ultrasónicos Multicanal
Departamento de Sensores y Sistemas Ultrasónicos (DSSU)
  • GSTU: Grupo de Sistemas y tecnologías ultrasónicas
  • NoySI: Grupo de Nanosensores y Sistemas Inteligentes
  • RESULT: Resonadores ultrasónicos para cavitación y micromanipulación
  • SENSAVAN: Grupo de Tecnología de Sensores Avanzados
  • QE: Electrónica Cuántica
Laboratorios
  • Laboratorio de Acústica
  • Laboratorio de Metrología Ultrasónica Médica (LMUM)
  • Laboratorio de Comunicaciones Cuánticas
  • Laboratory for International Collaboration in Advanced Biophotonics Imaging

Instituto de Tecnologías Físicas y de la Información Leonardo Torres Quevedo  - ITEFI
C/ Serrano, 144. 28006 - Madrid • Tel.: (+34) 91 561 88 06  Contacto  •  Intranet
EDIFICIO PARCIALMENTE ACCESIBLE POR PERSONAS CON MOVILIDAD REDUCIDA