Um Método Para Teste Funcional De Softwares Orientado A Aspectos Dinâmicos

Nenhuma Miniatura disponível
Data
2017-01-27
Autores
Souza, Maria Laura Pires [UNIFESP]
Orientadores
Silveira, Fabio Fagundes [UNIFESP]
Tipo
Dissertação de mestrado
Título da Revista
ISSN da Revista
Título de Volume
Resumo
Aspect-oriented programming (AOP) supports the implementation of crosscutting concerns, such as persistence and safety, in program units called aspects. To ensure that these concerns behave as specified and do not introduce faults into the application, rigorous software testing practices must be applied. Even though there are several statements in the literature that the adoption of Aspect-Oriented Software Development (AOSD) takes a software to get better quality, AOP does not provide correctness by itself. This way, the testing remains an important activity to ensure aspects are correctly integrated into the main system. Additionally, in a dynamic environment, new aspects may be incompatible with aspects already woven, and removed aspects can lead the system to an inconsistent state. The main focus of this research is to verify and validate dynamic aspects, aiming to answer the following questions: 1) how to test the dynamic aspects within the context of a target application; 2) how to test the different levels of interaction between the dynamic aspects and the target application; and 3) how to model such interactions of dynamic aspects. This way, the major contribution of this thesis is the concept and the development of a functional state-based method for dynamic aspect-oriented software, named MESOADI. Furthermore, to support the developed method, a model to represent the dynamic behavior of aspects, named MEADI, and a new strategy to derive testing sequences are introduced as well. To assess the application of the proposed approach, we measure the effectiveness of testing sequences generated by this method through the use of mutation testing and a model checker. Results showed that the approach is capable of detecting faults in dynamic aspects interactions into a target application.
A programação orientada a aspectos (POA) fornece suporte à implementação de interesses transversais, como persistência e segurança, em unidades de programa denominadas aspectos. Para garantir que esses interesses se comportem conforme o especificado e não introduzam defeitos na aplicação, rigorosos testes de software devem ser realizados na aplicação. Ainda que existam diversas afirmações na literatura que a utilização do Desenvolvimento de Software Orientado a Aspecto (DSOA) eventualmente leve a um software com maior qualidade, a Orientação a Aspectos (OA) não provê corretude por si própria. Por isso, o teste continua sendo uma importante atividade para que os aspectos sejam integrados ao sistema principal de forma correta. Adicionalmente, em um ambiente dinâmico, aspectos carregados podem ser incompatíveis com aspectos já lidos e/ou em execução; e aspectos removidos podem levar o sistema a um estado inconsistente. Assim, o foco principal do presente trabalho consiste em validar e verificar aspectos dinâmicos, buscando responder às seguintes questões: 1) como testar os aspectos dinâmicos inseridos no contexto de uma aplicação alvo; 2) como testar os diferentes níveis de interação entre os aspectos dinâmicos e a aplicação alvo; e 3) como modelar as interações de aspectos dinâmicos. Dessa forma, a principal contribuição desta pesquisa consiste na concepção e no desenvolvimento de um método de teste funcional baseado em estados para software orientado a aspectos dinâmicos, denominado MESOADI. Para tornar possível a aplicação do método, um modelo de representação dinâmica de comportamento de aspectos, denominado MEADI, e uma estratégia de derivação de sequências de teste, denominada RTPMESOADI, foram também desenvolvidos. A avaliação do MESOADI foi realizada pela mensuração do nível de adequação de suas sequências de teste geradas, usando análise de mutação e um verificador de modelos. Os resultados obtidos suportam a hipótese de que a abordagem de teste desenvolvida é capaz de detectar defeitos nas interações entre os aspectos dinâmicos presentes numa aplicação.
Descrição
Citação