Self-adaptive model-based online testing for dynamic SOA
Lucas Carvalho Leal · 2017
Agradeço aos meus orientadores, minha familia e namorada, meus amigos, aos funcionários do IC, e mais imporante, ao professor de física da Unicamp, que eu conheci durante meu estágio na Procter & Gamble, que falou alguma coisa coisa em alemão enquanto nos despediamos que eu nunca entendi (mas de alguma maneira eu sei que era sobre fugir daquele lugar).Thanks to my advisors, my family and girlfriend, my friends, the Unicamp's IC staff, and most important, the Unicamp's physics professor, that I've met during my internship days at Proctor & Gamble, that said something in german during his farewell wish, which I never really understood (but somehow I knew that it was about running away from that place). ResumoArquitetura orientada a serviços (SOA) é um padrão de design popular para implementação de serviços web devido à interoperabilidade, escalabilidade e reuso de soluções de software que promove.Os serviços que usam essa arquitetura precisam operar em um ambiente altamente dinâmico, entretanto quanto mais a complexidade desses serviços cresce menos os métodos tradicionais de validação se mostram viáveis.Aplicações baseadas em arquitetura orientada a serviços podem evoluir e mudar durante a execução.Por conta disso testes offline não asseguram completamente o comportamento correto de um sistema em tempo de execução.Por essa razão, a necessidade de tecnicas diferentes para validar o comportamento adequado de uma aplicação SOA durante o seu ciclo de vida são necessárias, por isso testes online executados durante o funcionamento serão usados nesse projeto.O objetivo do projeto é de aplicar técnicas de testes baseados em modelos para gerar e executar casos de testes relevantes em aplicações SOA durante seu tempo de execução.Para alcançar esse objetivo uma estrura de teste online autoadaptativa baseada em modelos foi idealizada.Testes baseados em modelos podem ser gerados de maneira offline ou online.Nos testes offline, os casos de teste são gerados antes do sistema entrar em execução.Já nos testes online, os casos de teste são gerados e aplicados concomitantemente, e as saídas produzidas pela aplicação em teste definem o próximo passo a ser realizado.Quando uma evolução é detectada em um serviço monitorado uma atualização no modelo da aplicação alvo é executada, seguido pela geração e execução de casos de testes online.Mais precisamente, quatro componentes foram integrados em um circuito autoadaptativo: um serviço de monitoramento, um serviço de criação de modelos, um serviço de geração de casos de teste baseado em modelos e um serviço de teste.As caracteristicas da estrutura de teste foram testadas em três cenários que foram executados em uma aplicação SOA orquestrada por BPEL, chamada jSeduite.Este trabalho é um esforço para entender as restrições e limitações de teste de software para aplicações SOA, e apresenta análises e soluções para alguns dos problemas encontrados durante a pesquisa.