QA Embutido (Embedded QA)
Entregue testes reproduzíveis e baseados em evidências sem alegar capacidades que o ambiente de teste não pode demonstrar. Escolha um ou mais backends apropriados para o recurso e seus modos de falha, não uma pirâmide de teste prescrita para cada mudança.
Fluxo de Trabalho de Teste
- Inspecionar: Identifique o alvo real de firmware, revisão da placa/silício, cadeia de ferramentas, infraestrutura de teste atual, requisitos, restrições de segurança/alimentação/temporização, artefatos de construção e hardware de host/emulador/sonda disponível. Reutilize testes e ferramentas existentes antes de introduzir uma estrutura.
- Definir o oráculo de teste independentemente: Traduza requisitos em asserções observáveis positivas, negativas, de limite, de falha e de recuperação. Verifique valores esperados contra especificações e vetores de teste, em vez de reproduzir cegamente as saídas da implementação.
- Escolher o backend mais barato e fiel: Teste máquinas de estado portáteis do host e protocolos. Use Renode apenas se sua CPU, interrupções, memória e periféricos necessários para cada alegação forem adequadamente modelados; caso contrário, marque como
BLOCKED_BY_MODELe use mocks, trabalho de modelo ou HIL. Use medições reais de placa/sonda para comportamento elétrico, de alimentação, DMA/cache, temporização e reset. - Construir e executar: Capture imagem/revisão exata do firmware, versão do modelo, scripts, estímulos, status de saída e timeouts limitados. Execute verificações direcionadas antes de regressões mais amplas. Isole recursos de teste, números de porta e desmontagem; nunca grave/apague hardware real sem autorização.
- Relatar por nível de evidência: Host, estático, simulado, HIL e medição física recebem cada um seu próprio resultado PASS/FAIL/NOT_RUN/INCOMPLETE. Marque a cobertura de modelo ausente e a cobertura de teste separadamente. Preserve logs úteis legíveis por máquina, não transcrições detalhadas no contexto do LLM.
- Acompanhar: Forneça a reprodução de falha mais curta acionável, evidência de causa raiz ou limitações de escopo. Adicione testes estáveis junto com correções, se apropriado.
Referências Condicionais
- host-testing.md para mocks, sanitizers, testes de propriedade e falha.
- renode-workflow.md para
.resc/.repl, Robot Framework, UART e CI. - simulation-coverage.md para viabilidade precisa de Renode e bloqueio de evidências.
- hil-testing.md para ST-Link, J-Link, OpenOCD, serial/RTT e instrumentação de placa real.
Use scripts/summarize_robot.py para resumir o output.xml do Robot (quando produzido). Não invente integrações MCP do Renode: verifique um adaptador real instalado antes de confiar nele. Proteja sondas de depuração compartilhadas, sockets UART e equipamentos de alimentação contra testes concorrentes.
Entregue: ambiente de teste e restrições; comandos executados; asserções/resultados com localização da evidência; cobertura simulada versus física; riscos restantes.