PEF : Python error finder

Autores
Barsotti, Damián; Bordese, Andrés Matías; Hayes, Tomás
Año de publicación
2018
Idioma
inglés
Tipo de recurso
documento de conferencia
Estado
versión publicada
Descripción
Ponencia presentada en la 43ª Conferencia Latinoamericana de Informática. Córdoba, Argentina, del 4 al 8 de septiembre de 2017.
Fil: Barsotti, Damián. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Fil: Bordese, Andrés Matías. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Fil: Hayes, Tomás. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
PeerCheck [1] is a lightweight library-based approach to implement symbolic execution over object-oriented languages without modifying the analyzed code. Unlike traditional symbolic execution engines, the symbolic semantics is built as an external library that runs together with the target program. They can accomplish this task thanks to special features of the python programming language which allows one to implement symbolic values with class objects. However, their approach is limited to symbolic execution on primitive types. In this work, we show an extension that enables one to perform symbolic execution with user-defined class objects. In addition, we build a new verification tool, called PEF, which implements the described technique, and our extension. This tool can be used to verify programs written in the Python programming language, and we developed in python on top of the Z3 SMT solver. We used the tool to verify its own code, showing its potential and usefulness to test programs in production. We also evaluate the tool for testing well known algorithms and data structures.
Fil: Barsotti, Damián. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Fil: Bordese, Andrés Matías. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Fil: Hayes, Tomás. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Ciencias de la Computación
Materia
Reliability
Verification
Unit testing
Symbolic execution
Program testing
Program debugging
Program proving
Program verification
Symbolic interpretation
Testing Python programs
Nivel de accesibilidad
acceso abierto
Condiciones de uso
Repositorio
Repositorio Digital Universitario (UNC)
Institución
Universidad Nacional de Córdoba
OAI Identificador
oai:rdu.unc.edu.ar:11086/561283

