Name: | Description: | Size: | Format: | |
---|---|---|---|---|
3.92 MB | Adobe PDF |
Authors
Advisor(s)
Abstract(s)
Software testing is increasingly important in the software development lifecycle. There are different types of tests, which can be applied in different phases of software development, but as far as I know, there are no documents or strategies that establish which types of tests should be adopted to increase their quality and balance error detection, costs and time. To guarantee software quality, it is necessary to adopt different types of tests, which have an associated cost in the scope of each project with different delivery times. However, failure to adopt good practices could lead to poor quality, high costs and delays in project delivery. This academic project addresses this difficulty and aims to propose a method to determine the type and extent of tests to be adopted in a software project to increase the quality of tests by appropriately balancing error detection, cost and time. To initiate the investigation, a project was selected from which the existing tests and the respective code coverage were obtained. Various metrics were also analyzed, such as complexity and the number of tests. The solution considered was the use of automatic mutation tests to assess the quality of the tests. It was concluded that it is not possible to infer the quality of the tests if there are no mutation tests in the project.
O teste de software é cada vez mais importante no ciclo de vida de desenvolvimento de software. Existem diferentes tipos de testes, que podem ser aplicados em diferentes fases do desenvolvimento de software, mas até onde sei, não existem documentos ou estratégias que estabeleçam quais tipos de testes devem ser adotados para aumentar a sua qualidade e equilibrar deteção de erros, custos e tempo. Para garantir a qualidade do software é necessário adotar diferentes tipos de testes, que têm um custo associado no âmbito de cada projeto com diferentes prazos de entrega. Contudo, a não adoção de boas práticas poderá levar a má qualidade, custos elevados e atrasos na entrega dos projetos. Este projeto académico aborda esta dificuldade e tem como objetivo propor um método para determinar o tipo e a extensão dos testes a serem adotados em um projeto de software de forma a aumentar a qualidade dos testes equilibrando adequadamente deteção de erros, custo e tempo. Para iniciar a investigação foi selecionado um projeto do qual foram obtidos os testes existentes e a respetiva cobertura de código. Diversas métricas foram analisadas, como complexidade e número de testes. A solução considerada foi a utilização de testes automáticos de mutação para avaliar a qualidade dos testes. Concluiu-se que não é possível inferir a qualidade dos testes se não houver testes de mutação no projeto.
O teste de software é cada vez mais importante no ciclo de vida de desenvolvimento de software. Existem diferentes tipos de testes, que podem ser aplicados em diferentes fases do desenvolvimento de software, mas até onde sei, não existem documentos ou estratégias que estabeleçam quais tipos de testes devem ser adotados para aumentar a sua qualidade e equilibrar deteção de erros, custos e tempo. Para garantir a qualidade do software é necessário adotar diferentes tipos de testes, que têm um custo associado no âmbito de cada projeto com diferentes prazos de entrega. Contudo, a não adoção de boas práticas poderá levar a má qualidade, custos elevados e atrasos na entrega dos projetos. Este projeto académico aborda esta dificuldade e tem como objetivo propor um método para determinar o tipo e a extensão dos testes a serem adotados em um projeto de software de forma a aumentar a qualidade dos testes equilibrando adequadamente deteção de erros, custo e tempo. Para iniciar a investigação foi selecionado um projeto do qual foram obtidos os testes existentes e a respetiva cobertura de código. Diversas métricas foram analisadas, como complexidade e número de testes. A solução considerada foi a utilização de testes automáticos de mutação para avaliar a qualidade dos testes. Concluiu-se que não é possível inferir a qualidade dos testes se não houver testes de mutação no projeto.
Description
Keywords
Cost reduction Maximization of error detection Software testing Increase software quality Redução de custos Maximização da deteção de erros Testes de software Aumentar a qualidade do software