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.

fw-smoke em quatro alvosExemplo
fw 2.3.0fw 2.4.0fw 2.4.1board rev Aboard rev Bboard rev CQEMU aarch64
board rev A · fw 2.3.0 12 as expected boot/time_to_shell PASSED 6.1 s update/keep_config PASSED
board rev A · fw 2.4.0 12 as expected boot/time_to_shell PASSED 6.1 s update/keep_config PASSED
board rev A · fw 2.4.1 12 as expected boot/time_to_shell PASSED 6.1 s update/keep_config PASSED
board rev B · fw 2.3.0 12 as expected boot/time_to_shell PASSED 6.4 s update/keep_config PASSED
board rev B · fw 2.4.0 12 as expected boot/time_to_shell PASSED 6.4 s update/keep_config PASSED
board rev B · fw 2.4.1 11 as expected, 1 unexpected update/keep_config FAILED expected PASSED console Kernel panic - not syncing after the update
board rev C · fw 2.3.0 12 as expected boot/time_to_shell PASSED 6.4 s update/keep_config PASSED
board rev C · fw 2.4.0 12 as expected boot/time_to_shell PASSED 6.4 s update/keep_config PASSED
board rev C · fw 2.4.1 12 as expected boot/time_to_shell PASSED 6.4 s update/keep_config PASSED
QEMU aarch64 · fw 2.3.0 12 as expected boot/time_to_shell PASSED 2.9 s peripheral tests skipped: no hardware on this target
QEMU aarch64 · fw 2.4.0 12 as expected boot/time_to_shell PASSED 2.9 s peripheral tests skipped: no hardware on this target
QEMU aarch64 · fw 2.4.1 12 as expected boot/time_to_shell PASSED 2.9 s peripheral tests skipped: no hardware on this target

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.
Saber mais

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.
Saber mais

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.
Saber mais

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.
Saber mais

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.
Saber mais

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.
Saber mais

Porque é mais difícil testar sistemas embebidos.Cinco razões.

  1. O resultado depende do hardware

    O mesmo build pode passar numa revisão da placa e falhar noutra.

  2. A temporização decide

    Uma resposta que chega tarde é um defeito, e pode chegar tarde apenas com carga.

  3. O dispositivo mostra pouco

    Muitas vezes não há um depurador à mão, só uma consola e alguns logs.

  4. 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ê.

  5. 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. 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. 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. 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. 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

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