id RDUUNC_9d3f492d4088f6d7957da728c5a398d2
oai_identifier_str oai:rdu.unc.edu.ar:11086/561283
network_acronym_str RDUUNC
repository_id_str 2572
network_name_str Repositorio Digital Universitario (UNC)
spelling PEF : Python error finderBarsotti, DamiánBordese, Andrés MatíasHayes, TomásReliabilityVerificationUnit testingSymbolic executionProgram testingProgram debuggingProgram provingProgram verificationSymbolic interpretationTesting Python programsPonencia presentada en la 43ª Conferencia Latinoamericana de Informática. Córdoba, Argentina, del 4 al 8 de septiembre de 2017.Fil: Barsotti, Damián. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.Fil: Bordese, Andrés Matías. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.Fil: Hayes, Tomás. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.PeerCheck [1] is a lightweight library-based approach to implement symbolic execution over object-oriented languages without modifying the analyzed code. Unlike traditional symbolic execution engines, the symbolic semantics is built as an external library that runs together with the target program. They can accomplish this task thanks to special features of the python programming language which allows one to implement symbolic values with class objects. However, their approach is limited to symbolic execution on primitive types. In this work, we show an extension that enables one to perform symbolic execution with user-defined class objects. In addition, we build a new verification tool, called PEF, which implements the described technique, and our extension. This tool can be used to verify programs written in the Python programming language, and we developed in python on top of the Z3 SMT solver. We used the tool to verify its own code, showing its potential and usefulness to test programs in production. We also evaluate the tool for testing well known algorithms and data structures.Fil: Barsotti, Damián. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.Fil: Bordese, Andrés Matías. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.Fil: Hayes, Tomás. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.Ciencias de la Computaciónhttps://orcid.org/0009-0003-8868-32632018info:eu-repo/semantics/conferenceObjectinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_5794info:ar-repo/semantics/documentoDeConferenciaapplication/pdf1571-0661http://hdl.handle.net/11086/561283enginfo:eu-repo/semantics/openAccessreponame:Repositorio Digital Universitario (UNC)instname:Universidad Nacional de Córdobainstacron:UNC2026-05-14T10:37:02Zoai:rdu.unc.edu.ar:11086/561283Institucionalhttps://rdu.unc.edu.ar/Universidad públicaNo correspondehttp://rdu.unc.edu.ar/oai/snrdoca.unc@gmail.comArgentinaNo correspondeNo correspondeNo correspondeopendoar:25722026-05-14 10:37:03.632Repositorio Digital Universitario (UNC) - Universidad Nacional de Córdobafalse
dc.title.none.fl_str_mv PEF : Python error finder
title PEF : Python error finder
spellingShingle PEF : Python error finder
Barsotti, Damián
Reliability
Verification
Unit testing
Symbolic execution
Program testing
Program debugging
Program proving
Program verification
Symbolic interpretation
Testing Python programs
title_short PEF : Python error finder
title_full PEF : Python error finder
title_fullStr PEF : Python error finder
title_full_unstemmed PEF : Python error finder
title_sort PEF : Python error finder
dc.creator.none.fl_str_mv Barsotti, Damián
Bordese, Andrés Matías
Hayes, Tomás
author Barsotti, Damián
author_facet Barsotti, Damián
Bordese, Andrés Matías
Hayes, Tomás
author_role author
author2 Bordese, Andrés Matías
Hayes, Tomás
author2_role author
author
dc.contributor.none.fl_str_mv https://orcid.org/0009-0003-8868-3263
dc.subject.none.fl_str_mv Reliability
Verification
Unit testing
Symbolic execution
Program testing
Program debugging
Program proving
Program verification
Symbolic interpretation
Testing Python programs
topic Reliability
Verification
Unit testing
Symbolic execution
Program testing
Program debugging
Program proving
Program verification
Symbolic interpretation
Testing Python programs
dc.description.none.fl_txt_mv Ponencia presentada en la 43ª Conferencia Latinoamericana de Informática. Córdoba, Argentina, del 4 al 8 de septiembre de 2017.
Fil: Barsotti, Damián. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Fil: Bordese, Andrés Matías. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Fil: Hayes, Tomás. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
PeerCheck [1] is a lightweight library-based approach to implement symbolic execution over object-oriented languages without modifying the analyzed code. Unlike traditional symbolic execution engines, the symbolic semantics is built as an external library that runs together with the target program. They can accomplish this task thanks to special features of the python programming language which allows one to implement symbolic values with class objects. However, their approach is limited to symbolic execution on primitive types. In this work, we show an extension that enables one to perform symbolic execution with user-defined class objects. In addition, we build a new verification tool, called PEF, which implements the described technique, and our extension. This tool can be used to verify programs written in the Python programming language, and we developed in python on top of the Z3 SMT solver. We used the tool to verify its own code, showing its potential and usefulness to test programs in production. We also evaluate the tool for testing well known algorithms and data structures.
Fil: Barsotti, Damián. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Fil: Bordese, Andrés Matías. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Fil: Hayes, Tomás. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina.
Ciencias de la Computación
description Ponencia presentada en la 43ª Conferencia Latinoamericana de Informática. Córdoba, Argentina, del 4 al 8 de septiembre de 2017.
publishDate 2018
dc.date.none.fl_str_mv 2018
dc.type.none.fl_str_mv info:eu-repo/semantics/conferenceObject
info:eu-repo/semantics/publishedVersion
http://purl.org/coar/resource_type/c_5794
info:ar-repo/semantics/documentoDeConferencia
format conferenceObject
status_str publishedVersion
dc.identifier.none.fl_str_mv 1571-0661
http://hdl.handle.net/11086/561283
identifier_str_mv 1571-0661
url http://hdl.handle.net/11086/561283
dc.language.none.fl_str_mv eng
language eng
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositorio Digital Universitario (UNC)
instname:Universidad Nacional de Córdoba
instacron:UNC
reponame_str Repositorio Digital Universitario (UNC)
collection Repositorio Digital Universitario (UNC)
instname_str Universidad Nacional de Córdoba
instacron_str UNC
institution UNC
repository.name.fl_str_mv Repositorio Digital Universitario (UNC) - Universidad Nacional de Córdoba
repository.mail.fl_str_mv oca.unc@gmail.com
_version_ 1865181460690894848
score 13.115601