Relatório Interno Inpe
ATIFS - Ambiente para o Teste baseado em Injeção de
Falhas por Software
Relatório de atividades
Período: Janeiro a Novembro de 1997
Data: 10 de Novembro de 1997
Ana Maria Ambrosio - DSS
Maria de Fatima Mattiello Francisco - DSS
1. INTRODUÇÃO
O objetivo deste projeto é o desenvolvimento de um sistema para testes baseado na técnica de injeção de falhas por software. As principais áreas cobertas por este ambiente são:
- geração automática de casos de teste a partir de uma dada especificação formal, no caso, uma Máquina de Estados Finita (MEF),
- suporte à execução dos testes, permitindo a realização de diferentes tipos de teste (de conformidade, de interoperabilidade, de tolerância a falhas, etc.)
- facilidade de injeção de falhas de forma controlada para validação de sistemas Tolerantes a Falhas,
- armazenamento, tratamento e análise dos dados coletados durante os testes,
- manutenção do histórico de testes,
- medidas de eficiência de mecanismos de Tolerância a Falhas, como por exemplo, o Fator de Cobertura (probabilidade do sistema continuar corretamente na presença de uma falha), cujo valor é importante na avaliação da confiabilidade do sistema em teste.
É evidente a necessidade de tecnologia para teste de sistemas de software, pois o tempo e o trabalho, sempre subestimados no processo de desenvolvimento de um sistema de software, contribuem para o aumento considerável do custo total do sistema.
Uma vantagem de um sistema de teste automatizado é a obtenção de valores quantitativos de confiabilidade além de outras medidas possíveis. A elaboração dos testes com injeção de falhas é feita por amostragem, então, é possível obter-se parâmetros como, o tempo que o sistema demora a responder quando submetido a uma falha, a probabilidade do sistema tratar corretamente uma dada falha, o que é chamado de
cobertura de Tolerância a Falhas, um parâmetro usado no cálculo da
confiabilidade de um sistema.
Um dos requisitos do ATIFS é a portabilidade, ele deve operar tanto em plataformas do tipo: estações de trabalho - SUN como em microcomputadores - IBM-PC. Além da portabilidade, outro atributo importante deve ser a aplicabilidade: ele deve ser aplicável tanto a protocolos do modelo de referência OSI da ISO quanto a quaisquer outras aplicações cuja especificação esteja na forma de um Autômato de Estados Finito. Muitos sistemas desenvolvidos pela DSS têm empregado a técnica de autômatos em sua especificação como por exemplo, o Gerenciador da Antena (GAN), parte do Software de Telecomando (CMD) e o Conversor de Protocolos (COP), já desenvolvidos para o Rastreio e Controlole dos Satélites SCD1 e SCD2. Outros sistemas como o Software do Centro de Missão e Coleta de Dados (SCMCD) adotaram esta técnica. Mais recentemente, a implementação solo do protocolo solo-bordo níveis de transferência e apresentação para telecomando do satélite científico SACI-1 e também, a implementação da interface do telecomando no projeto TMTC para a missão CBERS, foram feitos usando um autômato de estados finito para sua especificação. Portanto, poderão fazer uso das facilidades do Ambiente de Teste no que diz respeito a geração automática de casos de teste.
O Ambiente de Teste com Injeção de Falhas por Software - ATIFS vem utilizando a implementação do protocolo X.25, desenvolvida no âmbito do projeto SCOM-X.25, pela Divisão de Sistemas de Solo (DSS), como caso de estudo e teste para as ferramentas que compõem o ATIFS.
Este projeto vem sendo desenvolvido em cooperação entre o INPE, no âmbito da Divisão de Sistemas de Solo, e a UNICAMP, no âmbito do Instituto de Computação tendo sido aprovado como projeto de pesquisa pelo CNPq em 1995 sob coordenação da Prof. Dra. Eliane Martins.
1.2. Descrição do Projeto
O ambiente é composto de quatro subsistemas que, de forma integrada, cobrem várias atividades do processo de teste. Estes subsistemas são:
Desenvolvimento dos testes (SDT): este subsistema é responsável pela preparação dos testes compreendendo as funções de i) edição da especificação MEF em uma linguagem especialmente definida no contexto deste projeto (LEP); ii) análise léxica e sintática da especificação; iii) verificação de propriedades da MEF; iv) geração automática de casos de teste, através de uma ferramenta denominada ConDado;
Geração do Script (SGS):este subsistema permite ao usuário prover a administração das experiências a serem realizadas; isto é: reedição dos casos de teste gerados pela ferramenta ConDado e definição de classes de falhas a serem injetadas no sistema que será testado. A saída deste subsistema é um script de teste, na linguagem interpretada denominada TCL-Tk.
Suporte à Execução (SSE): este subsistema é responsável pela execução propriamente dita dos teste. Ele é baseado na execução do script de teste preparado pelo SGS, no passo anterior. Este subsistema implementa a arquitetura Ferry-clip, padronizada pela ISSO. Neste subsistema são realizados: i) a ativação do programa testador e do programa que será testado, ii) o estímulo para desencadear a execução dos casos de teste; iii) a injeção das falhas previamente planejadas; iv) o gerenciamento da execução dos casos de teste, permitindo a intervenção do usuário, quando necessário, através do acompanhamento da monitoração do sistema em teste; v) a restauração do sistema para um estado estável após a aplicação de cada caso de teste; vi) o armazenamento de todos os eventos ocorridos. A ferramenta que implementa as funções desse subsistema é denominada fSofist.
Tratamento dos Resultados (STR): este subsistema é responsável pelo tratamento dos dados coletados durante a execução dos testes a fim de obter-se o veredicto de conformidade, isto é, se o teste levou o sistema a um estado de erro ou não. Este subsistema compreende as funções de: i) armazenamento dos dados coletados, ii) análise dos resultados, iii) geração de estatísticas e relatórios. Os dados coletados constam das interações (entradas e saídas) observadas e do histórico dos testes realizados. O histórico dos testes deve conter: a identificação dos casos de testes, dos métodos utilizados e os resultados obtidos, além de informações auxiliares para o diagnóstico dos erros encontrados.
Para uma integração completa o ATIFS compreende ainda: um banco de dados, um subsistema para controle de objetos que gerencia a troca de informações; um mecanismo para controle dos subsistemas e uma interface com o usuário. O modelo em camadas, apresentado na figura abaixo, integra o ambiente de teste proposto.
3. EQUIPE DE TRABALHO no INPE
Ana Maria
Ambrosio |
INPE |
analista de sistemas
(Msc) |
de Abr a Nov
30%
|
Maria de Fatima M.
Francisco |
INPE |
analista de sistemas
(Msc) |
de Jan a Abr
30%
|
Marcelo Barreto |
INPE |
estagiário
(bolsa RHAE)
|
de Set a Nov
100%
|
4. ATIVIDADES DESENVOLVIDAS NO PERÍODO
Nos anos passados (1995 e 1996) a responsabilidade no ATIFS que coube a DSS, dizia respeito ao subsistema SSE, no entanto, dado que nosso estagiário de 1996, em 1997 ingressou no curso de Pós-graduação da UNICAMP continuando seu trabalho iniciado no INPE, nossa parte, no momento, tem sido a de especificar e implementar a interface do subsistema SDT.
De janeiro a novembro as atividades do ATIFS realizadas na DSS foram:
1. conclusão de um protótipo para aplicação de testes (de conformidade) do protocolo X.25,
2. migração do ambiente de desenvolvimento usado para o SDT para versões mais atualizadas:
• toolkit WXWindows versão 1.60 para versão 1.67 (ferramenta freeware utilizada para a construção do framework da interface do ATIFS),
• compilador Borland C++ v.3.1 para Borland C++ v. 5.0,
• sistema operacional Windows 3.1 para Windows 95.
3. implementação de alguns protótipos de interface para definição da entrada da especificação na forma de uma máquina de estados finita (FSM).
4. definição da linguagem de especificação da FSM e das classes que implementam a geração automática dos testes, este último em termos de sua interface pública e não de seus algorítmos. (Realizado em conjunto com pessoal da Unicamp).
5. estudo das ferramentas LEX e YACC, disponíveis no ambiente UNIX, para serem utilizadas para no trabalho de implementação da análise léxica da linguagem de especificação da máquina de estados finita. (Sendo realizada).
6. publicação do artigo "Tolerância a Falhas em Sistemas de Comunicação" por Eliane Martins, Ana Maria Ambrosio, M. Fátima M. Francisco, Keila S. Correa e M.Renato Araújo; VII SCTF - Simpósio de Computadores Tolerantes a Fallhas - julho 1997 - Campina Grande.
5. ATIVIDADES FUTURAS
Atividades previstas para o ano que vem:
- concluir a implementação da interface da ferramenta SDT, para uma ou para suas duas partes,
- integrar a interface as partes executoras da geração automática dos casos de testes,
- produzir a documentação equivalente ao projeto, como documento de projeto e manual do usuário,
- aplicar a ferramenta SDT para analisar a cobertura dos casos de testes gerados comparada a especificação fornecida, utilizando especificações de projetos desenvolvidos pela DSS; assim também, validar a interface do SDT,
- implementar e testar outros métodos de geração automática de teste. Pois no momento a penas o método T, está sendo implementado.