Summary: | Servicos web sao componentes de software fracamente acoplados projetados para promover a comunicacao interoperavel entre aplicacoes na Internet. O acesso a servicos web da-se de maneira padronizada (via protocolos definidos pelo W3C), independente da linguagem de programacao, sistema operacional ou plataforma em que sao desenvolvidos. Devido a essas caracteristicas, servicos simples podem ser combinados em servicos mais completos. Coreografia consiste em uma abordagem descentralizada para a composicao de servicos. Diferentemente de orquestracoes, abordagem na qual servicos distribuidos sao coordenados de modo centralizado, a interacao entre os servicos de uma coreografia e colaborativa e a coordenacao descentralizada. Apesar das vantagens, o desenvolvimento de coreografias, incluindo as atividades de testes, nao e algo consolidado. O objetivo desta dissertacao foi desenvolver uma arcabouco de teste que facilite o uso de Desenvolvimento Guiado por Testes (Test-Driven Development, TDD) em coreografias de servicos web. Rehearsal, o arcabouco proposto, fornece funcionalidades para o teste automatizado de (i) servicos web atomicos (teste de unidade); (ii) composicao de servicos (teste de integracao) e (iii) uma parte ou toda a coreografia (teste de aceitacao). Esses testes podem ser implementados utilizando funcionalidades do arcabouco, tais como a criacao dinamica de clientes para servicos web, o interceptador de mensagens e a abstracao da coreografia em objetos Java. Alem disso, Rehearsal facilita a criacao e uso de Mocks de servicos web, uma importante pratica de TDD. Além de avaliar o arcabouco desenvolvido, um estudo ex- ploratorio qualitativo foi conduzido com estudantes de Ciencia da Computacao. De acordo com os resultados obtidos, as funcionalidades do Rehearsal mostraram-se adequadas para a utilizacao de TDD em coreografias de servicos web.
===
Web services are loosely-coupled software components designed to support interoperable machine- to-machine interaction over the Internet. To achieve such interoperability, web services are accesible through W3C web standards, independently of which language, operating system, or hardware platform they are developed. Due to these characteristics, simple web services can be combined in more complex ones. Choreographies are a distributed approach for composing web services. Compared to orchestrations, which have a centralized approach to distributed service management, the interaction among the choreographed services is collaborative with decentralized coordination. Despite the advantages, choreography development, including the testing activities, is not consolidated. The goal of this research is to develop a testing framework to support Test-Driven Development (TDD) of choreographies. Rehearsal, the proposed framework, provides features for automating the testing of (i) atomic web services (unit testing); (ii) their integration in the choreography (integration testing); and (iii) part of or the entire choreography (acceptance testing). These several levels of testing are implemented by using framework features such as the dynamic generation of web service clients, message interception, and the abstraction of the choreography into Java objects. In addition, Rehearsal supports important practices of TDD such as service mocking. To assess the developed framework, we conducted a qualitative exploratory study with Computer Science students. According to the results obtained, the features of Rehearsal were adequate for applying TDD to web service choreography development successfully.
|