Avaliação de conjuntos de testes funcionais no contexto de programas orientados a objetos e programas orientados a aspectos

Context: Software testing play an important role to reveal faults and increase the quality of developed products. Structural-based testing has shown to be important in the evaluation of both the quality of the software and the quality of the test set itself. Objective: This work reports on the resul...

Full description

Bibliographic Details
Author: Levin, Thiago Gaspar
Format: master thesis
Status:Published version
Publication Date:2015
Country:Brasil
Institution:Universidade Federal de São Carlos (UFSCAR)
Repository:Repositório Institucional da UFSCAR
Language:Portuguese
OAI Identifier:oai:repositorio.ufscar.br:20.500.14289/597
Online Access:https://repositorio.ufscar.br/handle/20.500.14289/597
Access Level:Open access
Keyword:Software - testes
Programação orientada a objetos (Computação)
Programação orientada a aspectos
Estudos experimentais
Software testing
Object-oriented programming
Aspect-oriented programming
Experimental studies
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Description
Summary:Context: Software testing play an important role to reveal faults and increase the quality of developed products. Structural-based testing has shown to be important in the evaluation of both the quality of the software and the quality of the test set itself. Objective: This work reports on the results of an experimental study that aimed to evaluate the quality of test sets which were originally built for a given programming paradigm, when such test sets are adapted and applied to a different paradigm. Besides this, this we also measure the effort to migrate test sets from one paradigm to another. In this work, we considered the object-oriented (OO) and aspect-oriented (AO) paradigms. Method: We evaluated the quality of test sets by analysing the code coverage yielded by test sets within both paradigms; to evaluate the effort required to adapt test sets across paradigms, we performed comparisons of code-related metrics applied to test code. In total, we analysed 12 small-sized applications and one medium-sized application. Results: The achieved coverage for distinct groups of applications did not show expressive differences across the paradigms, particularly for small-sized applications. Only for the medium-sized system tests yielded higher code coverage in the OO implementation. In respect with the test set adaptation effort, migrating OO tests to the AO paradigm required more code additions, whilst migrating AO tests to the OO implementations required more code changes and removals. Conclusion: With the achieved results, we cannot state that there is a difference in the quality of the test sets, in terms of structural coverage, when both paradigms are taken into account. Only for a single application the coverage difference was evident. In regard to the process of migrating tests from one paradigms to another, OO tests have shown to be more concise (in terms of lines of code) and more reusable than OA tests.