You are on page 1of 6

QSEE-TAS: Uma Ferramenta para Execução e Relato

Automatizados de Testes de Software para Aplicações Espaciais

Wendell P. Silva1, Valdivino Santiago2, Maria de Fátima Mattiello-Francisco3,


Danilo Passos1

1
Divisão de Astrofísica - Instituto Nacional de Pesquisas Espaciais (INPE)
Av. dos Astronautas, 1758 - Jd. Granja - 12227-010 - São José dos Campos, SP - Brasil
2
Ciências Espaciais e Atmosféricas
Instituto Nacional de Pesquisas Espaciais (INPE) - São José dos Campos, SP - Brasil
3
Divisão de Sistemas de Solo
Instituto Nacional de Pesquisas Espaciais (INPE) - São José dos Campos, SP - Brasil

{wendell, valdivino, danilo}@das.inpe.br, fatima@dss.inpe.br

Abstract. Testing satellite on-board computer software is a highly time-


consuming task usually involving a significant number of regression tests. This
paper presents a tool, named QSEE-TAS, for automatic test execution and
reporting of satellite on-board computer embedded software which use an
INPE’s proprietary communication protocol in order to communicate with
other on-board computers. This tool can reduce significantly the time spent to
execute and analyze the results of the tests. It supports black-box testing and
communication via an RS-232 or USB interfaces. The QSEE-TAS has been
used to test the behaviour of a payload on-board of a scientific satellite under
development at National Institute for Space Research (INPE).

Resumo. Testar software para computadores de bordo de satélites é uma


tarefa que demanda bastante tempo, usualmente envolvendo uma quantidade
significativa de testes de regressão. Este artigo apresenta uma ferramenta,
QSEE-TAS, usada para a execução e relato automatizados de testes para
software embarcado em computadores de bordo de satélite que utilizam um
protocolo proprietário do INPE para comunicar com outros computadores do
satélite. A ferramenta apóia testes caixa-preta e comunicação via interfaces
RS-232 ou USB. A QSEE-TAS tem sido usada para testar o comportamento de
um experimento a bordo de um satélite científico atualmente em
desenvolvimento no Instituto Nacional de Pesquisas Espaciais (INPE).

1. Introdução
Devido aos altos custos de projeto e dificuldades de manutenção, satélites são
considerados sistemas críticos. Software embarcado em computadores de bordo de
satélites é usualmente complexo, pois atua diretamente no hardware do computador,
realiza aquisição de dados de sensores, calcula a correta orientação do satélite no espaço,
interage com atuadores do satélite, gerencia os dados obtidos a bordo e é difícil de ser
substituído pelo aspecto não tripulado de uma missão de satélite.
Testar um software com tais características demanda muito tempo. Além destes
aspectos, é importante mencionar que este software deve ser testado nos diferentes
hardwares (modelos de Engenharia, Qualificação e Vôo, por exemplo [1]), que são
desenvolvidos para um computador de bordo de um satélite. Portanto, uma ferramenta
que permita a execução e relato de testes de forma automática pode ajudar a diminuir o
tempo gasto nos diversos testes unitários, integrados e de regressão que usualmente são
realizados em um software crítico.
A ferramenta Qualidade do Software Embarcado em Aplicações Espaciais –
Teste Automatizado de Software (QSEE-TAS) foi desenvolvida especificamente para
execução e relato automatizados de testes de software embarcado em experimentos de
satélites científicos que adotam o protocolo de comunicação EXP-OBDH (OBDH = On-
Board Data Handling Computer), proprietário do INPE, como interface de
comunicação com outros computadores a bordo do satélite [2]. De uma forma
simplificada, a QSEE-TAS permite que as funcionalidades do experimento científico ou
tecnológico sejam validadas de forma remota por meio do canal de comunicação real
de operação em vôo. A QSEE-TAS apóia testes caixa-preta e é executada em um
computador distinto do computador onde a Implementação Sob Teste (IST) executa,
fisicamente conectados por linhas de comunicação com padrão de interface RS-232 ou
USB. A ferramenta foi desenvolvida em ambiente LabVIEW e está em processo de
integração com uma base de dados Postgres especificamente construída para alojar os
testes de aplicações espaciais. Embora tenha sido projetada e desenvolvida para testes
de software que implementam o protocolo de comunicação EXP-OBDH do INPE [2],
esta ferramenta pode perfeitamente ser aplicada a qualquer protocolo do tipo START-
STOP para comunicação serial assíncrona via interfaces com padrão RS-232 ou USB.
Embora atualmente existam ferramentas comerciais para testes automatizados
de aplicações Web, Java e Microsoft [3] [4] [5], a experiência da equipe do INPE em
instrumentação usando ambiente LabVIEW, somada a necessidade de integração com o
banco de dados de testes, motivou a construção da QSEE-TAS, demonstrando ser uma
opção factível para flexibilizar os testes de aplicações distribuídas com características
bastante específicas como as do software embarcado em missões de satélites do INPE.
A estruturação do artigo inclui: na seção 2, uma descrição da arquitetura da
QSEE-TAS; na seção 3, as principais funcionalidades da ferramenta; na seção 4 são
discutidos os ganhos advindos do uso da ferramenta no projeto QSEE, a conclusão e os
trabalhos futuros a serem realizados. Finalmente, a seção 5 contém as referências.

