Realiza-se, no próximo dia 18 de novembro, pelas 14h, um seminário intitulado “Why Property-based Testing Matters”, promovido pelo Laboratório de Engenharia Matemática (LEMA) do Instituto Superior de Engenharia do Porto (ISEP).
O evento irá decorrer na sala H211 e o orador convidado é Pedro Vasconcelos, professor auxiliar da Faculdade de Ciências da Universidade do Porto (FCUP). O idioma desta palestra poderá ser o inglês ou o português.
Enquadramento
O teste baseado em propriedades (PBT) é uma metodologia de teste para componentes de software (como funções, classes, APIs Web, etc.). Ao invés de escrever diversos casos de teste específicos, um conjunto de testes PBT consiste em propriedades gerais e, possivelmente, alguns geradores de dados. Um número arbitrário de testes pode, então, ser gerado automaticamente pela estrutura de testes.
O PBT teve origem há mais de 20 anos na comunidade de programação funcional, mas, desde então, tem sido adotado em muitas outras linguagens de programação e paradigmas. Foi também adotado por empresas como a Ericsson, Volvo, Dropbox e AWS.
Este seminário apresentará as principais ideias por detrás do PBT e mostrará exemplos, usando a biblioteca Hypothesis PBT do Python. Pressupõe-se um conhecimento básico de Python, mas não é necessária experiência prévia com PBT.
Argumentamos que a tendência atual para a adoção de ferramentas baseadas em Inteligência Artificial (tais como ChatGPT, Co-Pilot, etc.) para a geração de código torna o PBT mais relevante como uma ferramenta prática e leve para a verificação de código.
Orador
Pedro Vasconcelos concluiu a licenciatura e o mestrado em Ciência de Computadores na Faculdade de Ciências da Universidade do Porto e o doutoramento na Universidade de St. Andrews (Escócia).
É professor auxiliar no Departamento de Ciência de Computadores da FCUP desde 2008, onde leciona disciplinas de linguagens de programação, compiladores e de áreas relacionadas. É membro integrado do Laboratório de Inteligência Artificial e Ciências da Computação (LIACC). Os seus interesses de investigação incluem programação funcional, sistemas de tipos, testes baseados em propriedades e pedagogia de programação.
