A A A
:: Domingo, 19 de Maio de 2024
Organização:    


Valid XHTML 1.0 Strict  CSS válido!

1998

2005 2004 2003 2002 2001 2000 1999 1998 1997



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 Dezembro de 1998

Data: 04 de Dezembro de 1998

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, 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, 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 para gerenciamento dos objetos que apresentarem características de persistência e forem armazenados no banco de dados, também comum as todas as ferramentas. Desta, se obtém 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
30%
Maria de Fatima M.
Francisco
INPE analista de sistemas
(Msc)
-


4. ATIVIDADES DESENVOLVIDAS NO PERÍODO

No ano de 1998, considerando que não tivemos estagiários para dar prosseguimento a codificação, as atividades na DSS foram:

  1. repasse do código e experiência adquirida na implementação da interface do SDT para outros alunos da Unicamp que ingressaram neste projeto;
  2. elaboração do manual do usuário do SDT;
  3. atualização do documento de projeto do SSE (DRS-SSE);
  4. definição um conjunto mínimo de documentos e de padrões de projeto, visando a futura manutenção do software. Foram elaborados os seguintes documentos: Padrões de Projeto para o ATIFS; DRS-SDT (Documento de Requisitos de Software do Subsistema SDT) - como exemplo;
  5. orientação para geração de casos de testes, pela ferramenta CONDADO, parte do SDT, para a especificação do protocolo de transferência do sistema de comunicação solo-bordo, padrão CCSDS, implementado no contexto do projeto do satélite SACI-1, sob responsabilidade da DSS-INPE.
De forma geral o projeto teve como atividades neste ano que passou:

  1. Projeto e definição do analisador léxico e sintático da linguagem de especificação da máquina de estados finita (LEP);
  2. prosseguimento na implementação da arquitetura ferry-clip e do injetor de falhas do sub-sistema SSE;
  3. conclusão da ferramenta CONDADO, geradora dos casos de teste (sub-sistema SDT);
  4. especificação das interfaces e projeto dos sub-sistemas SGS e STR;
  5. análise das alterações da camada G.O. para adequação da mesma ao padrão ODBC (Open Data Base Conectivity);
  6. estudo da ferramenta CASE WithClass, a ser utilizada na documentação de projeto;
  7. publicação do artigo "CONDADO: uma ferramenta para geração de testes de protocolos combinabdo CONtrole e DADOs" por Selma Bássiga Sabião e Eliane Martins, SBRC'98 - Simpósio Brasileiro de Redes de Computadores - 1998 - Rio de Janeiro.
5. ATIVIDADES FUTURAS

Atividades previstas para o ano que vem:

  1. acompanhamento dos trabalhos de projeto e implementação;
  2. implementação do analisador de traço dos resultados do sub-sistema STR;
  3. implementação do gerador/conversor da linguagem dos casos de teste para a linguagem TCL, executável (sub-sistema SGS);
  4. implementação do analisador léxico e sintático da linguagem de especificação LEP (sub-sistema SDT);
  5. adequação da camada G.O. ao padrão ODBC;
  6. publicação dos documentos de projeto das ferramentas em desenvolvimento.