Existem muitos graus de liberdade para entender "todas" as possíveis falhas. Existem, no entanto, técnicas para identificar e atenuar falhas no início do ciclo de design (ou seja, antes da liberação ampla).
Atividades em tempo de design (pré-hardware)
A revisão por pares é sempre uma ótima maneira de encontrar bugs. Peça a alguém que analise seu design e esteja preparado para defender-se das perguntas deles (ou reconhecer que encontrou um bug e consertá-lo!) Isso funciona para hardware e software - os esquemas podem ser revisados tão facilmente quanto o código-fonte.
Para o hardware, como outros já disseram, uma DFMEA ( Modo de falha de design e análise de efeitos ) é uma boa recomendação. Para cada componente, pergunte a si mesmo "o que acontece se isso cair" e "o que acontece se isso entrar em circuito aberto" e faça um registro de sua análise. Para os CIs, imagine também o que acontece se os pinos adjacentes estiverem em curto entre si (pontes de solda, etc.)
Para o firmware, ferramentas de análise de código estático (MISRA, fiapos etc.) podem ser usadas para revelar erros ocultos no código. Coisas como ponteiros flutuantes e igualdade em vez de comparação (= vs ==) são 'oopsies' comuns que essas ferramentas não perderão.
Uma teoria escrita da operação também é muito útil, tanto para hardware quanto para software. Uma teoria da operação deve descrever em um nível razoavelmente alto como o sistema funciona, como as proteções funcionam, seqüenciamento, etc. Simplesmente colocar em palavras como a lógica deve fluir geralmente leva a perceber que alguns casos podem ter sido perdidos ("Hum, waitasec, e essa condição? ")
Teste de nível de protótipo
Depois de colocar o hardware em mãos, é hora de "trabalhar".
Após toda a análise teórica, é crucial caracterizar com precisão como o dispositivo opera dentro das especificações. Isso geralmente é chamado de teste ou qualificação de validação. Todos os extremos permitidos precisam ser testados.
Outra atividade importante de qualificação é a análise de estresse por componentes. Cada peça é avaliada em relação à sua tensão / corrente / temperatura máxima, em uma condição operacional definida. Para garantir a robustez, deve-se aplicar uma diretriz de redução adequada (não exceda 80% da tensão, 70% da potência, etc.)
Somente depois que você souber como as coisas estão em condições normais, você poderá começar a especular sobre anormalidades externas ou múltiplas anormais que você está descrevendo. Novamente, o modelo DFMEA (o que acontece se X acontecer) é uma boa abordagem. Pense em qualquer coisa possível que um usuário possa fazer com a unidade - saídas curtas, amarre sinais juntos, derrame água nela - experimente-os e veja o que acontece.
Um teste HALT (teste de vida altamente acelerado ) também é útil para esses tipos de sistemas. A unidade é colocada em uma câmara ambiental e exercida da temperatura mínima à máxima, entrada e saída mínima e máxima, com vibração. Isso encontrará todos os tipos de problemas, tanto elétricos quanto mecânicos.
Este também é um bom momento para realizar alguns testes de fuzz incorporados - exercite todas as entradas muito além dos intervalos esperados, envie mensagens sem sentido através de UARTs / I2C, etc., para encontrar falhas na lógica. (As rotinas I2C com interrupção de bits são notórias por bloquear o barramento, por exemplo.)
O teste de conflito é uma boa maneira de demonstrar robustez. Desative todos os recursos de proteção como superaquecimento, sobrecarga etc. e aplique tensão até que algo quebre. Pegue a unidade na temperatura mais alta possível até que algo falhe ou ocorra algum comportamento irregular. Sobrecarregue a unidade até o trem de força falhar. Se algum parâmetro falhar apenas um pouco acima das condições de pior caso, é uma indicação de marginalidade e alguma consideração do projeto pode ter que ser revisada.
Você também pode adotar a abordagem de próximo nível e testar fisicamente algumas de suas conclusões do DFMEA - na verdade, faça os curtas-metragens e as aberturas e os pin-shorts e veja o que explode.
Leitura adicional
Minha formação é em conversão de energia. Temos um padrão do setor chamado IPC-9592A, que é um esforço para padronizar como os produtos devem ser qualificados em termos de quais testes e como devem ser realizados. Muitos dos tipos de testes e metodologias mencionados neste documento podem ser facilmente usados em outras disciplinas elétricas.