Lacerda, Ana Cristina Wanzeller Guedes deCunha, Carlos Augusto da SilvaTrindade, Sofia Inês Morais2022-01-192022-01-192021-12-062021-10-06http://hdl.handle.net/10400.19/7010A qualidade de um sistema, atualmente é algo imprescindível para os utilizadores. Sem o mínimo de qualidade o produto pode não chegar ao consumidor final. Para assegurar a qualidade é necessário efetuar uma quantidade exaustiva de testes durante as fases do seu desenvolvimento de onde podem surgir defeitos. Quanto mais cedo os defeitos forem detetados menor é o seu custo de resolução. Atualmente, existe também a necessidade de validar os sistemas de forma mais rápida e segura devido ao conceito de entrega e integração contínua, cujo objetivo é colocar qualquer tipo de alteração no ambiente de produção. Neste sentido, recorre-se a estratégias de automação de testes para otimizar o seu processo de entrega. Com a realização deste trabalho pretende-se aprofundar os fundamentos teóricos sobre a área da qualidade, mas também, propor uma estratégia de automação de testes de software, tendo em conta uma arquitetura básica e passível de aplicação na maioria de sistemas que a usem. Esta estratégia é aplicada num caso de estudo, tendo em conta as boas práticas e diretrizes do processo de teste: planeamento, controlo e monitorização, análise, desenho, implementação, execução e conclusão. A arquitetura adotada pela estratégia de testes proposta é baseada no padrão arquitetural de três camadas. O âmbito da estratégia passa pela implementação de testes de integração nos serviços da camada aplicacional, onde se validam as regras de negócio, o corpo e o código das respostas recebidas. Inclui ainda a implementação de testes End-to-End na camada de apresentação, onde se validam interações entre os componentes e as interfaces da aplicação. Todos os testes automatizados são executados numa pipeline de integração e entrega contínua, sempre que pretenda enviar qualquer alteração para o ambiente produtivo. A aplicação da estratégia a um caso de uso permitiu concluir que a mesma é passível de utilização em projetos de várias dimensões, visto que são abordados os aspetos mais pertinentes da definição estratégias de teste. Qualquer pessoa que tenha interesse na área de automação de testes consegue obter as bases necessárias para proceder á implementação de testes automáticos, criar baterias de testes de regressão automáticas e investir o restante tempo em testes exploratórios manuais, cujo foco são situações nunca antes pensadas e de onde podem surgir problemas ainda não identificados, evitando que estes cheguem ao consumidor final.ABSTRACT: The quality of a system nowadays is something essential for users. Without a minimum of quality, the product may not reach the final consumer. To ensure quality it is necessary to carry out an exhaustive amount of tests during all phases of the development where defects may arise. The sooner defects are detected, the lower their resolution cost. In addition to this, there is also a need to validate systems faster and more securely due to the concept of continuous integration and delivery, whose objective is to place any type of change in the production environment. That way, test automation strategies are used to optimize the delivery process. The purpose of this work is to deepen the theoretical foundations of the quality area, but also to propose a software test automation strategy, considering a basic architecture that can be applied in most systems that may use it. This strategy will be applied in a case study, considering the best practices and guidelines of the test process: planning, control and monitoring, analysis, design, implementation, execution, and conclusion. The architecture adopted by the proposed testing strategy is based on the three-tier architectural pattern. The scope of the strategy involves the implementation of integration tests in the application layer of the services, where the business rules, the body and the code of the responses received are validated. It also includes the implementation of end-to-end tests in the presentation layer, where interactions between application components and interfaces are validated. All automated tests run in a pipeline of continuous integration and delivery, whenever you want to send any changes to the production environment. The application of the strategy to an use case allowed us to conclude that it can be used in projects of various dimensions, since the most pertinent aspects of defining test strategies are addressed. Anyone interested in the test automation area can obtain the necessary bases to implement automatic tests, create batteries of automated regression tests and invest the remaining time in manual exploratory tests, whose focus is situations never thought before and from where problems not yet unidentified may arise, preventing them from reaching the end users.porArquitetura de softwareAutomatização de testesEstratégias de testesEntrega contínuaIntegração contínuaQualidade de softwareTipos e níveis de testesCaso de estudo sobre automação de testes de softwaremaster thesis202883230