2. Arquitetura da QSEE-TAS
A ferramenta QSEE-TAS foi desenvolvida usando o software LabVIEW da National
Intruments [6]. O LabVIEW é um ambiente de desenvolvimento baseado em uma
linguagem de programação gráfica e é bastante apropriado para o desenvolvimento de
software para instrumentação e análise de dados. A arquitetura interna da ferramenta
QSEE-TAS está descrita de forma simplificada na Figura 1. O ambiente proporcionado
pelo mecanismo de tempo de execução do LabVIEW condiciona os componentes da
QSEE-TAS de acordo com o fluxo de trabalho definido pelo ambiente.
As principais funcionalidades da QSEE-TAS incluem o planejamento e
configuração dos testes, preparação e execução dos casos de testes, gerenciamento do
projeto de teste, geração de relatos de teste em formato XML/XSL. Seguindo os
componentes da arquitetura apresentados na Figura 1, o planejamento de testes inclui a
enumeração de itens de testes e suas associações a casos de teste, juntamente à definição
de canais de comunicação e mensagens de protocolo. A preparação da execução é feita
nos componentes de formatação e seqüenciamento, formando seqüências de teste
executáveis. Uma vez preparada, as seqüências de testes podem ser aplicadas fazendo
uso dos canais de comunicação. O projeto de teste pode ser armazenado tanto local
como remotamente (Banco de Dados Relacional).

Figura 1. Arquitetura QSEE-TAS.


A comunicação com as ISTs é flexível. Atualmente, a opção mais comum de
canal é RS-232 ou USB, podendo ser facilmente estendida para outros tipos como
Ethernet (socket raw), UDP ou TCP/IP, entre outros, por meio de componentes
adaptadores de canais. Um adaptador está sendo desenvolvido para permitir a aquisição
de dados a partir de canais analógicos.
Uma vez que múltiplos canais podem ser definidos, os passos de teste podem ser
associados a mais de uma IST, ou mesmo uma única IST com mais de um canal de
comunicação. Por exemplo, um canal RS-232 para transferência de sinais de controle
e/ou dados discretos e um outro canal para transferência de dados analógicos como
temperaturas provenientes de sensores.
Ao organizar os itens (funcionalidades) a serem testadas de acordo com a
especificação da IST, o testador pode solicitar a emissão de relatos de testes. Esses
relatos são gerados baseados nos registros obtidos durante a fase de execução dos testes.
O arquivo gerado é um texto em formato XML. A visualização do XML que descreve o
relato de teste pode ser feita por meio de um navegador, tipo Internet Explorer ou
Netscape, que tornará a visualização do arquivo XML mais amigável ao usuário, através
da aplicação de estilos XSL. A vantagem dessa abordagem é a separação entre o
conteúdo do relato de teste e a sua apresentação visual, o que facilita a
interoperabilidade com outras ferramentas.

