Post

Testes em Sistemas embarcados (Embedded System)

1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Loading ...

Este post é para falar um pouco sobre Testes em Sistemas Embarcados .
Citarei algumas abordagens e técnicas que  podem ser aplicados para garantir a qualidade desses sistemas.

Embedded 2

Antes disto, entenda que: Sistemas Embarcados são softwares desenvolvido para uma tarefa específica, muitas vezes sem a interação do usuário. Geralmente são chamados de firmware escrita em linguagem de baixo nível (C, C++, Assembly, etc.) e estão armazenados diretamente em memória ROM ou memória Flash, sem a necessidade de um disco rígido.

Os Sistemas Embarcados por vezes são desenvolvidos para controlar outros hardwares ou softwares e por vezes seus recursos externos são limitados, sem teclado, sem mouse, sem botão, sem tela ou display.

Sem tela? Mas como testar um software sem uma interface gráfica?

Pois é, esta pode ser uma dificuldade para quem está habituado em ver as requisições e respostas através de uma interface gráfica, impressa ou um resultado sensitivo.

 

COMO TESTAR?

Como existe uma gama enorme de sistemas embarcados e cada um com sua peculiaridade, deve ser dado atenção única ao sistema que está sendo testado, ou seja, não existe um padrão de teste como em sistemas de alto nível, portanto existem muitas abordagens de testes de hardware, pois cada sistema tem um comportamento distintos.

Muitas vezes estes testes são classificados como críticos, pois envolve riscos para a vida humana, portanto enfrenta exigências de qualidade elevada, como por exemplo um “Sistema de piloto automático” para avião ou carro. Já pensou o quanto delicado deve ser os testes para um sistema como este?

O auxílio de uma ferramenta de testes pode atrapalhar o desempenho dos testes. A maioria dos softwares embarcados tem um ambiente de desenvolvimento que é diferente do ambiente destino e muitas vezes usa se simuladores, emuladores ou outros meios eletrônicos para verificar que o software funcione conforme o esperado.

 

EXEMPLOS DE TESTES EM SISTEMAS EMBARCADOS:

GPS
Um Sistema de GPS, antes de o software traduzir o sinal de GPS como fraco, forte ou sem sinal através de uma “barrinha” gráfica na tela do GPS, é preciso testar se o sinal chega adequadamente no hardware. Para isto são usados medidores de frequência, para cada emissão de sinal do satélite;

Cockpit

Agora imagine um Sistema de Cockpit (em um painel de carro ou avião) que verifica uma velocidade controlada, ou seja, se o veículo ultrapassar a velocidade pré-determinada é emitido um alerta sonoro e/ou visual.  Antes que o software atinja um nível alto de confiabilidade ele não pode ser implementado em um ambiente de destino real, pois além de o sistema passar por muitas mudanças físicas e lógica o custo é muito alto. Para casos como estes, são criados painéis virtuais, com pouquíssimas funções gráficas (para não interferir no desempenho) ou desenvolver outro sistema embarcado que apenas recebe as informações e traduz em alerta sonoro ou visual. Para sua implementação final é preciso que o software e hardware atinja um certo nível de confiabilidade, para isto são feitos testes exaustivos e de longa duração;

Memoria (2)

Outro exemplo interessante e que você já deve ter testado: Se você tirar a Memória RAM do seu computador e na sequencia liga-lo, você vai perceber um alerta sonoro (Bipes), informando a ausência dela. Existe um Sistema embarcado que sinaliza o usuário que algo errado está acontecendo.

 

Bom, vimos que este assunto é bastante extenso e interessante. Se você quiser se aventurar neste mundo Embedded , atente-se nesta estrutura básica de aprendizagem:
1 – Linguagem em baixo nível, como  C, C++, Assembly, etc., que compreende e interpreta as características dos hardwares;

2 –  RTOS (Real-Time Operating System), Sistema Operacional em Tempo Real,  destinado à execução de múltiplas tarefas onde o tempo de resposta a um evento (externo ou interno) é pré-definido;

3- ARM Arquitetura e Periféricos, Processador dominante na indústria de embutidos;

4- Engenharia de Software; Um bom profissional nesta área deve estar familiarizado com: Engenharia de Requisitos, Projeto, Implementação, Testes e Gerenciamento da Configuração igualmente aos testes de sistemas em alto nível.

Espero que tenham gostado e se tiverem alguma crítica, dúvida ou sugestão fiquem a vontade para me contatar:

FÁBIO C. ARAÚJO
Contatos: @fabiokaia
[email protected]
www.facebook.com/fabio.c.araujo.1

7fWBVbw

Desafiado por Júlio de Lima – @juliodelimas

 

Você também pode querer ler

Não Comentários

Leave a Comment

O seu endereço de e-mail não será publicado.