Detalhes do Documento

Property-based testing

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

Data: 2025

Identificador Persistente: http://hdl.handle.net/10400.22/32311

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

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


Descrição

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.

Tipo de Documento Comunicação em conferência
Idioma Português
Contribuidor(es) REPOSITÓRIO P.PORTO
Licença CC
facebook logo  linkedin logo  twitter logo 
mendeley logo

Documentos Relacionados

Não existem documentos relacionados.