Document details

Property-based testing

Author(s): Oliveira, André Leal ; Alves, Fabiana Manuela ; Carvalho, Fernando ; Afonso, Luís ; Mendonça, Jorge ; Sousa, António

Date: 2025

Persistent ID: http://hdl.handle.net/10400.22/32311

Origin: Repositório Científico do Instituto Politécnico do Porto

Subject(s): Property-based testing; Hypothesis; Python; Py-money; ETAF


Description

Este manuscrito apresenta o desenvolvimento e aplicação de testes unitários e de testes baseados em propriedades (Property-Based Testing — PBT), utilizando a biblioteca Hypothesis, dedicada ao suporte de PBT em Python. A abordagem iniciou-se com a criação de testes PBT para pequenos exemplos de código, explorando a capacidade da ferramenta para gerar automaticamente conjuntos diversificados de entradas, incluindo alguns casos extremos, permitindo analisar e validar as propriedades do software. Posteriormente, esses testes foram aplicados à biblioteca py-money e à Embedded Test Automation Framework (ETAF) da Capgemini Engineering, que já dispunham de alguns testes unitários. Assim, para potenciar o seu melhor desempenho, são usados testes unitários, complementados com testes PBT para ultrapassar algumas das suas falhas, particularmente, em cenários envolvendo a biblioteca py-money operando com os diversos tipos de moedas mundiais – onde o número de casas décimais pode variar ou simplesmente não ser usado. A formulação de propriedades PBT e a geração automática de casos extremos pela biblioteca Hypothesis acelera a identificação de erros, reduzindo o esforço manual necessário para implementação de testes dedicados a casos específicos. A avaliação comparativa entre os dois testes considerou os resultados obtidos, o tempo de execução e a cobertura dos cenários a analisar, corroborando a utilidade dos testes baseados em propriedades como um complemento para o incremento da robustez do software. Conclui-se que a geração automática de casos de teste diversificados e críticos antecipa a identificação de erros, aumentando significativamente a cobertura e a robustez dos sistemas testados.

Document Type Conference paper
Language Portuguese
Contributor(s) REPOSITÓRIO P.PORTO
CC Licence
facebook logo  linkedin logo  twitter logo 
mendeley logo

Related documents

No related documents