Oliveira, André LealAlves, Fabiana ManuelaCarvalho, FernandoAfonso, LuísMendonça, JorgeSousa, António2026-04-272026-04-272025-12-09Oliveira, A. L., Alves, F. M., Carvalho, F., Afonso, L., Mendonça, J. & Sousa, A. (2025, dezembro 9). Property-based testing. In Sá, C., Oliveira, C., Silva, E., Cardoso, M., Morgado, N., Proença, P., Carvalho, P., Vieira, R., Meireles, R., & Moreira, S. (Eds.). Simpósio de Engenharia Informática 2025. Instituto Superior de Engenharia do Porto ISEP – P.Porto978-989-36167-7-2http://hdl.handle.net/10400.22/32311Este 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.porProperty-based testingHypothesisPythonPy-moneyETAFProperty-based testingconference paper