Esistono troppi gradi di libertà per comprendere "tutti" i possibili difetti. Esistono, tuttavia, tecniche per identificare e mitigare i guasti nelle prime fasi del ciclo di progettazione (vale a dire prima del rilascio esteso).
Attività in fase di progettazione (pre-hardware)
La revisione tra pari è sempre un ottimo modo per trovare i bug. Chiedi a qualcun altro di analizzare il tuo progetto ed essere pronto a difenderti dalle loro domande (o riconoscere che hanno trovato un bug e risolverlo!) Non c'è sostituto per il controllo e gli occhi freschi spesso vedono cose che mancano a quelli stanchi. Questo funziona sia per l'hardware che per il software: gli schemi possono essere rivisti facilmente come il codice sorgente.
Per l'hardware, come altri hanno già detto, una DFMEA ( Design Failure Mode and Analysis Analysis ) è una buona raccomandazione. Per ogni componente, chiediti "cosa succede se si cortocircuita" e "cosa succede se questo va in circuito aperto" e registra la tua analisi. Per i circuiti integrati, immagina anche cosa succede se i pin adiacenti sono in corto tra loro (ponti di saldatura, ecc.)
Per il firmware, è possibile utilizzare strumenti di analisi del codice statico (MISRA, lint, ecc.) Per rivelare bug nascosti nel codice. Cose come puntatori mobili e uguaglianza anziché confronto (= vs ==) sono comuni "oopsie" a cui questi strumenti non mancheranno.
Anche una teoria scritta del funzionamento è molto utile, sia per l'hardware che per il software. Una teoria dell'operazione dovrebbe descrivere a un livello abbastanza alto come funziona il sistema, come funzionano le protezioni, il sequenziamento, ecc. Mettere semplicemente a parole come dovrebbe fluire la logica spesso porta a rendersi conto che alcuni casi potrebbero essersi persi ("Uhm, waitasec, che dire di questa condizione? ")
Test a livello di prototipo
Una volta che hai l'hardware in mano, è il momento di "lavorare".
Dopo aver eseguito tutte le analisi teoriche, è fondamentale caratterizzare con precisione il funzionamento del dispositivo in base alle specifiche. Questo è comunemente indicato come test di validazione o qualifica. Tutti gli estremi consentiti devono essere testati.
Un'altra importante attività di qualificazione è l'analisi dello stress dei componenti. Ogni parte viene valutata rispetto alla sua massima tensione / corrente / temperatura, in una condizione operativa definita. Per garantire la robustezza, è necessario applicare una linea guida di declassamento appropriata (non superare l'80% della tensione, il 70% della potenza, ecc.)
Solo una volta che sai come stanno le cose in condizioni normali, puoi iniziare a speculare su anomalie esterne o multiple anomalie come stai descrivendo. Ancora una volta, il modello DFMEA (cosa succede se succede X) è un buon approccio. Pensa a qualsiasi cosa possibile che un utente possa fare all'unità: uscite brevi, collegare segnali, versare acqua su di esso: provali e vedi cosa succede.
Un test HALT (test di vita altamente accelerato ) è utile anche per questi tipi di sistemi. L'unità viene inserita in una camera ambientale ed esercitata dalla temperatura minima a massima, minimo e massimo in ingresso e in uscita, con vibrazione. Questo troverà tutti i tipi di problemi, sia elettrici che meccanici.
Questo è anche un buon momento per fare alcuni test di fuzz integrati : esercita tutti gli input ben oltre i loro range previsti, invia senza senso attraverso UART / I2C, ecc. Per trovare buchi nella logica. (Le routine I2C con bit di bit sono note per bloccare il bus, per esempio.)
I test di sciopero sono un buon modo per dimostrare robustezza. Disabilita qualsiasi funzione di protezione come sovratemperatura, sovraccarico, ecc. E applica lo stress fino a quando qualcosa non si rompe. Portare l'unità alla massima temperatura possibile fino a quando qualcosa non riesce o si verifica un comportamento irregolare. Sovraccaricare l'unità fino a quando la trasmissione non si guasta. Se alcuni parametri falliscono solo leggermente al di sopra delle condizioni peggiori, potrebbe essere necessario rivedere alcune considerazioni sulla progettazione.
Puoi anche adottare l'approccio di livello successivo e testare fisicamente alcune delle tue conclusioni di DFMEA: effettivamente esegui i pantaloncini e le aperture e i pin-pantaloncini e vedi cosa esplode.
Ulteriori letture
Il mio background è nella conversione di potenza. Abbiamo uno standard industriale chiamato IPC-9592A che è uno sforzo per standardizzare come i prodotti dovrebbero essere qualificati in termini di quali test e come dovrebbero essere fatti. Molti dei tipi di test e metodologie citati da questo documento potrebbero essere facilmente utilizzati in altre discipline elettriche.