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.

Registo da execução 321Exemplo
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.

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