Neste tutorial, você aprenderá
- O que são sistemas embarcados?
- O que é teste incorporado?
- Tipos de teste de software incorporado
- Diferença: teste integrado e teste de software
- Desafios: Teste de Software Embarcado
O que são sistemas embarcados?
Os sistemas incorporados são os dispositivos controlados eletronicamente onde o software e o hardware estão fortemente acoplados. Os sistemas incorporados podem conter uma variedade de dispositivos de computação. Estes são PCs incorporados em outros dispositivos para operar funções específicas de aplicativos. O usuário final geralmente nem tem conhecimento de sua existência.
Teste Embutido
Teste integrado é um processo de teste para verificar atributos funcionais e não funcionais de software e hardware em um sistema integrado e garantir que o produto final esteja livre de defeitos. O principal objetivo dos testes embarcados é verificar e validar se o produto final de hardware e software embarcados atende aos requisitos do cliente ou não.
O teste de software incorporado verifica e garante que o software em questão é de boa qualidade e está em conformidade com todos os requisitos que deve atender. O teste de software integrado é uma abordagem excelente para garantir a segurança em aplicações críticas como equipamentos médicos, ferrovias, aviação, indústria de veículos, etc. Testes rigorosos e cuidadosos são cruciais para conceder a certificação de software.
Como realizar o teste de software incorporado
Em geral, você testa por quatro motivos:
- Para encontrar bugs no software
- Ajuda a reduzir o risco para os usuários e para a empresa
- Reduza os custos de desenvolvimento e manutenção
- Para melhorar o desempenho
No teste incorporado, as seguintes atividades são realizadas:
1. O software é fornecido com algumas entradas.
2. Uma parte do software é executada.
3. O estado do software é observado e as saídas são verificadas quanto às propriedades esperadas, como se a saída corresponde ao resultado esperado, conformidade com os requisitos e ausência de travamentos do sistema.
Tipos de teste de software incorporado
Fundamentalmente, existem cinco níveis de teste que podem ser aplicados ao software embarcado
Teste de Unidade de Software
O módulo da unidade é uma função ou classe. O Teste de Unidade é realizado pela equipe de desenvolvimento, principalmente o desenvolvedor e geralmente é realizado em um modelo de revisão por pares. Com base na especificação dos casos de teste do módulo são desenvolvidos.
Teste de integração
O teste de integração pode ser classificado em dois segmentos:
- Teste de integração de software
- Teste de integração de software / hardware.
No final, a interação do domínio de hardware e componentes de software são testados. Isso pode incluir o exame da interação entre os dispositivos periféricos integrados e o software.
O desenvolvimento de software embarcado tem uma característica única que se concentra no ambiente real, no qual o software é executado, geralmente é criado em paralelo com o software. Isso causa inconvenientes para o teste, pois o teste abrangente não pode ser executado em uma condição simulada.
Teste de Unidade de Sistema
Agora, o módulo a ser testado é uma estrutura completa que consiste em código de software completo, além de todo o sistema operacional em tempo real (RTOS) e peças relacionadas à plataforma, como interrupções, mecanismos de atribuição de tarefas, comunicações e assim por diante. O protocolo Point of Control não é mais uma chamada para uma função ou invocação de método, mas sim uma mensagem enviada / obtida utilizando as filas de mensagens RTOS.
Os recursos do sistema são observados para avaliar a capacidade do sistema de suportar a execução do sistema embarcado. Para este aspecto, o teste de caixa cinza é o método de teste preferido. Dependendo da organização, o teste da unidade de sistema é responsabilidade do desenvolvedor ou de uma equipe de integração de sistema dedicada.
Teste de integração do sistema
O módulo a ser testado começa a partir de um conjunto de componentes em um único nó. Os pontos de controle e observações (PCOs) são uma mistura de protocolos de comunicação relacionados à rede e RTOS, como mensagens de rede e eventos RTOS. Além de um componente, um Virtual Tester também pode desempenhar a função de um nó.
Teste de validação do sistema
O módulo a ser testado é um subsistema com uma implementação completa ou o sistema embarcado completo. O objetivo deste teste final é atender aos requisitos funcionais de entidades externas. Observe que uma entidade externa pode ser uma pessoa ou um dispositivo em uma rede de telecomunicações, ou ambos.
Diferença: teste integrado e teste de software
Teste de software | Teste Embutido |
---|---|
O teste de software está relacionado apenas ao software. | O teste integrado está relacionado tanto ao software quanto ao hardware. |
Em média, 90% dos testes realizados no mundo são testes puramente manuais da caixa preta. | O teste embarcado é feito em sistemas embarcados ou chips, pode ser um teste de caixa preta ou caixa branca. |
As principais áreas de teste são verificações de GUI, funcionalidade, validação e algum nível de teste de banco de dados. | As principais áreas de teste são o comportamento do hardware para o não. de insumos dados a ele. |
Os testes de software são realizados principalmente em aplicativos cliente-servidor, web e móveis. | Teste embutido geralmente executado no Hardware. |
por exemplo, Google Mail, Yahoo Mail, aplicativos Android. | por exemplo, Máquinas do domínio da saúde, Microcontroladores usados em computadores. |
Desafios: Teste de Software Embarcado
Alguns dos desafios que podem ser enfrentados durante o teste de software embarcado:
Dependência de Hardware
A dependência de hardware está entre as principais dificuldades enfrentadas durante o teste de software embarcado devido ao acesso limitado ao hardware. No entanto, emuladores e simuladores podem não representar precisamente o comportamento do dispositivo real e podem fornecer uma noção errada do desempenho do sistema e da usabilidade do aplicativo.
Software livre
A maioria dos componentes de software embarcados são de código aberto por natureza, não criados internamente e sem testes completos disponíveis para eles. Existe uma grande variedade de combinações de teste e cenários resultantes.
Software vs. Defeitos de Hardware
Outro aspecto é quando o software está sendo desenvolvido para um hardware recém-criado, durante esse processo, uma alta proporção de defeitos de hardware pode ser identificada. O defeito encontrado não se limita apenas ao software. Pode estar relacionado ao hardware também.
Defeitos reproduzíveis
Os defeitos são mais difíceis de reproduzir / recriar no caso do sistema embarcado. Isso reforça o procedimento de teste integrado para avaliar cada ocorrência de defeito substancialmente mais alto do que em um caso padrão, exceto para reunir tantos dados quanto poderiam ser sensatamente necessários para alterar o sistema para encontrar a base do defeito.
Atualizações Contínuas de Software
Os sistemas incorporados requerem atualizações regulares de software, como a atualização do kernel, correções de segurança, drivers de dispositivos diferentes, etc. As restrições identificadas com a influência das atualizações de software tornam a identificação do bug difícil. Além disso, aumenta a importância do procedimento de construção e implantação.
Resumo
Existem algumas dificuldades em testar o teste de software incorporado que o torna mais difícil do que o teste regular de software. O problema mais fundamental é a forte confiança no ambiente de hardware que é preparado simultaneamente com o software e que é regularmente necessário para realizar testes de software confiáveis. Às vezes é até difícil testar o software sem ferramentas personalizadas, o que torna a concentração no teste nos estágios finais excepcionalmente atraente sem esforço.
Uma das coisas mais importantes é que você deve pensar no fato de que muitas vezes você deve optar por testes de software automatizados. O teste automatizado embarcado é um processo mais rápido que levaria algumas horas para ser concluído e, dessa forma, o problema do seu software fica resolvido.