350 likes | 473 Views
Metodologia de geração de teste para sistemas embarcados – uma experiência no INPE. Ana Maria Ambrosio 06/out/2007. Tópicos. Visão geral do INPE Metodologia de teste CoFI Aplicação da CoFI no projeto QSEE: lições aprendidas e resultados obtidos. INPE.
E N D
Metodologia de geração de teste para sistemas embarcados – uma experiência no INPE Ana Maria Ambrosio 06/out/2007
Tópicos • Visão geral do INPE • Metodologia de teste CoFI • Aplicação da CoFI no projeto QSEE: lições aprendidas e resultados obtidos
INPE Instituto Nacional de Pesquisas Espaciais Subordinado ao Ministério de Ciência e tecnologia - MCT Missão: Produzir ciência e tecnologia nas áreas espacial e do ambiente terrestre e oferecer produtos e serviços singulares em benefício do Brasil.
Principais áreas de atuação Laboratório de Integração e Testes Ciências espaciais e atmosféricas Previsão de tempo e estudos climáticos Engenharia e Tecnologia Espacial Observação da Terra Centro de rastreio e controle de satélites
Áreas favorecidas pelo programa espacial brasileiro no contexto do INPE energia agricultura ecosistemas clima saúde biodiversidade desastres
Missões espaciais realizadas MECB – Missão espacial completa brasileira SCD1/93 SCD2/98 SCD2A/97 CBERS – China-Brazil Earth Resources Satellite CBERS3 - CBERS1/99 CBERS2/03 CBERS4 - CBERS2B/07 Satélites científicos e tecnológicos Mirax - SACI-1/99 SACI-2/99 Satec/03
Metodologia de geração de teste para sistemas embarcados COFI Conformidade e Falhas Injetáveis
Motivação • “Os excelentes resultados de geração automática de teste de software, apresentados pela academia ainda não estão sendo adotados na indústria. “ Fonte: Lai, 2002
Condado Geração automática de teste a partir de FSM/EFSM inicial(Idle) trans(Idle,t1,WCon,L0,Ln):- transmitu(‘SENDr',L2,Ln). receiveu(‘CR',L0,L1), trans(WCon,t2,C,L0,Ln):- transmit(‘CC’,L2,Ln). receiveu(‘SEND',L0,L1), ... ConDado Seqüência abstrata de casos de teste senddata (U, SENDrequest) recdata (L, CR) senddata (L, CC) recdata (U, SENDconfirm) senddata (U, DATArequest, “xHn*e”, 2, 14) recdata (L, DT) senddata (L, ACK) recdata (L, DISrequest) senddata (L, DISrequest) recdata(U, DISindication)
Dificuldades • teste de conformidade com geração automática: • baseada em métodos formais, • requer um modelo formal completo que represente o comportamento do software difícil de ser obtido • pode gerar um número intratável de casos de testes
CoFI- Conformidade e Falhas Injetáveis • Sistematizar a criação de casos de testes • Atender necessidades de teste de software em aplicações espaciais • Fazer uso das técnicas e ferramentas de geração automática de teste a partir de FSM/EFSM • Incluir a técnica de injeção de falhas Objetivo:
Descrição formal do software Visão geral da CoFI Passos de transformação da descrição do software diagramas UML Especificações textuais Seqüência Teste Arquitetura de teste Casos de teste Casos de falha
Passos da CoFI 1. SERVIÇO /propósitos de teste Definição do contexto da IUT 2. Usuários, meio físico 4. Casos de uso 3. Entradas, Saídas,Arq. Teste, PCOs CENÁRIOS NORMAIS CENÁRIOS EXCEPCIONAIS 5. Diagrama Seqüência Normal Transformações 6. Diagrama EstadosNormal 8. Matriz de Transições 9. Modelo de Falhas 10. Diagrama Seqüência Excepcional 11. Diagrama Estados Excepcional Geração automática 7. Deriva casos de teste 12. Deriva casos de falha Seqüência de teste CoFI
Decomposição do SuT na CoFI Por serviço (ou por propósito de teste), que por sua vez é dividido em cenários Por tipo de comportamento: • normal; • exceções especificadas, • caminhos furtivos (entradas inoportunas) • tolerância a falhas (falhas provocadas pelo hardware)
Aplicação da CoFI no projeto QSEE – Qualidade de Software Embarcado em aplicações Espaciais : lições aprendidas e resultados obtidos
Projeto QSEE Qualidade de Software Embarcado em aplicações Espaciais • Transferência de tecnologia do INPE para a indústria nacional de software • Uso das normas ECSS pela Ciências Espaciais e Atmosféricas (CEA/INPE) no desenvolvimento de software de cargas úteis de satélite • Desenvolvimento de um processo de aceitação de software para o INPE apoiado na abordagem de Verificação e Validação Independente de Software Objetivos:
SWPDC - aplicação em teste • software embedded in an Payload Data handling Computer that controls scientific experiments on-board of a MIRAX satellite under development at INPE • C language; Labview • Main functions: • Scientific data aquisition • housekeeping, test & diagnostic data preparation • error recognition and handling mechanism for commmunication, memory and processor failures • Communication with OBDH, event processors, thermistors
EPPs Simulator QSEE-TAS Watchdog simulation Mem. error Restrições, Facilidades de Teste Modelo de falhas de hardware: memória, processador comunicação SWPDC embarcado Na placa do PDC
Criação dos modelos de estado Serviços Tipos de comportamento Especificação (Norm) Normal (SExc) Specified exception (SPat) Sneak path (M&Pr) Fault Tolerance Entradas/Saídas Ambiente de teste Modelos Nomes dos eventos Comandos para o injetor de falhas Tipos de falhas de hw, parâmetros, temporizadores
Tipos de falhas x entradas/saídas Comunicação Memória Processador
Derivação de casos de teste e casos de falhas MME para edição Modelos Condado para geração Arquivo de saída CTest.seq
Resultados 11 serviços foram definidos 97 modelos gerados 770 casos de teste 51 erros
Casos de falha 319 normais 12 51 erros 39 770 casos 451 Casos de falha
Comentários sobre os resultados do projeto QSSE • Os resultados surpreenderam com 51 erros ainda encontrados • Considerando que a validação se deu sobre um software fornecido por uma empresa Brasileira de Software proeminente, desenvolvido por uma equipe competente sob rigorosas regras de garantia de qualidade • 45% erros de código • 33% erros de não-conformidade nos documentos • 22% ambos • Considerando que todas as não-conformidades entre código e documentos foram computadas. • Atenção às falhas é mais efetivo que no comportamento normal para a validação
Lições aprendidas – CoFI em um caso real O esforço de criar os modelos foi compensado pela superior organização dos testes alcançada com a aplicação da metodologia CoFI em comparação com o projeto dos testes de forma ad-hoc Os modelos voltam a atenção dos testadores para falhas e exceções que podem ocorrer durante a operação do software levando ao projeto de situações que os desenvolvedores normalmente não pensam Os casos de teste gerados pela Condado são auto-contidos, i.é, cada caso pode ser executado independentemente, desta forma o veredicto não depende da ordem de execução dos casos e facilita a re-execução.
Comentários sobre a metodologia de teste CoFI A metodologia CoFI reduz a distância entre a prática (geração de teste a partir de uma especificação textual) e o uso de métodos formais (especificação em autômatos) É de fácil aprendizagem e permite automação dos passos, pois usa modelos UML Possibilita reuso em teste, porque a geração parte da especificação Orienta a definição de experimentos determinísticos para Injeção de Falhas
Estação Espacial Internacional Construção 1998 - 2005 Sputnik – 1º satélite artificial a orbitar a terra - USRR 1957 ana@dss.inpe.br