가능한 모든 결함을 "모든"이해하기에는 너무 많은 자유도가 있습니다. 그러나 설계주기 초기에 (즉, 광범위한 릴리스 전에) 결함을 식별하고 완화하는 기술이 있습니다.
디자인 타임 활동 (사전 하드웨어)
동료 검토는 항상 버그를 찾는 좋은 방법입니다. 다른 사람이 당신의 디자인을 분석하고 그들의 질문에 대해 방어 할 준비를하도록하십시오 (또는 그들이 버그를 발견했다는 것을 인정하고 고치십시오). 이것은 하드웨어와 소프트웨어 모두에서 작동합니다. 회로도는 소스 코드처럼 쉽게 검토 할 수 있습니다.
다른 사람들이 말했듯이 하드웨어의 경우 DFMEA ( Design Failure Mode and Effects Analysis )가 권장됩니다. 각 구성 요소에 대해 "단락시 어떻게되는지"와 "개방 회로로 넘어 가면 어떻게되는지"를 스스로 분석하고 기록을 작성하십시오. IC의 경우 인접한 핀이 서로 단락되면 (솔더 브리지 등) 어떻게 될지 상상해보십시오.
펌웨어의 경우 정적 코드 분석 도구 (MISRA, 보푸라기 등)를 사용하여 코드에 숨겨진 버그를 표시 할 수 있습니다. 부동 포인터 및 비교 대신 동등 (= vs ==)과 같은 것은 이러한 도구가 놓칠 수없는 일반적인 'oopsies'입니다.
서면 작동 이론은 하드웨어와 소프트웨어 모두에 매우 유용합니다. 작동 이론은 시스템 작동 방식, 보호 작동 방식, 시퀀싱 등을 상당히 높은 수준으로 설명해야합니다. 로직이 어떻게 흘러야 하는지를 간단히 말하면 일부 사례가 누락 될 수 있다는 사실을 깨닫게됩니다 ( "음, waitasec,이 상태는 어떻습니까? ")
프로토 타입 레벨 테스트
하드웨어를 손에 넣은 후에는 "일"할 차례입니다.
모든 이론적 분석이 완료된 후 장치가 사양 내에서 작동하는 방식을 정확하게 특성화하는 것이 중요합니다 . 이것을 일반적으로 검증 테스트 또는 검증이라고합니다. 허용 가능한 모든 극단을 테스트해야합니다.
또 다른 중요한 자격 활동은 구성 요소 스트레스 분석입니다. 모든 부품은 정의 된 작동 조건에서 최대 전압 / 전류 / 온도에 대해 평가됩니다. 견고성을 보장하기 위해 적절한 정격 감소 지침을 적용해야합니다 (전압의 80 %, 전력의 70 % 등을 초과하지 않아야 함).
상황이 어떻게 정상 상태에 있는지 알고 나면 외부 이상이나 설명하는 여러 이상에 대해 추측하기 시작할 수 있습니다. 다시, DFMEA 모델 (X가 발생하면 어떻게되는지)이 좋은 접근법입니다. 짧은 출력, 신호 묶음, 기기에 물을 엎 지르는 등 사용자가 기기에서 할 수있는 일을 생각해보십시오.
HALT 테스트 (고속 수명 테스트 )도 이러한 유형의 시스템에 유용합니다. 이 장치는 환경 챔버에 넣고 진동과 함께 최소에서 최대 온도, 최소 및 최대 입력 및 출력으로 작동합니다. 전기 및 기계의 모든 종류의 문제를 찾을 수 있습니다.
또한 임베디드 퍼즈 테스트 를 수행하기에 좋은시기 입니다. 모든 입력을 예상 범위를 넘어서 연습하고 UART / I2C 등을 통해 횡설수설을 보내 로직의 구멍을 찾으십시오. (예를 들어 비트 뱅킹 I2C 루틴은 버스를 잠그는 것으로 유명합니다.)
투쟁 테스트는 견고성을 입증하는 좋은 방법입니다. 과열, 과부하 등과 같은 보호 기능을 비활성화하고 고장이 날 때까지 스트레스를가하십시오. 장치가 고장 나거나 불규칙한 동작이 발생할 때까지 장치를 고온으로 올리십시오. 파워 트레인이 고장날 때까지 장치에 과부하를가하십시오. 일부 매개 변수가 최악의 조건보다 약간만 실패하면 한계의 표시와 일부 설계 고려 사항을 다시 검토해야 할 수도 있습니다.
또한 다음 단계의 접근 방식을 취하고 일부 DFMEA 결론을 물리적으로 테스트 할 수 있습니다. 실제로 반바지와 열기 및 핀 반바지를 수행하고 어떤 일이 발생했는지 확인하십시오.
추가 자료
내 배경은 전력 변환에 있습니다. 우리는 IPC-9592A 라는 산업 표준을 가지고 있는데, 이는 어떤 테스트와 수행 방식에 따라 제품이 어떻게 자격을 갖추어야 하는지를 표준화하기위한 노력입니다. 이 문서에서 언급 한 여러 유형의 테스트 및 방법은 다른 전기 분야에서 쉽게 사용할 수 있습니다.