Software crítico para a segurança

Testes e investigação
de software crítico para a segurança

Para sistemas embebidos e complexos em que as falhas têm de ser explicáveis, reproduzíveis e rastreáveis.

O Midair liga a análise estática, as execuções de teste controladas e as evidências de execução. Assim, pode investigar o comportamento do software crítico num único contexto.

As falhas críticas raramente se explicam por um único sinal.

Em sistemas críticos para a segurança (safety), um defeito pode depender do código-fonte, da temporização, do estado do hardware, da configuração ou de uma sequência específica de eventos.

Descobrir que algo falhou é só o começo. O mais difícil é perceber exatamente porque aconteceu e provar que, depois da alteração, o sistema se comporta de outra forma.

Riscos no código

Um comportamento perigoso pode ter origem em caminhos de execução ou em regras próprias do projeto, antes de o software correr.

Falhas que dependem do ambiente

Alguns defeitos só aparecem em hardware, configurações ou condições de funcionamento específicas.

As sequências raras contam

Uma falha pode exigir uma ordem específica de eventos, difícil de recriar à mão.

As evidências têm de sobreviver à correção

Um build corrigido só é útil se o puder comparar com as condições e as evidências da falha original.

Midair

Crie um rasto de evidências ao longo de toda a verificação.

Antes da execução

Analisar comportamentos de risco

O Visao examina caminhos de execução e regras próprias do projeto para identificar defeitos e comportamentos perigosos antes de o software correr.

Durante a verificação

Executar cenários controlados

O TS Factory coordena testes repetíveis entre dispositivos e máquinas e guarda o ambiente de cada execução.

Durante a execução

Captar evidências de execução

O Delta recolhe registos, eventos do sistema e dados de recursos enquanto o sistema funciona.

O Midair mantém ligadas as ocorrências da análise, as condições de teste e as evidências de execução. Assim, pode rever a falha original e a alteração verificada no mesmo contexto.

O que a verificação de software crítico para a segurança pode cobrir

Caminhos de código críticos

Analise o comportamento nos pontos em que uma execução incorreta pode afetar o resto do sistema.

Comportamento dependente do hardware

Teste software cujo resultado depende de dispositivos, controladores, interfaces ou do estado físico.

Cenários de falha e recuperação

Reproduza o comportamento durante falhas, reinícios, funcionamento degradado ou sequências de recuperação.

Verificação de versões e de regressões

Compare o comportamento crítico antes e depois de alterações no software ou na configuração.

Comportamento de sistemas distribuídos

Coordene cenários em que vários dispositivos, hosts ou serviços influenciam o mesmo resultado.

Condições de longa duração

Investigue falhas que só aparecem depois de operações repetidas ou de uma execução prolongada.

Rastreabilidade é manter as evidências técnicas ligadas.

Uma investigação em software crítico para a segurança atravessa muitas vezes várias camadas do sistema.

O Midair mantém ligado o contexto técnico de cada resultado, incluindo:

•

Ocorrência no código

Que comportamento do código ou que regra deu origem à investigação.

•

Versão do software

Que build estava em execução.

•

Configuração do sistema

Que dispositivo, hardware ou ambiente produziu o resultado.

•

Execução de teste

Que cenário e que entradas foram executados.

•

Evidências de execução

O que o sistema fez de facto enquanto corria.

•

Execução de verificação

Se o mesmo cenário mudou depois da correção.

Verificar é mais do que repetir um teste.

Quando as consequências de uma falha são graves, um resultado verde sem contexto é uma evidência fraca.

A questão importante é saber se é possível reconstruir as mesmas condições relevantes. E se, nessas condições, o sistema alterado se comporta de outra forma.

O Midair foi desenhado para guardar esse contexto na análise, nos testes e na investigação em execução. Assim, cada resultado fica ligado aos outros.

Onde isto é útil

Sistemas de controlo embebidos

Software cujo comportamento depende do estado do hardware, da temporização e das interfaces físicas.

Sistemas industriais

Controladores e ambientes distribuídos em que um comportamento incorreto pode interromper ou danificar as operações.

Infraestrutura de rede

Firmware e software de sistema em que as falhas podem afetar muitos dispositivos ou serviços ligados.

Dispositivos de alta fiabilidade

Produtos em que um comportamento inesperado do software pode ter um impacto sério na operação ou nos utilizadores.

Ambientes regulados complexos

Projetos que exigem uma disciplina de verificação mais rigorosa e evidências de engenharia documentadas.

Fluxos críticos para a segurança e normas do setor

O Midair apoia a verificação de engenharia. Por si só, não certifica um sistema.

Conforme o setor e o sistema, o desenvolvimento crítico para a segurança pode seguir normas como a ISO 26262, a IEC 61508, a IEC 62304 ou a DO-178C.

Essas normas definem requisitos mais amplos de ciclo de vida, processo, documentação e garantia. Uma plataforma de testes ou de análise, sozinha, não torna um sistema conforme nem certificado.

O Midair pode apoiar o fluxo de verificação técnica ao manter ligadas as ocorrências da análise, as execuções de teste, as configurações e as evidências de execução.

A análise estática conta mais quando as regras genéricas não chegam.

O código crítico para a segurança tem muitas vezes APIs, máquinas de estados e sequências de operações próprias do projeto. As regras genéricas de defeitos não as entendem.

O Visao suporta detetores personalizados e análise orientada ao comportamento. Assim, pode transformar as restrições próprias do projeto em verificações repetíveis. O estudo de análise estática da Interpretica situa o Visao em torno de caminhos de execução, estados do programa e detetores personalizados. Os relatórios gerais de conformidade ficam fora desse foco.

Comece por uma falha crítica ou um cenário de verificação.

Traga uma base de código, um ambiente-alvo e um comportamento difícil de explicar ou de verificar com confiança.

Ligue no Midair a análise, a execução de teste e as evidências de execução relevantes. Depois, avalie todo o fluxo de investigação num piloto de âmbito limitado.