Comparativa de herramientas de pruebas basadas en propiedades para el lenguaje Python

Use este enlace para citar
http://hdl.handle.net/2183/32825Coleccións
Metadatos
Mostrar o rexistro completo do ítemTítulo
Comparativa de herramientas de pruebas basadas en propiedades para el lenguaje PythonAutor(es)
Director(es)
Castro, Laura M.Cabrero, David
Paris, Javier
Data
2022Centro/Dpto/Entidade
Universidade da Coruña. Facultade de InformáticaDescrición
Traballo fin de grao (UDC.FIC). Enxeñaría Informática. Curso 2022/2023Resumo
[Resumen]: Las pruebas basadas en propiedades son un tipo de pruebas que está ganando popularidad en
los últimos años, y se diferencian de las más tradicionales pruebas basadas en ejemplos en que,
mientras que estas últimas comprueban el funcionamiento del software mediante pruebas individuales
implementadas para cada escenario concreto, las pruebas basadas en propiedades
generan múltiples ejecuciones a partir de descripciones que se centran en los aspectos generales
que debe cumplir ese escenario. Las pruebas basadas en propiedades aportan así un nivel
más de abstracción que las pruebas tradicionales, ya que el programador sólo decide el tipo de
datos a probar, pudiendo especificar aspectos, como el valor máximo o la longitud máxima,
pero sin necesidad de determinar valores concretos manualmente.
La popularidad de este nuevo tipo de pruebas puede apreciarse en la aparición de diferentes
herramientas que le dan soporte en los diferentes lenguajes. Ante varias alternativas dentro
de cada tecnología, surge la necesidad de compararlas y contrastarlas, pero estas comparaciones
son escasas o inexistentes a día de hoy, por lo que la decisión de escoger la herramienta
que más se ajusta a las necesidades resulta poco fundamentada.
El objetivo de este trabajo es comparar las herramientas PyPBT e Hypothesis, ambas basadas
en propiedades, para el lenguaje de programación Python, y ayudar a la comunidad
a elegir la herramienta más beneficiosa para cada proyecto. Para ello, diseñaremos y realizaremos
una comparativa completa entre ambas herramientas, incluyendo una selección de
proyectos de la comunidad sobre los que ilustrar los resultados obtenidos. [Abstract]: Property-based testing is an increasingly popular type of testing, and it differs from more
traditional example-based testing in that, while the latter checks the behaviour of the software
via individual tests for each particular scenario, property-based testing generates multiple
runs from descriptions focused on more general aspects of said scenario. Property-based
testing provides, hence, a higher level of abstraction than traditional tests, since the programmer
only determines the type of data to be used, limiting some aspects if desired, such as the
maximum value or the maximum length, but without the burden of explicitly and manually
choosing concrete values.
The popularity of this new testing technique shows in the appearance of different tools
that support it for different programming languages. Given the number of choices for a given
technology, the need arises to compare and contrast them, but formal comparisons are scarce
or non-existent nowadays, rendering the decission a poorly founded one.
The aim of this work is to compare PyPBT and Hypothesis, two property-based testing
tools for the Python programming language. In doing so, we aim to help the community
choose the most beneficial for each project. We have designed and conducted a full comparison
between these tools, featuring also a selection of community projects to illustrate the
obtained results.
Palabras chave
Comparativa de herramientas
Pruebas basadas en propiedades
Pruebas software
Python
Hypothesis
PyPBT
Herramientas de pruebas
Tool comparison
Property-based testing
Software testing
Testing tools
Pruebas basadas en propiedades
Pruebas software
Python
Hypothesis
PyPBT
Herramientas de pruebas
Tool comparison
Property-based testing
Software testing
Testing tools
Dereitos
Atribución 3.0 España