3. Funcionalidades Principais
A QSEE-TAS manipula três aspectos básicos inter-relacionadas: itens de teste, casos de
teste e passos de teste.
Os itens de teste descrevem o que deve ser testado e estão relacionados a
qualquer parte verificável da IST de acordo sua especificação, como itens funcionais e
não funcionais constituídos de um ou mais casos de teste. Os casos de teste, por sua vez,
representam possíveis cenários os quais testes podem ser aplicados e são representados
por um conjunto ordenado de um ou mais passos de teste. Os passos de teste são
instruções que estimulam a IST e capturam a resposta de cada estímulo comparando-a
com a respostas esperada.
A QSEE-TAS foi desenvolvida especificamente para testar a implementação de
um protocolo desenvolvido para comunicar o computador OBDH e o computador de
uma carga útil [2] do satélite Equatorial Atmosphere Research Satellite (EQUARS), em
desenvolvimento no INPE. A Figura 2 apresenta a interface principal da QSEE-TAS.
Na região 1 da Figura 2, o testador pode enumerar os itens de testes e associá-los aos
casos de testes. Na região 2 da Figura 2, o testador tem a possibilidade de gerar casos de
teste por meio da criação manual de comandos, de acordo com a especificação do
protocolo [2], tendo também a possibilidade de modificar tais comandos quando
necessário (região 3 da Figura 2). Outras operações associada à administração do
projeto de teste tais como a especificação de canais de comunicação, propriedades da
IST, ciclos de teste e relatos ficam ao lado, como mostra a região 4 da Figura 2.

Figura 2. Interface principal da QSEE-TAS.


Os canais de comunicação definem a maneira pela qual os estímulos serão
levados à IST. Os passos de teste do tipo solicitação-resposta, necessitam ser associados
ao canal que realizará o transporte do estímulo à IST, assim como o canal de resposta, o
que permite a aplicação de testes em ISTs que dispõem de múltiplos canais de
comunicação. A edição de um passo de teste do tipo solicitação-resposta envolve a
preparação do formato da mensagem tanto da solicitação como a resposta esperada.
Assim, durante a execução do passo, uma parte do veredito é automatizada, já que a
resposta da IST, em muitos casos, pode ser representada por uma expressão regular,
facilitando a checagem e atribuição automática do veredito. A Figura 3 (a) mostra a
execução do comando Load Parameter com parâmetro 31h, que significa alterar o
discriminador LLD para o estado ON (ligado) [2], cujos campos são SYNC –
identificador de sincronismo, EXPID – identificador do experimento, TYPE – tipo da
mensagem de comando, SIZE – tamanho do campo de dados, Parameter – o dado da
mensagem e CHECKSUM – soma de verificação. Além disso, a resposta esperada
também é mostrada ao lado. O trecho do relato dessa execução está apresentado na
Figura 3 (b).

(a) (b)
Figura 3. Execução e Relato na QSEE-TAS. (a) Execução de passos de teste com
veredito. (b) Visualização do relato de teste no navegador.
A geração do relato de teste está vinculada a um ciclo de teste definido pelo
testador. Um ciclo de teste reúne as informações de uma sessão de teste completa, com
todos os itens e casos verificados e com veredito atribuído, além de outras informações
observadas durante a aplicação dos testes anotadas pelo testador. Ao final de uma sessão
de teste documentada pelo ciclo em questão, o testador pode visualizar e opcionalmente
imprimir o relato de teste. Na necessidade de testes de regressão, um novo ciclo de teste
é criado, no mesmo projeto de teste (arquivo *.apt – Arquivo de Projeto de Teste).
Desta forma, o histórico de cada bateria de testes é armazenado e a evolução da IST –
na perspectiva do processo de teste –, é preservada viabilizando futuras análises
estatísticas.
Para avaliar a QSEE-TAS, os interessados devem acessar a página
http://www.cea.inpe.br/~qsee/. Ao chegar nesta página, o menu superior Divulgação
deverá ser acessado e, após isto, o menu lateral Publicações deverá ser acessado. Além
da ferramenta QSEE-TAS, devem ser obtidos a IST, que é a implementação do software
embarcado em um experimento científico desenvolvido em Java (arquivo expemulator-
1.0.7.zip) e as instruções para a execução da ferramenta (arquivo qsee-
tas_instruções.pdf).

