Practical JFSL verification using TACO

Translation of Annotated COde (TACO) is a SAT-based tool for bounded verification of Java programs. One challenge many formal tools share is to provide a practical interface for a non-proficient user. In this article, we present an Eclipse plug-in for the static verifier TACO. This plug-in allows a...

ver descrição completa

Detalhes bibliográficos
Autores: Chicote, Marcos, Ciolek, Daniel Alfredo, Galeotti, Juan Pablo
Formato: artículo
Estado:Versión publicada
Fecha de publicación:2013
País:Argentina
Recursos:Consejo Nacional de Investigaciones Científicas y Técnicas
Repositorio:CONICET Digital (CONICET)
Idioma:inglés
OAI Identifier:oai:ri.conicet.gov.ar:11336/30359
Acesso em linha:http://hdl.handle.net/11336/30359
Access Level:acceso abierto
Palavra-chave:Static Analysis
Bounded Verification
Eclipse Plug-In
Taco
Test Case Generation
https://purl.org/becyt/ford/1.2
https://purl.org/becyt/ford/1
Descrição
Resumo:Translation of Annotated COde (TACO) is a SAT-based tool for bounded verification of Java programs. One challenge many formal tools share is to provide a practical interface for a non-proficient user. In this article, we present an Eclipse plug-in for the static verifier TACO. This plug-in allows a user to walk a counterexample trace mimicking a debugging session. TacoPlug (our plug-in) uses and extends TACO to provide a better debugging experience. TacoPlug interface allows the user to verify an annotated software using the TACO verifier. If TACO finds a violation to the specification, TacoPlug presents it in terms of the annotated source code. TacoPlug features several views of the error trace to facilitate fault understanding. It resembles any software debugger, but the debugging occurs statically without executing the program. Furthermore, should a dynamic analysis be required, TacoPlug presents the user with a unit test case generated by TACO based on the detected violation. We show the usability of our tool by means of a motivational example taken from a real-life software error.