Testes de sistemas embebidos em hardware real
O Midair executa a mesma suite de testes em todas as suas placas, builds e configurações de rede, e guarda as evidências de cada execução.
Nos sistemas embebidos, as falhas que importam aparecem numa revisão da placa, depois de uma atualização ou com uma certa carga. O Midair mostra onde.
O que são testes de sistemas embebidos.Software testado com o seu hardware.
Os testes de sistemas embebidos verificam o software com o hardware onde ele corre. Isto inclui a placa, os periféricos, o sistema operativo, a rede e os outros dispositivos à volta.
Os testes de firmware são uma parte disto. Os testes de sistemas embebidos cobrem também os drivers, os serviços e as aplicações no dispositivo, e o comportamento de uma frota no terreno.
Os resultados dependem da revisão da placa, do build, da temporização e do estado do dispositivo. Por isso, um teste útil regista tudo isto junto ao veredicto.
O nosso guia explica com mais detalhe os métodos e os erros comuns: Como testar sistemas embebidos.
Níveis de teste.De um posto de trabalho a uma frota.
Cada nível encontra falhas que o nível anterior não vê. Escolha um para ver o que apanha e como o Midair o trata.
Num posto de trabalho
- Apanha
- Erros de lógica, de parsing e de aritmética, e contratos que não são cumpridos.
- Não apanha
- A temporização, os periféricos e tudo o que a placa real faz de outra forma.
- No Midair
- O Visao analisa o mesmo código-fonte com a sua toolchain cruzada antes de qualquer execução. Com o perfil MISRA C:2012, indica o número de cada regra.
Num emulador
- Apanha
- Problemas de arranque, de integração com o sistema operativo e serviços que não arrancam.
- Não apanha
- Os periféricos reais, o comportamento analógico e a temporização exata.
- No Midair
- A mesma suite corre no QEMU com snapshots, por isso os testes já existem antes de a placa chegar à bancada.
Numa placa
- Apanha
- Erros nos periféricos, temporização, cortes de energia e recuperação depois de uma falha.
- Não apanha
- Problemas que precisam de outros dispositivos ou de uma rede à volta da placa.
- No Midair
- Durante o teste, uma máquina ao lado da placa controla a alimentação, a gravação, a consola série e o JTAG.
Com o hardware à volta
- Apanha
- Erros de protocolo, ordem de arranque e drivers em contacto com dispositivos reais.
- Não apanha
- Falhas raras que só aparecem quando há muitas unidades.
- No Midair
- O Test Environment coordena agentes em várias máquinas na mesma execução. Assim, a placa, a rede e os outros dispositivos fazem parte do teste.
Numa frota
- Apanha
- Configurações que divergem, uma unidade diferente das outras e mudanças depois de uma atualização.
- Não apanha
- Se o produto completo faz o seu trabalho para o utilizador.
- No Midair
- O Delta compara cada dispositivo com uma linha de base e aponta as unidades fora do padrão numa frota.
Como sistema completo
- Apanha
- O comportamento do produto completo no seu ambiente real.
- Não apanha
- Nenhum outro nível o substitui: este nível assenta nos anteriores.
- No Midair
- Um único registo por execução guarda juntas as ocorrências no código, os veredictos dos testes e as evidências do dispositivo.
Porque é mais difícil testar sistemas embebidos.Cinco razões.
O resultado depende do hardware
O mesmo build pode passar numa revisão da placa e falhar noutra.
A temporização decide
Uma resposta que chega tarde é um defeito, e pode chegar tarde apenas com carga.
O dispositivo mostra pouco
Muitas vezes não há um depurador à mão, só uma consola e alguns logs.
O estado passa de um teste para o seguinte
Um teste anterior, muitas horas em funcionamento ou uma atualização a meio mudam o que o teste seguinte vê.
As falhas tardias custam mais
Um erro encontrado depois da integração com o hardware pode obrigar a refazer a placa ou a adiar o lançamento.
Como o Midair testa sistemas embebidos.Quatro passos, um registo.
-
1
Visao
Verificar primeiro o código
O Visao analisa C, C++ e assembly com a sua toolchain cruzada, incluindo alvos bare-metal. Com uma linha de base, só reporta as ocorrências novas.
visao · arm-none-eabi-gcc · baseline: main otp.cpp:20:20 error arithm/integer/overflow MISRA 12.4 otp.cpp:31:5 error cpp/string/no_null_terminator MISRA 21.17 2 new findings, 0 fixed since the baseline
-
2
Test Environment
Executar uma suite em todos os alvos
Os agentes nas máquinas de teste executam a mesma suite em cada placa, build e configuração de rede. Cada teste tem um veredicto esperado, por isso uma regressão salta à vista.
fw-smoke · fw 2.4.1 · 4 targets board rev A 12 as expected board rev B 11 as expected, 1 unexpected board rev C 12 as expected QEMU aarch64 12 as expected update/keep_config fails on rev B only
-
3
Delta
Inspecionar o próprio dispositivo
O Delta inspeciona o sistema em execução ou o sistema de ficheiros raiz do firmware: portas, ficheiros de persistência, binários e o seu hardening. Reporta as diferenças em relação a uma linha de base.
delta · board rev B · baseline golden.json appeared /etc/cron.d/backup mode 0666 T1053.003 appeared tcp 0.0.0.0:2375 dockerd missing stack canary in /usr/bin/agent 3 differences from the baseline
-
4
Midair
Ler a falha no seu contexto
O Midair guarda cada execução com a configuração, os logs e os veredictos, e nunca escreve por cima dela. Um assistente de IA ligado por MCP lê as mesmas falhas e os mesmos logs.
mcp · midair_run_failures update/keep_config board rev B FAILED expected PASSED mcp · midair_get_log console config v3 found, reader expects v4 console Kernel panic - not syncing
O percurso embebido.Uma página por etapa.
Leituras recomendadas.Do nosso trabalho de engenharia.
Perguntas.Respostas curtas.
O que são testes de sistemas embebidos?
Os testes de sistemas embebidos verificam o software com o hardware onde ele corre. Isto inclui a placa, os periféricos, o sistema operativo, a rede e os dispositivos à volta.
Quais são os níveis dos testes embebidos?
Testes unitários num posto de trabalho, num emulador e numa placa (hardware-in-the-loop). Depois, a integração com o hardware à volta, os testes numa frota e a validação do sistema completo.
Em que diferem dos testes de firmware?
Os testes de firmware focam-se no software dentro de um dispositivo: gravação, arranque, periféricos e recuperação. Os testes de sistemas embebidos cobrem também as aplicações no dispositivo, a rede e as frotas de dispositivos.
Podemos testar antes de o hardware estar pronto?
Sim, em parte. O Visao analisa o código-fonte sem o executar. Os testes podem correr no QEMU, e o Delta pode inspecionar offline o sistema de ficheiros raiz de um firmware.
Com que placas e sistemas funciona o Midair?
Os testes chegam à placa através de uma máquina ao lado dela, por isso a placa não precisa de agente. O Delta corre em Linux embebido em x86_64, AArch64, ARMv7, RISC-V e MIPS. O Visao analisa código compilado com toolchains cruzadas, incluindo alvos bare-metal.
Encaixa na nossa CI?
Sim. As execuções começam a partir da sua CI, por exemplo com o plugin para Jenkins. Um assistente de IA pode lançar execuções e ler falhas através de MCP.
Comece por uma placa e uma suite.Depois junte o resto do laboratório.
Compare os planos na página de preços. Os preços são mensais, em euros.
Iniciar o seu piloto