O ATIFS é um projeto cooperativo de Pesquisa e Desenvolvimento (P&D) entre o
Instituto Nacional de Pesquisas Espaciais (INPE) e a
Universidade Estadual de Campinas (UNICAMP). O objetivo deste projeto é melhorar a qualidade dos testes de software espacial em uma
dinâmica de pesquisa que combina inovação técnica e experimentação.
As atividades de teste consomem de 50-75% do esforço total do desenvolvimento de software. O alto custo dos testes é, ainda, agravado nos sistemas reativos, como por exemplo os sistemas de comunicação, pois são, geralmente, concorrentes e distribuídos. Estes sistemas requerem extensa verificação e validação para habilitação de funções críticas, um trabalho árduo e ineficiente se realizado de forma não automatizada.
O objetivo do projeto ATIFS é a exploração de técnicas e métodos de teste de software em aplicações espaciais, usando a técnica de injeção de falhas por software e conceitos de teste de conformidade de protocolos de comunicação.
O ATIFS comporta um conjunto de ferramentas integradas e é orientado pelos seguintes requisitos básicos:
- especificação formal da implementação a ser testada, seja Finite State Machine (FSM) clássica ou extendida ou statecharts;
- suporte a geração, implementação , execução e análise de testes;
- portabilidade (Unix-like e Windows);
- homogeneidade de interfaces com o usuário;
- facilidade para agregação de novas ferramentas;
- máxima independência da implementação a ser testada.
As áreas de teste cobertas pelo projeto são:
- geração automática de casos de teste a partir de especificação formal (teste caixa-preta);
- suporte à execução dos testes. A arquitetura Ferry-injection foi definida para este fim (uma arquitetura em software que permite configuração da mesma para diferentes implementações em teste);
- suporte à execução de teste de conformidade
- suporte à execução de teste de robustez e validação de sistemas tolerantes a falhas, pelo uso da técnica de injeção de falhas;
- análise dos dados coletados durante os testes;
- armazenamento e manutenção de histórico de testes.
As ferramentas de teste do ATIFS não apoiam:
- aquisição de dados;
- análise estática de código;
- análise dinâmica de cobertura de código;
- simuladores parciais de código;
- planejamento de testes.
O ATIFS combina
testes de conformidade (quando se verifica se uma
“Implementation Under Test” (IUT) está de acordo com a sua especificação) e testes de robustez através do uso da técnica de
injeção de falhas implementadas por software (do inglês, software implemented fault injection - SWIFI).
O s testes de conformidade baseiam-se na norma ISO IS-9646 - Conformance Testing Methodology and Framework.
A injeção de falhas por software caracteriza-se pela inserção deliberada e automatizada de erros no sistema, gerando mudanças no estado da IUT. Sua utilidade é:
- observação do comportamento do sistema na presença de faltas;
- validação da implementação de rotinas de recuperação de erros;
- validação de mecanismos de exceção.
No projeto ATIFS, sempre que possível, as ferramentas e metodologias de teste a são aplicadas a implementações reais em projetos de desenvolvimento em andamento no INPE. Desta forma, o projeto tem permitido ilustrar que a cooperação entre pesquisa e desenvolvimento é factível e traz vantagens para ambas as partes.