Português English
Contato
Publicado em: 24/11/2009

Defesa de Dissertação de Mestrado em Sistemas de Computação, dia 26/11, de Cristina Ciprandi Menegotto

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL
INSTITUTO DE INFORMÁTICA
PROGRAMA DE POS-GRADUAÇÃO EM COMPUTAÇÃO


DEFESA DE DISSERTAÇÃO DE MESTRADO


Aluna: Cristina Ciprandi Menegotto
Orientadora: Profa. Dra. Taisy Silva Weber

Titulo: Injeção de Falhas de Comunicação em Aplicações Multiprotocolo
Área de Pesquisa: Sistemas de Computação

Data: 26/11/2009
Hora: 15h
Local: Auditório Prof. José Volkmer de Castilho

Banca Examinadora:
Profa. Dra. Eliane Martins (UNICAMP)
Prof. Dr. Antônio Marinho Pilla Barcellos (UFRGS)
Profa. Dra. Ingrid Eleonora Schreiber Jansch Porto (UFRGS)

Presidente da Banca: Profa. Dra. Taisy Silva Weber

Resumo:
Aplicações de rede com altos requisitos de dependabilidade devem ser testadas cuidadosamente em condições de falhas de comunicação para aumentar a confiança no seu comportamento apropriado na ocorrência de falhas. Injeção de falhas de comunicação é a técnica mais apropriada para o teste dos mecanismos de tolerância a falhas destas aplicações em presença de falhas de comunicação. Ela é útil tanto para auxiliar na remoção de falhas como na previsão de falhas.
Quando as aplicações de rede são baseadas em mais de um protocolo da arquitetura TCP/IP, ou seja, são denominadas multiprotocolo no contexto desse trabalho, um injetor de falhas de comunicação adequado, que trate todos os protocolos utilizados, é necessário para seu teste. Caso a emulação de uma falha que afete a troca de mensagens não leve em consideração todos os protocolos simultaneamente utilizados, o comportamento emulado durante um experimento será diferente daquele observado na ocorrência de uma falha real, de modo que podem ser obtidos resultados inconsistentes sobre o comportamento da aplicação alvo em presença da falha.
Muitos injetores de falhas de comunicação encontrados na literatura não são capazes de testar aplicações Java multiprotocolo. Outros possuem potencial para o teste dessas aplicações, mas impõem grandes dificuldades aos engenheiros de testes. Por exemplo, contrariamente ao enfoque deste trabalho, algumas ferramentas são voltadas à injeção de falhas de comunicação para o teste de protocolos de comunicação, e não de aplicações. Tal orientação ao teste de protocolos costuma levar a grandes dificuldades no teste de caixa branca de aplicações. Entre outros exemplos de dificuldades proporcionadas por ferramentas da literatura estão a incapacidade de testar diretamente aplicações Java e a limitação quanto aos tipos de falhas que permitem emular. A análise de tais ferramentas motiva o desenvolvimento de uma solução voltada especificamente ao teste de aplicações multiprotocolo desenvolvidas em Java.
Este trabalho apresenta uma solução para injeção de falhas de comunicação em aplicações Java multiprotocolo. A solução opera no nível da JVM, interceptando mensagens de protocolos, e, em alguns casos, opera também no nível do sistema operacional, usando regras de firewall para emulação de alguns tipos de falhas que não podem ser emulados somente no nível da JVM. A abordagem é útil para testes de caixa branca e preta e possui características importantes como não modificação do código fonte da aplicação alvo. A viabilidade da solução proposta é mostrada por meio do desenvolvimento de Comform, um protótipo para injeção de falhas de comunicação em aplicações Java multiprotocolo que atualmente pode ser aplicado para testar aplicações Java baseadas em qualquer combinação dos protocolos UDP, TCP e RMI (incluindo aquelas baseadas em um único protocolo).

Palavras-chave: Injeção de falhas de comunicação, aplicações Java multiprotocolo.