Testes de software para sistemas complexos
O Midair testa software que corre em dispositivos, em redes e em muitas máquinas ao mesmo tempo. Cada execução guarda a sua configuração, os logs e os veredictos.
Escolha o tipo de sistema que desenvolve. A página mostra os testes que importam para ele e o que o Midair regista.
O que são testes de software para sistemas complexos.Uma falha, muitas condições.
Os testes de software verificam se um sistema faz o que a especificação diz, nas condições que vai encontrar em uso.
Um sistema complexo corre em hardware que não controla por completo, em vários nós, com limites de tempo e de memória. Um defeito pode depender do dispositivo, da carga ou da ordem dos eventos.
Por isso, uma execução que passa prova menos do que parece. Um teste útil regista o build, as máquinas e a configuração junto ao veredicto, e pode voltar a correr nas mesmas condições.
O nosso artigo trata os desafios e as estratégias com mais detalhe: Testes de software para sistemas complexos.
Escolha o seu sistema.Veja o plano para ele.
Os níveis de teste, as ferramentas e o registo mudam com o sistema. Escolha o mais parecido com o seu.
Dispositivo embebido
Níveis de teste que importam
- Análise de código
- Unitário
- Emulador ou VM
- Hardware real
- Várias máquinas
Carga e duração- Unidades instaladas
O que o Midair executa
- O Visao verifica C, C++ e assembly com a sua toolchain cruzada, antes de o código chegar a uma placa.
- Uma máquina ao lado da placa grava-a, liga e desliga a alimentação e vigia a consola série durante cada teste.
- O Delta inspeciona offline o sistema de ficheiros raiz do firmware, ou o dispositivo em execução, contra uma linha de base.
O que a execução regista
- Os logs da consola e do kernel, com linhas como Kernel panic assinaladas.
- Os commits do firmware, da suite e do ambiente de teste.
- Os veredictos esperado e obtido de cada teste.
Produto de rede
Níveis de teste que importam
- Análise de código
Unitário- Emulador ou VM
- Hardware real
- Várias máquinas
- Carga e duração
- Unidades instaladas
O que o Midair executa
- O Test Environment coordena agentes em várias máquinas na mesma execução: o dispositivo, os seus pares e as fontes de tráfego.
- Um teste de Wi-Fi liga-se à rede da bancada, obtém um endereço por DHCP e falha se perder algum pacote.
- O Delta lista as portas abertas, as rotas e as interfaces do dispositivo e compara-as com uma linha de base.
O que a execução regista
- As definições da bancada nessa execução, lidas de variáveis de ambiente.
- Saídas como os tempos de ida e volta, junto ao teste que as produziu.
- As portas e os serviços que apareceram ou desapareceram desde a linha de base.
Serviço distribuído
Níveis de teste que importam
- Análise de código
- Unitário
- Emulador ou VM
Hardware real- Várias máquinas
- Carga e duração
Unidades instaladas
O que o Midair executa
- Uma execução arranca agentes em muitas máquinas e comanda-os pela ordem de que o cenário precisa.
- As execuções planeadas repetem o mesmo cenário à noite ou várias vezes por dia.
- Um assistente de IA ligado por MCP lança execuções e lê as falhas e as páginas de log.
O que a execução regista
- Uma árvore de resultados para todas as máquinas, com a lista de falhas no topo.
- Páginas de log que abre por número de registo, por hora ou por teste.
- Um registo novo em cada arranque. O Midair nunca escreve por cima de uma execução.
Software de servidor ou desktop
Níveis de teste que importam
- Análise de código
- Unitário
- Emulador ou VM
Hardware real- Várias máquinas
- Carga e duração
Unidades instaladas
O que o Midair executa
- O Visao analisa código em dezanove linguagens, incluindo C, C++ e Rust, e pode fazer falhar o build quando há ocorrências novas.
- Os agentes de teste correm em máquinas Linux e Windows, por isso uma suite cobre os dois.
- O Delta verifica o hardening dos binários instalados, como stack canaries, PIE e RELRO.
O que a execução regista
- As ocorrências no código e as falhas dos testes numa só lista de problemas.
- Os parâmetros e as linhas de erro de cada teste que falhou.
- As ocorrências em SARIF, JSON ou GitLab SAST para as suas outras ferramentas.
Anatomia de um registo de execução.Sete partes, um registo.
Cada arranque de uma execução de testes cria um registo novo. Escolha uma parte para ver o que guarda.
Configuração
Os parâmetros da execução e as definições da bancada com que ela arrancou. Uma alteração posterior ao modelo não os muda.
- Porque importa
- Distingue duas execuções pelas definições, não pela memória.
Commits fixados
A suite de testes, o código em teste e o ambiente de teste, cada um fixado num branch, numa tag ou num commit.
- Porque importa
- Pode executar exatamente o mesmo meses depois.
Árvore de resultados
Os pacotes e as sessões são ramos, os testes são folhas. As saídas ficam junto ao teste que as produziu.
- Porque importa
- Uma falha fica no seu lugar na suite, com a sua própria saída.
Veredictos esperado e obtido
Cada teste tem um veredicto esperado no trc.xml. Um teste passa quando o veredicto obtido coincide com ele.
- Porque importa
- Uma falha conhecida não esconde uma falha nova.
Logs
O log do TE em bruto, convertido em texto. O Midair serve-o por páginas: por número de registo, por hora ou por nó da árvore. Uma cronologia e uma revisão por IA são opcionais.
- Porque importa
- Lê o minuto à volta da falha, não o log inteiro.
Evidências do dispositivo
A saída da consola, o log do kernel e o relatório do Delta. O relatório mostra o que apareceu e o que desapareceu desde a linha de base.
- Porque importa
- Vê o que o dispositivo fez, ao lado do que o teste viu.
Ocorrências
As ocorrências do Visao no mesmo commit do código, numa só lista de problemas com as falhas dos testes.
- Porque importa
- As ocorrências no código e os resultados da execução descrevem o mesmo build.
Perguntas.Respostas curtas.
O que são testes de software para sistemas complexos?
São testes de software que depende de hardware, de uma rede ou de muitas máquinas. Cada resultado é lido com as condições que o produziram: o build, os dispositivos, a configuração e a temporização.
Em que diferem de testar uma aplicação?
Uma aplicação testa-se sobretudo por entradas e saídas. Num sistema complexo, o teste também tem de preparar as máquinas, os dispositivos e a rede, e de os registar, porque o resultado depende deles.
Que sistemas testa o Midair?
Dispositivos embebidos, produtos de rede, serviços distribuídos e software de servidor ou desktop. Os agentes de teste correm em máquinas Linux e Windows. O dispositivo em teste não precisa de agente: uma máquina ao lado chega a ele.
Podemos começar 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.
O Midair encaixa na nossa CI?
Sim. As execuções começam a partir da sua CI, por exemplo com o plugin para Jenkins, ou segundo um horário. Um assistente de IA pode lançar execuções e ler falhas através de MCP.
O Midair certifica o nosso software?
Não. O Midair produz evidências: registos de execução, veredictos e ocorrências. As ferramentas do Test Environment transformam uma suite e os seus resultados num relatório HTML ou PDF para a sua própria revisão ou auditoria.
Comece por um sistema e uma suite.Junte o resto quando funcionar.
Compare os planos na página de preços. Os preços são mensais, em euros.
Entrar na lista de espera