bachelorThesis
PEF: Python Error Finder
Autor
Bordese, Andrés Matías
Hayes, Tomás
Institución
Resumen
La verificación del correcto funcionamiento de los sistemas es uno de los aspectos más importante
del desarrollo de software, y a su vez, uno de los más costosos de llevar a cabo. El testing tradicional
y la verificación de modelos requiere mucho esfuerzo para lograr una buena cobertura de las posibles
ejecuciones. En este trabajo, utilizamos y extendemos una técnica que combina ejecución simbólica,
el poder de los razonadores recientes y la versatilidad de lenguajes puramente orientados a objetos,
para crear una librería que explora y describe los caminos de un programa, detectando errores de
manera automática y facilitando posteriormente, la generación de tests.
Presentaremos a PEF, una herramienta novedosa que hace uso de la técnica mencionada para
detectar errores en programas escritos en Python 3 con muy poco esfuerzo por parte del usuario.
Mostraremos la arquitectura del motor de ejecución simbólica y los aspectos fundamentales del
lenguaje necesarios para construir el motor en forma de librería, sin tener que re-implementar el
intérprete, como es usual en proyectos similares. También explicaremos el sistema de contratos que
incorporamos para indicar pre y post condiciones que se desean aplicar y validar en los programas
a ser explorados por PEF.