A atividade de teste é de extrema importância em qualquer ambiente de programação para gerar produtos de qualidade e de alta confiabilidade. Entretanto, alem das dificuldades inerentes a esta tarefa, soma-se a falta de metodologias e ferramentas que a apóiem. Isto faz com que o teste se tome uma das atividades do ciclo de vida do software com maior custo e tempo associados. O paradigma de orientação a objetos surgiu na busca constante dos desenvolvedores de software por maior qualidade e novas soluções para os problemas de baixa produtividade. Todavia, as características poderosas deste paradigma geraram um conjunto adicional de problemas nas atividades de teste e manutenção, onde a alta concentração de custo e tempo envolvidos sempre foram uma constatação real. Em uma aplicação orientada a objetos, cada objeto é uma entidade que possui um comportamento bem definido, com um papel bem claro no domínio. Os valores dos atributos de um objeto definem o estado do objeto, e são acessados através de um conjunto de mensagens bem definidas, através das quais o objeto é capaz de executar alterações nestes valores de atributos. Os valores de atributos reagem passagem destas mensagens (ativação de métodos) alterando ou não o seu estado. Neste trabalho é apresentado um protótipo de ferramenta de apoio ao teste de programas orientados a objetos, chamado ATeste, fundamentado no conceito de teste baseado em estado, com uma abordagem reflexiva, para auxiliar o teste de aplicações Smalltalk. O teste baseado em estado verifica as interações entre os objetos pela monitoração das mudanças que ocorrem em valores dos atributos. Este tipo de teste verifica como um objeto reage a ativação de um método, respeitando o encapsulamento. A abordagem reflexiva possibilita que mecanismos de analise possam ser associados a aplicação através da utilização de conceitos de reflexão computacional. A reflexão computacional proporciona a analise dinâmica da aplicação, sem interferir nos aspectos comportamentais e estruturais dos objetos do domínio, permitindo a monitoração de objetos específicos do domínio, os quais podem ser dinamicamente selecionados pelo usuário. Como suporte para o desenvolvimento de ATeste foi utilizado o framework Luthier MOPs. Este framework apresenta, como principal contribuição, a utilização de técnicas de reflexão computacional baseadas no conceito de gerenciadores de metaobjetos para a implementação de meta-arquiteturas visando a captura de informações e analise de aplicações. Baseado nesta arquitetura reflexiva, ATeste trabalha com um meta-nível, que monitora os objetos selecionados pelo usuário na aplicação do nível-base. Desta forma, uma das principais características do sistema desenvolvido é a analise da aplicação sob teste de forma dinâmica sem necessidade de instrumentação de seu c6digo fonte. Isto é possível através da utilização de reflexão computacional, que permite implementar diferentes mecanismos de analise que podem ser dinamicamente associados com a aplicação em execução. O projeto de ATeste compreende um conjunto de classes pr6prias que definem a interface com o usuário e as funcionalidades desejadas, bem como classes do framework Luthier MOPs, e especializações destas. / The activity of testing is very important for generating high quality and reliable products in any programming environment. Besides the difficulties inherent to this task, there is the lack of methodologies and tools to support the testing process. These facts make testing one of the software life cycle activities of greatest associated cost and time. The object oriented paradigm had appeared as a result of the constant searching by software developers for both greater quality and new solutions to the problems of low productivity. However, the powerful characteristics of this paradigm have generated an additional set of problems in the test and maintenance activities, where high costs and time expenditure have been always of great concern. In an object oriented application, each object is an entity that has a welldefined behavior, with a well clear role in the domain. The attribute values of an object define the object state. Object's attributes may only be accessed through a set of proper messages, which can make changes to object's states. This work presents a prototype of a tool, named ATeste, which aims to support object oriented testing of Smalltalk applications by implementing the concept of state-based testing through a reflexive approach. In state-based testing objects interactions are verified through monitoring changes that occur to the values of object attributes. This type of test verifies how an object reacts by a method activation, taking into account object encapsulation. The reflexive approach allows the association of analysis mechanisms to the software system through the application of computational reflection concepts. Computational reflection provides dynamic analysis of the software, without interfering in both behavior and structural aspects of the object's domain. It allows monitoring of specific objects in the domain, which can be dynamically selected by the user. The framework Luthier MOPs has been extended to support the development of ATeste. This framework provides, as its main contribution, facilities of computational reflection techniques based on meta-objects management concepts for the implementation of meta-architectures, aiming the capture of information and analysis of object-oriented applications. Considering this reflexive architecture, ATeste works with a meta-level, which manages the objects selected by the user in the application basic-level. In this way, one of the main characteristics of the developed system is the analysis of the application under test in a dynamic way, without necessity of instrumenting its source code. This is possible due to computational reflection that allows the implementation of particular analysis mechanisms that can be dynamically associated with the application in execution. The project of ATeste includes a set of particular classes that define the interface with the user, another set for implementing the elected testing strategy, and some classeS specialized from the framework Luthier MOPs.
Identifer | oai:union.ndltd.org:IBICT/oai:lume.ufrgs.br:10183/26306 |
Date | January 1998 |
Creators | Pinto, Ivete Martins |
Contributors | Price, Ana Maria de Alencar |
Source Sets | IBICT Brazilian ETDs |
Language | Portuguese |
Detected Language | Portuguese |
Type | info:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis |
Format | application/pdf |
Source | reponame:Biblioteca Digital de Teses e Dissertações da UFRGS, instname:Universidade Federal do Rio Grande do Sul, instacron:UFRGS |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0028 seconds