Il y a beaucoup trop de degrés de liberté pour comprendre "tous" les défauts possibles. Il existe cependant des techniques pour identifier et atténuer les défauts au début du cycle de conception (c'est-à-dire avant une large diffusion).
Activités au moment de la conception (pré-matériel)
L'examen par les pairs est toujours un excellent moyen de trouver des bogues. Demandez à quelqu'un d'autre d'analyser votre conception et préparez-vous à vous défendre contre ses questions (ou reconnaissez qu'il a trouvé un bug et corrigez-le!) Cela fonctionne pour le matériel et le logiciel - les schémas peuvent être revus aussi facilement que le code source.
Pour le matériel, comme d'autres l'ont dit, un DFMEA ( Design Failure Mode and Effects Analysis ) est une bonne recommandation. Pour chaque composant, demandez-vous «ce qui se passe si cela court-circuite» et «ce qui se passe si cela passe en circuit ouvert», et enregistrez votre analyse. Pour les CI, imaginez également ce qui se passe si des broches adjacentes sont court-circuitées (ponts de soudure, etc.)
Pour le firmware, des outils d' analyse de code statique (MISRA, lint, etc.) peuvent être utilisés pour révéler des bogues cachés dans le code. Des choses comme les pointeurs flottants et l'égalité au lieu de comparer (= vs ==) sont des «oopsies» courantes que ces outils ne manqueront pas.
Une théorie écrite du fonctionnement est également très utile, tant pour le matériel que pour le logiciel. Une théorie de fonctionnement devrait décrire à un niveau assez élevé le fonctionnement du système, le fonctionnement des protections, le séquençage, etc. La simple mise en mots de la façon dont la logique devrait circuler conduit souvent à se rendre compte que certains cas peuvent avoir été manqués ("Um, waitasec, qu'en est-il de cette condition? ")
Test au niveau du prototype
Une fois le matériel en main, il est temps de "travailler".
Une fois toutes les analyses théoriques effectuées, il est essentiel de caractériser avec précision le fonctionnement de l'appareil dans le cadre des spécifications. Ceci est communément appelé test de validation ou qualification. Tous les extrêmes autorisés doivent être testés.
Une autre activité de qualification importante est l'analyse des contraintes des composants. Chaque pièce est évaluée par rapport à sa tension / courant / température maximale, dans une condition de fonctionnement définie. Afin d'assurer la robustesse, une directive de déclassement appropriée doit être appliquée (ne pas dépasser 80% de la tension, 70% de la puissance, etc.)
Ce n'est qu'une fois que vous savez comment les choses se passent dans des conditions normales que vous pouvez commencer à spéculer sur des anomalies externes ou de multiples anomalies comme vous le décrivez. Encore une fois, le modèle DFMEA (ce qui se passe si X se produit) est une bonne approche. Pensez à tout ce qu'un utilisateur pourrait faire à l'appareil - sorties courtes, relier les signaux ensemble, renverser de l'eau dessus - essayez-les et voyez ce qui se passe.
Un test HALT (test de vie hautement accéléré ) est également utile pour ces types de systèmes. L'unité est placée dans une chambre environnementale et exercée de la température minimale à maximale, l'entrée et la sortie minimale et maximale, avec vibration. Cela trouvera toutes sortes de problèmes, à la fois électriques et mécaniques.
C'est aussi le bon moment pour faire des tests de fuzz intégrés - exercer toutes les entrées bien au-delà de leurs plages attendues, envoyer du charabia via les UART / I2C, etc. pour trouver des trous dans la logique. (Les routines I2C binaires sont connues pour verrouiller le bus, par exemple.)
Les tests de résistance sont un bon moyen de démontrer la robustesse. Désactivez toutes les fonctions de protection comme la surchauffe, la surcharge, etc. et appliquez une tension jusqu'à ce que quelque chose se casse. Montez l'unité à une température aussi élevée que possible jusqu'à ce que quelque chose tombe en panne ou qu'un comportement erratique se produise. Surchargez l'unité jusqu'à ce que le groupe motopropulseur tombe en panne. Si certains paramètres échouent légèrement au-dessus des conditions les plus défavorables, il peut être nécessaire de réexaminer une indication de marginalité et une certaine considération de conception.
Vous pouvez également adopter l'approche de niveau supérieur et tester physiquement certaines de vos conclusions DFMEA - faites en fait les shorts et les ouvertures et les pin-shorts et voyez ce qui explose.
Lectures complémentaires
Mon expérience est dans la conversion de puissance. Nous avons une norme industrielle appelée IPC-9592A qui est un effort pour normaliser la façon dont les produits doivent être qualifiés en termes de quels tests et comment ils doivent être effectués. De nombreux types de tests et de méthodologies mentionnés dans ce document pourraient facilement être utilisés dans d'autres disciplines électriques.