Neto, João PedroBatista, Inês Chaves2025-01-272025-01-2720252024http://hdl.handle.net/10400.5/97776Trabalho de projeto de mestrado, Segurança Informática, 2025, Universidade de Lisboa, Faculdade de CiênciasA fase de teste é uma das etapas mais demoradas no ciclo de desenvolvimento de software [14]. A execução repetida de testes, a manutenção de scripts de teste e a comparação dos resultados esperados com os resultados reais são tarefas comuns, mas essenciais para garantir a qualidade do software, consumindo rotineiramente grandes quantidades de tempo a equipa de testes. Essa demanda constante de tempo e recursos pode limitar o processo de desenvolvimento, aumentando o tempo de entrega e, em alguns casos, o custo total do projeto. Para mitigar esses desafios, a automatização e as metodologias ágeis de desenvolvimento de software oferecem uma série de vantagens, como feedback imediato, maior eficácia no desenvolvimento, menos erros e defeitos, colaboração contínua e melhor qualidade de código [18, 57]. Além disso, a automatização permite que os testes sejam executados com mais frequência e precisão, garantindo que as mudanças no código são verificadas imediatamente, contribuindo para a deteção precoce de erros. A fase de testes é crucial para todas as empresas de desenvolvimento de software, pois assegura que o produto final atenda às expectativas de qualidade e funcionalidade, reduzindo o risco de falhas pós-lançamento, que podem provocar altos custos de manutenção e danos à reputação. Contudo, é importante notar que a automatização de testes, por si só, não é suficiente para garantir a qualidade do software; ela deve ser integrada num domínio mais amplo de Quality Assurance (QA), ou Garantia de Qualidade, que abrange práticas e processos para assegurar a excelência do produto final [28]. Essa integração é vital para que a automatização contribua efetivamente para a melhoria contínua dos processos de desenvolvimento. Este trabalho de projeto apresenta um projeto realizado em parceria com uma consultoria de grande escala, cujo objetivo foi automatizar testes de software utilizando a framework SpecFlow, uma ferramenta que suporta a metodologia ágil de desenvolvimento Behavior-Driven Development (BDD).The testing phase is one of the most time-consuming stages in the software development cycle [14]. The repeated execution of tests, the maintenance of test scripts, and the comparison of expected results with actual outcomes are common but essential tasks to ensure software quality. These tasks routinely consume large amounts of time for the software testing team. This constant demand for time and resources can often become a limiting factor in the development process, increasing delivery time and, in some cases, contributing to the overall project costs. Therefore, automation and agile software development methodologies help facilitate these tasks, as they quickly translate into a series of advantages for all development team members, including immediate feedback, increased development efficiency, fewer errors and defects, continuous collaboration, and improved code quality [18, 57]. Additionally, automation allows tests to be executed more frequently and accurately, ensuring that changes in the code are immediately verified, which contributes to the early detection of errors and minimizes rework.Moreover, the testing phase is crucial for all software development companies, as it ensures that the final product meets quality and functionality expectations, reducing the risk of post-launch failures, which can result in high maintenance costs and damage to reputation. However, it is important to note that when it comes to software quality, test automation alone is not sufficient; it must be integrated into a broader domain of Quality Assurance (QA), which encompasses a variety of practices and processes to ensure the excellence of the final product [28]. This integration is essential for automation to truly contribute to the continuous improvement of development processes. This work presents a project carried out in partnership with a large-scale consulting company, which aimed at automating software testing using the SpecFlow framework, a tool that supports the agile software development methodology known as Behavior-Driven Development (BDD).porAutomatizaçãoTestes de softwareBehaviour Driven Development (BDD)SpecFlowQualidade de softwareTrabalhos de projeto de mestrado - 2025Automatização de Testes de Softwaremaster thesis