A A A
:: Sexta-feira, 27 de Dezembro de 2024
Organização:    


Valid XHTML 1.0 Strict  CSS válido!

1999

2005 2004 2003 2002 2001 2000 1999 1998 1997



Relatório Interno Inpe

ATIFS - Ambiente de Teste baseado em Injeção de Falhas
por Software

Relatório de atividades Período: Janeiro a Dezembro de 1999 Data: 06 de Dezembro de 1999 Ana Maria Ambrosio - 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.) através de uma arquitetura comum,
  • 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 (cobertura de Tolerância a Falhas).

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 é 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 uma Máquina de Estados Finito. Muitos sistemas desenvolvidos pela DSS foram especificados através de um autômato (ou MEF) como por exemplo, o Gerenciador da Antena (GAN), parte do Software de Telecomando do sistema SICS e o Conversor de Protocolos (COP), desenvolvidos para o rastreio e controle dos satélites SCD1 e SCD2. Portanto, estes sistemas poderiam 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 utilizou 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 de algumas ferramentas que compõem o ATIFS. A implementação do Protocolo solo-bordo (padrão CCSDS) do subsistema de Telecomando dos Satélites Científicos SACI-1 e 2 teve parte de seus casos de teste gerados por algumas das facilidades do ATIFS que já estavam implementadas.

O projeto ATIFS 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 e foi aprovado como projeto de pesquisa pelo CNPq em 1995 sob coordenação da Prof. Dra. Eliane Martins, sem alocação especial de verba por nenhuma das instituições envolvidas. Sua continuidade tem sido possível graças aos trabalhos de iniciação científica e de mestrado cujas bolsas são concedidas a alunas de ambas as instituições, mas principalmente da Unicamp.


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: i) um framework de interface com o usuário, facilitando e padronizando a interface de todo as ferramentas que fizerem parte do ambiente; ii) uma camada, comum a todas as ferramentas, para gerenciamento dos objetos que apresentarem características de persistência e forem armazenados no banco de dados. Desta forma, obtém-se uma integração homogênea de todas as partes do ATIFS. A figura abaixo ilustra os subsistemas e suas interfaces.




3. EQUIPE DE TRABALHO no INPE

Ana Maria
Ambrosio
INPE analista de sistemas
(Msc)
de Fev a Nov
20%
Maria de Fatima M.
Francisco
INPE analista de sistemas
(Msc)
-


4. ATIVIDADES DESENVOLVIDAS NO PERÍODO

No ano de 1999, também não tivemos estagiários pelo INPE, desta forma as atividades na DSS foram:

  1. revisão da linguagem de especificação da máquina de estados finita (LEP),
  2. acompanhamento do desenvolvimento realizado por alunos da Unicamp.

De forma geral o projeto teve como atividades:

  1. Implementação de um analisador léxico e sintático da linguagem de especificação LEP e correção da linguagem de especificação LEP;
  2. Definição da interface entre o SGS e o SSE; delineando melhor o funcionamento do executor dos testes (SSE) a partir do script;
  3. Implementação do conversor da linguagem da Seqüência Abstrata de Teste (casos de testes gerados automaticamente pelo SDT) para a linguagem de Teste Executável. Esta última é o próprio script o qual é escrito na linguagem TCL – Tool Commnad Language. A interface com usuário do Sub-sistema Gerador de Script (SGS) também foi definida e implementada;
  4. Definição da forma de construir o agente injetor (SIA) para diferentes implementações em teste;
  5. Implementação do analisador de traço dos resultados do Sub-sistema de Tratamento de Resultado (STR);
  6. Levantamento das alterações da camada G.O. para adequação da mesma ao padrão ODBC (Open Data Base Conectivity;
  7. Geração da documentação de projeto, usando na ferramenta WithClass.

5. ATIVIDADES FUTURAS

Atividades previstas para o ano que vem:

  1. melhoria na ferramenta CONDADO, tanto para se tornar mais amigável ao usuário como incorporando outra técnica na geração dos testes;
  2. conclusão da camada G.O. no padrão ODBC ou o uso de uma plataforma de integração de ferramentas (por exemplo SoftBench, Tooltalk, etc.);
  3. avaliação das ferramentas implementadas (subsistemas SDT, SGS e STR) através do uso delas para testar aplicações reais existentes no INPE.
  4. implementação das ações semânticas e geração de código (back-end) para a LEP, integrando os sub-sistemas SDT (ferramenta CONDADO e verificador de propriedades da MEF) e STR;
  5. publicação dos documentos de projeto e manuais de usuários das ferramentas desenvolvidas.