A computação orientada a serviços propõe o desenvolvimento de software por meio da composição de serviços com os objetivos de aumentar o reúso de software e facilitar a criação de aplicações dinâmicas, flexíveis e com baixo acoplamento. O uso de serviços no desenvolvimento de software só é possível se os desenvolvedores de aplicações (integradores) confiarem na qualidade dos serviços oferecidos por terceiros. Uma forma de aumentar a confiança sobre serviços adquirido de terceiros é a realização de testes. Entretanto, o teste de serviços é difícil porque os testadores ficam limitados a usar técnicas de teste baseadas em especificação por causa da indisponibilidade do código fonte. Nesse contexto, os testadores não podem usufruir dos benefícios de combiná-las com técnicas baseadas em implementação, como a técnica estrutural, por exemplo. Uma abordagem para viabilizar o uso da técnica de teste estrutural no contexto de aplicações baseadas em serviços sem expor o código fonte dos serviços é apresentada. Ela propõe a criação de serviços testáveis, que são serviços com alta testabilidade e que possuem uma interface de teste cujas operações apoiam o teste estrutural. Integradores podem realizar o teste de um serviço testável e obter, sem acessar o código fonte, uma análise de cobertura. Metadados de teste também são fornecidos pelos serviços testáveis para auxiliar integradores na obtenção de uma cobertura estrutural maior. A abordagem também apoia atividades de monitoração ativa de serviços. A abordagem é genérica uma instanciação para apoiar o teste estrutural de serviços e aplicações escritos em Java é apresentada. Estudos de casos e experimentos controlados foram realizados para validar a abordagem instanciada. Os resultados mostram que a abordagem é viável e apresenta bons resultados quando comparada com o uso apenas da técnica funcional / Software oriented computing aims at developing software by the composition of services. It promotes software reuse and the implementation of dynamic, flexible and low coupling applications. Services provide specific business functionalities and are provided as a black-box. The use of services is only possible if the developers of service applications (integrators) trust the third party services. Particularly, testing is one of the solutions to obtain confidence on third party software. However, testers can only use specification based testing techiniques due to unavailability of the source code. In this context, testers cannot use the benefits of combining specification and implementation-based testing techniques. This works aims at proposing an an approach to introduce the structural testing technique in the context of service-based applications, but without revealing the source code. The proposed approach promotes the development of testable services, which are services with high testability and exposes operations through a testing interface to support structural testing. Integrators can test testable services and get, without having access to the source code, a coverage analysis on structural criteria. Test metadata are also provided along with testable services to help integrators on creating more test cases to increase the coverage obtained. The proposed approach is also used to support monitoring activities. The approach is generic and an instantiation is presented to create testable services written in Java. Formal experiments and case studies were conduct to validate the proposed approach and the instantiation. The results provide evidences of the applicability and the benefits of the approach for both testing and monitoring activities when compared to only using the functional approach
Identifer | oai:union.ndltd.org:usp.br/oai:teses.usp.br:tde-04092012-141341 |
Date | 25 May 2012 |
Creators | Eler, Marcelo Medeiros |
Contributors | Masiero, Paulo Cesar |
Publisher | Biblioteca Digitais de Teses e Dissertações da USP |
Source Sets | Universidade de São Paulo |
Language | Portuguese |
Detected Language | English |
Type | Tese de Doutorado |
Format | application/pdf |
Rights | Liberar o conteúdo para acesso público. |
Page generated in 0.0023 seconds