Testes e investigação de software crítico para a segurança
O Midair guarda num só lugar as evidências de uma alteração: o requisito que ela verifica, as ocorrências no código, as execuções de teste com veredictos esperados e os logs do dispositivo.
O seu processo de segurança decide o que conta como evidência. O Midair regista-a para que um revisor a possa rastrear.
- Requisito
- REQ-142 · sensor/out_of_range
- Código
- fw c07e5d2 · suite 9b1e04f (fixada)
- Análise estática
- visao.sarif · 0 ocorrências novas
- Testes
- 3 de 3 como esperado
- Consola
- guardada · nenhum padrão vigiado
- Delta
- 0 diferenças da linha de base
- Relatório
- results.html · results.pdf
Guardado como correu. Nunca é reescrito.
O que é software crítico para a segurança.E o que a sua verificação tem de mostrar.
Software crítico para a segurança é software cuja falha pode ferir pessoas, danificar equipamento ou prejudicar o ambiente. Controladores de travões, software de voo, sinalização ferroviária e bombas de infusão são exemplos.
As normas de segurança atribuem a cada função um nível de integridade e definem o trabalho de verificação para esse nível. Os níveis mais altos pedem mais métodos, mais independência e mais evidências.
Essas evidências têm de ser rastreáveis desde o requisito até ao código, aos testes e aos resultados. Têm também de ser repetíveis: outro engenheiro corre o mesmo teste na mesma configuração e obtém o mesmo veredicto.
O rasto de evidências de uma alteração.Do requisito à revisão.
Siga uma alteração de exemplo ao longo de cinco etapas. Escolha uma etapa para ver o que acontece e o que o Midair regista.
AlteraçãoUm valor do sensor fora do intervalo tem de pôr o controlador no seu estado seguro.Exemplo
01Requisito
O que acontece
O requisito diz que um valor do sensor fora de 0 a 4095 põe o controlador no estado seguro em menos de 50 ms. Um engenheiro escreve um teste com três valores.
package.xml · sensor/out_of_range<req id="REQ-142"/> param value = 4095, 4096, 65535 trc.xmlexpect PASSED for each value
O que o Midair regista
- O teste indica REQ-142 na descrição da suite, por isso a ligação fica no repositório da suite, com o seu histórico.
- O veredicto esperado de cada valor, escrito na suite antes da primeira execução.
- Os requisitos ficam na sua ferramenta de requisitos. O Midair não os gere.
02Análise do código
O que acontece
O Visao analisa a alteração com a toolchain cruzada do projeto e uma linha de base do ramo principal. Reporta uma ocorrência nova no código que converte o valor bruto do sensor.
visao · arm-none-eabi-gcc · baseline main.sarifsensor.c:88:14 error arithm/integer/overflow 1 new finding · visao.sarif
O que o Midair regista
- Cada ocorrência com a regra, a severidade, o ficheiro, a linha e a linha de código.
- O relatório SARIF da análise e a linha de base com que foi comparado.
- Com o perfil MISRA C:2012, um resumo de conformidade que indica as regras que não verificou.
03Execuções de teste
O que acontece
A suite corre na bancada. A execução 318 falha para o valor 65535. Depois da alteração ao código, a execução 321 dá o veredicto esperado para os três valores.
run 318 · fw a41f2c9 · bench-2value=4095 PASSED expected PASSED value=4096 PASSED expected PASSED value=65535 FAILED expected PASSED run 321 · fw c07e5d2 · bench-23 of 3 as expected
O que o Midair regista
- Cada arranque como um novo registo, com a sua configuração. O Midair nunca escreve por cima de uma execução.
- Para cada teste: o veredicto obtido ao lado do esperado, os parâmetros, as linhas de erro e as mensagens impressas.
- Os commits exatos da suite e do código em teste, fixados no
builder.conf.lock.
04Evidências de execução
O que acontece
Em cada execução, uma máquina ao lado do controlador guarda a consola série. No fim, o Delta compara o dispositivo com a sua linha de base.
console · run 318sensor: raw=65535 scaled=-3 state: RUN console · run 321sensor: raw=65535 out of range state: SAFE after 12 ms delta · baseline golden.json0 differences · exit 0
O que o Midair regista
- A consola série no log da execução. O Test Environment procura nela padrões como um kernel panic e avisa o teste em curso.
- As diferenças do Delta em relação à linha de base: processos, portas, ficheiros e binários, em JSON com um código de saída.
05Revisão
O que acontece
Um revisor abre a execução 321 no Midair e lê a árvore de resultados, a lista de falhas e o log de cada teste. A decisão da revisão fica no seu próprio processo.
te-doc report --log run321.xml --name resultsresults.html results.pdf sensor/out_of_range · 3 of 3 as expected
O que o Midair regista
- Um relatório de resultados da execução e um catálogo da suite, em HTML e PDF, feitos pelo te-doc.
- A execução tal como aconteceu. A revisão lê o mesmo registo que o teste escreveu.
- Se usar o Bublik, a execução publicada ao lado das anteriores.
Normas e evidências.O que o Midair pode alimentar, e o que não faz.
Cada norma define o seu ciclo de vida, os níveis de integridade e as evidências. Escolha uma para ver que evidências de verificação pede e que registos do Midair as podem alimentar.
ISO 26262 Veículos rodoviários
- Pede
- A ISO 26262 trata da segurança funcional dos sistemas elétricos e eletrónicos dos veículos rodoviários. Para o software, pede verificação e testes ao nível da unidade, da integração e do software, com métodos escolhidos pelo ASIL, e resultados registados. Uma parte separada trata da confiança nas ferramentas de software.
- Registos do Midair que a podem alimentar
- Execuções de teste com veredictos esperados e obtidos, configurações fixadas, ocorrências da análise estática com o ID da regra e resumos MISRA C:2012.
IEC 61508 Sistemas de segurança programáveis
- Pede
- A IEC 61508 é a norma geral de segurança funcional em que várias normas setoriais se baseiam. A parte de software pede verificação em cada fase do ciclo de vida, com técnicas recomendadas por SIL. Também classifica as ferramentas usadas para construir e verificar o software.
- Registos do Midair que a podem alimentar
- Ocorrências da análise estática, registos de teste com a sua configuração e logs da consola do alvo.
DO-178C Software aeronáutico
- Pede
- A DO-178C define objetivos de verificação para cada nível de software, de A a E. Pede revisões, análises e testes dos requisitos, do desenho e do código, análise de cobertura estrutural e registos dos resultados. A qualificação de ferramentas segue a DO-330.
- Registos do Midair que a podem alimentar
- Resultados de testes baseados em requisitos, ligados aos IDs de requisito na suite, com commits fixados. A cobertura estrutural precisa de outra ferramenta.
EN 50128 Controlo e proteção ferroviária
- Pede
- A EN 50128 define níveis de integridade de segurança do software de SIL 0 a SIL 4. Pede planos de verificação e de teste, relatórios de teste e mais independência entre funções nos níveis mais altos. A EN 50716 (2023) substitui-a, e muitos projetos em curso ainda a usam.
- Registos do Midair que a podem alimentar
- Relatórios de teste feitos pelo te-doc, registos de execução que ninguém reescreve e relatórios da análise estática.
IEC 62304 Software de dispositivos médicos
- Pede
- A IEC 62304 divide o software nas classes de segurança A, B e C. Pede verificação das unidades, testes de integração e de sistema com resultados registados, e um processo de resolução de problemas. A classe C é a que pede mais.
- Registos do Midair que a podem alimentar
- Execuções de testes de integração e de sistema com veredictos registados, a configuração de cada execução e uma lista de falhas para os seus relatórios de problemas.
O Midair não certifica nem qualifica nada.
O Midair não é uma ferramenta qualificada em nenhuma destas normas, e o Visao não tem kit de qualificação. O seu plano de segurança e o seu avaliador decidem o que conta como evidência. O Midair guarda registos técnicos que pode levar para esse processo.
Páginas relacionadas.Capacidades e pesquisa.
Perguntas.Respostas curtas.
O que é software crítico para a segurança?
Software crítico para a segurança é software cuja falha pode ferir pessoas, danificar equipamento ou prejudicar o ambiente. Normas como a ISO 26262, a IEC 61508, a DO-178C, a EN 50128 e a IEC 62304 definem como se desenvolve e verifica.
O Midair certifica software ou conta como ferramenta qualificada?
Não. O Midair não certifica nem qualifica nada, e o Visao não tem kit de qualificação. O Midair regista evidências de verificação. O seu processo de segurança e o seu avaliador decidem como as usar.
Como se liga um teste a um requisito?
Um teste do Test Environment pode indicar IDs de requisito na descrição da suite. Os requisitos ficam na sua ferramenta de requisitos.
Conseguimos mostrar que uma execução não foi alterada depois?
O Midair guarda cada arranque como um novo registo, com a sua configuração, e nunca escreve por cima de uma execução. O builder.conf.lock fixa os commits exatos da suite e do código em teste.
Suportar MISRA é o mesmo que ter certificação de segurança funcional?
Não. A MISRA é um conjunto de regras de codificação. As normas de segurança funcional pedem um ciclo de vida, um processo e evidências completos. Uma ferramenta pode verificar regras MISRA sem lhe dar material de qualificação.
As evidências podem ficar nos nossos próprios servidores?
Sim. O plano Business inclui instâncias do Midair alojadas por si. O Visao não tem cliente de rede e não envia nada de uma execução.
Comece por um requisito.Depois siga o rasto das evidências.
Compare os planos na página de preços. Os preços são mensais, em euros.
Iniciar o seu piloto