Extending a property-based testing tool with parallel and distributed execution
![Thumbnail](/dspace/bitstream/handle/2183/27018/P.Costas_S%c3%a1nchez_2020_Extending_a_property-based_testing_tool.pdf.jpg?sequence=5&isAllowed=y)
Use este enlace para citar
http://hdl.handle.net/2183/27018
Excepto si se señala otra cosa, la licencia del ítem se describe como Atribución-NoComercial-SinDerivadas 3.0 España
Colecciones
Metadatos
Mostrar el registro completo del ítemTítulo
Extending a property-based testing tool with parallel and distributed executionAutor(es)
Directores
Castro Souto, Laura MilagrosSagonas, Konstantinos
Fecha
2020-09Centro/Dpto/Entidad
Enxeñaría informática, Grao enDescripción
Traballo fin de grao (UDC.FIC). Enxeñaría informática. Curso 2019/2020Resumen
[Abstract]
Software testing plays an important role in software development, as it not only helps find
bugs in the code, but also boosts the confidence of the developers that the program behaves
correctly, besides reducing the cost of fixing such errors or flaws if done in early stages.
One of the most common methods of software testing is unit testing, which tests individual
components of the software by asserting whether for cherry-picked test cases (i.e., for a
given input), the component or unit produces the expected output. This approach to testing
has however its downsides, as it is a tedious time-consuming activity, prone to errors of the
developer, such as not covering every possible case.
Property-Based Testing is a method of testing that fixes the problems found in unit testing,
for it uses properties, which are simply logical statements that capture partial correctness of
the program, to generate random input to test whether the program satisfies those properties
or not. However, while automation allows for the execution of many more tests, increasing
their number also means longer test running times.
The main goal of this project is to extend PropEr, the most powerful property-based testing
tool written in Erlang, with parallel and distributed execution and measure the obtained
speedup from doing so. [Resumo]
Probar o noso código é unha das cousas máis importantes na disciplina do desenvolvemento
do software, xa que non só nos axuda a encontrar erros no noso código, se non que
tamén aumenta a confianza das desenvoldedoras e desenvoldedores de que o seu programa se
comporta correctamente, ademais de reducir o custo de arranxar devanditos erros ou fallos
se se fai dende o inicio.
Un dos métodos máis comúns para facer probas ao software son as denominadas probas
de unidade, nas que para probar compoñentes individuáis do software, mírase se para casos
específicos (ou sexa, para entradas concretas) o compoñente ou unidade produce a saída esperada.
Esta forma de probar o código ten, porén, as súas desvantaxes, xa que é unha tarefa
tediosa e pesada de facer que consume moito tempo, e a maiores é propensa e susceptíbel a
erros das desenvoldedoras e desenvolvedores, coma non cubrir tódolos casos posibles.
As probas baseadas en propiedades son un método de probar software que soluciona estes
problemas das probas de unidade, xa que no seu lugar empregan o concepto de propiedade,
que é un predicado lóxico que captura a corrección parcial do programa. Estas propiedades
son usadas para xerar entradas aleatorias para comprobar se o programa satisface as súas
expectativas ou non. Porén aínda que a automatización permite realizar moitas máis probas,
os tempos de execución tenden a incrementarse correlativamente.
O obxectivo principal deste proxecto é estender PropEr, a ferramenta de probas baseadas
en propiedades máis potente escrita en Erlang, para permitir a súa execución paralela ou
distribuída.
Palabras clave
Functional programming
Property-Based Testing
Erlang
Concurrency
Distributed execution
Parallelization speedup
Programación funcional
Probas baseadas en propiedades
Concurrencia
Execución distribuída
Aceleración por paralelización
Property-Based Testing
Erlang
Concurrency
Distributed execution
Parallelization speedup
Programación funcional
Probas baseadas en propiedades
Concurrencia
Execución distribuída
Aceleración por paralelización
Derechos
Atribución-NoComercial-SinDerivadas 3.0 España