Agradecimentos
Os autores gostariam de agradecer à Financiadora de Estudos e Projetos (FINEP) pelo
suporte dado ao projeto Qualidade do Software Embarcado em Aplicações Espaciais
(QSEE).

4. Conclusão
As funcionalidades contempladas na versão atual da QSEE-TAS aumentam
sensivelmente o grau de automação do processo repetitivo de teste de aplicações
embarcadas. Por meio desta ferramenta, percebeu-se que o processo de executar testes e
preencher o seu relato teve um ganho de produtividade considerável pela automatização
proporcionada pela ferramenta.
A ferramenta QSEE-TAS agrega flexibilidade ao processo de teste pois permite
ao testador explorar, de forma sistemática, diferentes combinações de comandos e dados
a serem enviados para o experimento, construindo passos de testes para a aplicação
embarcada. Desta forma, é possível exercitar as peculiaridades de operação dos
experimentos em desenvolvimento para satélites científicos de forma mais ágil,
permitindo agregar vários passos de teste (comandos) em um caso de teste e salvar esta
configuração em arquivos.
Como trabalhos futuros, a ferramenta QSEE-TAS será adaptada para apoiar
testes de software embarcado que utilizam protocolos de comunicação mais complexos.
Pretende-se incorporar a ela recursos de visualização de resultados de testes em
mensagens longas, mais facilidade na edição de mensagens do protocolo e maior
disponibilidade de canais de comunicação. A QSEE-TAS também será integrada a
outras ferramentas que geram casos de teste automaticamente, como a ferramenta
Condado [7], o que permitirá ter as três funcionalidades de automação de testes (geração,
execução e relatos) incorporados em um único ambiente. Para isso, os casos de teste
gerados pelas ferramentas de geração automática serão descritos em um formato XML e
a QSEE-TAS os executará e fornecerá relatos dos mesmos de forma automática.

5. Referências
[1] European Cooperation for Space Standardization. Space Engineering: Verification.
Noordwijk, The Netherlands: ESA/ECSS, 1998, p. 144 (European Space Agency for
the members of ECSS Publication, ECSS-E-10-02A).
[2] Instituto Nacional de Pesquisas Espaciais. EXP-OBDH Communication Protocol
Definition: a case study for PLAVIS. São José dos Campos: INPE/Projeto QSEE,
1998, p. 9 (Publicação do INPE/Projeto QSEE).
[3] Compuware Corporation. QA Center Enterprise Edition Product. Disponível em: <
http://www.compuware.com/products/qacenter/enterprise.htm>. Acesso em: 24 abril
2006.
[4] IBM. Rational Functional Tester Product. Disponível em: <http://www-
306.ibm.com/software/awdtools/tester/functional/index.html>. Acesso em: 28
março 2006.
[5] Mercury Interactive Corporation. Mercury WinRunner Product. Disponível em:
<http://www.mercury.com/us/products/quality-center/functional-
testing/winrunner/>. Acesso em: 20 abril 2006.
[6] National Instruments. LabVIEW User Manual. Austin, Texas: NI, 1998, p. 476 (NI
Publication, Part Number 320999B-01)
[7] Martins, E.; Sabião, S. B.; Ambrósio, A. M. ConData: a tool for automating
specification-based test case generation for communication systems. Software
Quality Journal, v. 8, n. 4, p. 309-319, 1999

You might also like