이 블로그는 원래 cimetrix.com에 게시되었습니다.
공장에 장비를 배치할 때가 되면 적절한 소프트웨어 테스트가 수행되었는지 여부가 매우 명확해집니다. 론 마이클이 말했듯이, "엉망진창을 자동화하면 자동화된 엉망진창을 얻게 된다." 이 개념은 GEM 지원 장비에도 적용됩니다. 자동화된 테스트를 쉽고 효율적으로 수행하도록 설계된 소프트웨어 도구들이 존재합니다. 장비의 모든 소프트웨어를 테스트하는 것이 중요하지만, 이 블로그는 GEM 인터페이스 테스트에 초점을 맞춥니다.
아래에서 보시다시피, 장비의 소프트웨어 개발 수명 주기 전반에 걸쳐 GEM 인터페이스 테스트는 매우 중요합니다.
개발 단계
이해관계자(고객)는 장비가 사내 GEM 호스트와 통합될 수 있도록 GEM 인터페이스를 갖출 필요가 있다고 전달했습니다. 고객의 서면 사양서에는 호스트와 효과적으로 상호작용하기 위해 장비가 지원해야 하는 GEM 시나리오가 포함되어 있습니다.
요청된 기능이 GEM 인터페이스에 추가됨에 따라 개발자는 각 시나리오에서 호스트의 역할을 시뮬레이션할 수 있어야 합니다. 장비가 각 요구사항을 올바르게 충족하는지 확인하기 위해 테스트는 매우 중요합니다. GEM 인터페이스가 완성된 후에는 배포 전에 E30 준수 테스트가 최우선입니다.
배포 단계
장비가 영구 설치 위치에 배치된 후, 현장 엔지니어는 장비가 공장 호스트에 연결되기 전에 장비에 접속하여 GEM 인터페이스를 테스트할 수 있는 방법이 필요합니다.
장비가 생산에 투입되면 지리적 위치나 공장 출입 제한으로 인해 장비 접근이 어려울 수 있습니다. 따라서 검증되고 규정을 준수하는 GEM 인터페이스를 갖춘 장비를 배포하면 상당한 시간과 자원 손실을 방지하고 원활한 배포를 보장할 수 있습니다.
유지 및 관리 단계
GEM 인터페이스는 모든 소프트웨어 업데이트, GEM 기능 추가 또는 인터페이스 성능에 영향을 미칠 수 있는 변경 사항 발생 후마다 테스트해야 합니다.
이 유지보수 단계에서는 적절히 테스트된 장비가 가동 중단 시간이 더 적습니다.
적절한 도구 사용하기
장비 제조업체들이 직면하는 가장 큰 어려움 중 일부는 올바른 GEM 테스트 도구를 갖추지 못했기 때문에 발생합니다.
아마도 테스트 도구를 보유하고 있겠지만, 구식이라 효과적이지 않을 수 있습니다. 테스트 포트폴리오에 구식 도구를 보유하는 것은 낡고 녹슨 렌치를 계속 사용하는 것과 같습니다. 작동하는 것처럼 보일 수 있지만, 점차 볼트를 손상시키고 있습니다. 벤저민 프랭클린이 지적했듯이, "가장 좋은 투자는 자신의 직업에 필요한 도구에 대한 투자"입니다. 따라서 개발자로서 "녹슨 렌치를 버릴" 시기를 아는 것이 중요합니다.
CimetrixEquipmentTestTM은 공장 인수 시간을 단축하고 공장 GEM 인터페이스를 강화하도록 설계된 새로운 소프트웨어 도구입니다. 또한 공장 및 장비 공급업체가 장비를 특성화하고, 장비로부터 정보를 수집하며, 장비의 SEMI 표준 준수 여부를 판단하고, 장비별 단위 테스트를 단일 인터페이스로 통합하는 데 도움을 줍니다.
EquipmentTest는 모든 장비 개발자가 도구 상자에 반드시 갖춰야 할 다목적 도구입니다.
그 이유를 이해하기 위해, 그 핵심 기능 몇 가지를 살펴보겠습니다.
메시지 탭
EquipmentTest의 메시지 탭은 개발 및 테스트 과정에서 매우 중요합니다. GEM 인터페이스의 일부가 완성됨에 따라, 원자 메시지를 전송하거나 장비의 메시지에 응답하는 기능은 필수적입니다. 메시지는 SMN(SEMI E173, SECS 메시지 표기법) 형식으로 구성됩니다. 이 XML 구문과 원시 메시지 템플릿 라이브러리를 결합하면 코드 작성 없이도 SECS 메시지를 신속하게 생성 및 전송할 수 있습니다. 이는 장비에 원격 명령을 전송하거나 GEM 경보가 호스트에 보고되도록 보장하는 등의 상황에서 특히 유용합니다.
사용자는 사용자 정의 메시지를 정의하고 이를 자신의 라이브러리에 추가할 수도 있습니다. 이러한 메시지는 해당 장비의 EquipmentTest 프로필에 저장되어 나중에 다시 사용할 수 있습니다.

GEM 규정 준수 플러그인 보고서
EquipmentTest Pro는 GEM(SEMI E30) 준수 테스트 기능을 기본 제공하는 GEM 준수 플러그인을 제공합니다. 이 플러그인은 장비에 구현된 모든 GEM 요구사항이 올바르게 수행되었는지 확인합니다. GEM 준수 플러그인은 또한 장비가 GEM 표준의 어느 부분을 올바르게 구현했는지, 그리고 개선이 필요한 부분이 어디인지 판단하는 데 사용할 수 있는 보고서를 제공합니다. 이 보고서는 이해관계자 간 의도치 않은 불일치로 인해 GEM 항목이 누락되거나 부적절하게 구현되는 흔한 상황을 완화하는 데 도움이 될 수 있습니다.
EquipmentTest는 공장별로 GEM 기능의 특정 영역이 필요하지 않은 경우 해당 기능을 "구현되지 않음"으로 보고서에 정의하도록 구성할 수 있습니다. EquipmentTest를 통해 개발자, 테스터 및 모든 이해관계자는 자신 있게 GEM 인터페이스를 배포할 수 있습니다.
테스트 실행
테스트는 개별적으로 또는 그룹으로 실행할 수 있습니다. 각 테스트에는 테스트 목적과 테스트를 구성하는 단계를 설명하는 내장 문서가 포함되어 있습니다. 출력 탭에는 테스트 결과가 표시됩니다. 테스트가 실패했을 때 진단 목적으로 SMN 로그를 사용하거나 EquipmentTest가 송수신한 메시지 내용을 확인할 수 있습니다.
사용자 정의 테스트
모든 장비는 고유합니다. 또한 특정 장비의 고유한 특징은 경쟁 제품과 차별화되는 요소이며, 따라서 그 가치에 크게 기여합니다. 이러한 이유로 모든 제조 장비의 모든 동작 시나리오를 테스트하는 것은 불가능합니다. 혁신적인 장비는 필연적으로 맞춤형 테스트가 필요할 것입니다. 또한 특정 공장의 요구 사항을 충족시키기 위해 맞춤형 테스트가 필요할 수도 있습니다.
사용자 정의 테스트 지원은 EquipmentTest의 가장 가치 있는 기능 중 하나입니다. 제한적인 스크립팅 언어를 사용하는 기존 제품과 달리, EquipmentTest는 표준 .NET 프로그래밍 언어로 플러그인이라 불리는 사용자 정의 테스트를 생성할 수 있게 합니다. 확장 가능한 프로그래밍 언어로 호스트 측 테스트를 작성하고 EquipmentTest의 SECS/GEM 소프트웨어 라이브러리에 접근할 수 있는 능력은 무한한 테스트 가능성을 제공합니다. 이로 인해 사용자 정의 테스트에서 SECS 메시지를 송수신하는 것이 매우 간단해집니다(아래 예시 참조).
개발자가 테스트를 생성하면 해당 프로젝트의 동적 링크 라이브러리(.dll) 파일을 테스트 프로젝트에 참여하는 다른 관계자들에게 배포할 수 있습니다. 이를 통해 엔지니어, 기술자 및 기타 이해관계자들은 코드를 작성하지 않고도 사용자 정의 플러그인을 로드하여 장비를 테스트할 수 있습니다.
추적 보고서 테스트 예시
이 플러그인은 교육 과정에서 제작되었으며 플러그인 개발의 기본을 보여줍니다. 사용자 정의 플러그인을 로드하면 Cimetrix에서 제공하는 플러그인과 동일한 외관과 느낌을 갖습니다.
문서화
UI에 표시되는 문서는 다음 메서드 데코레이터에서 채워집니다.

매개변수
매개변수는 EquipmentTest 사용자가 변경할 수 있으며, 사용자 정의 데이터 유형을 포함하여 어떤 유형이든 가능합니다.

테스트 로직
테스트가 실행되는 동안 코드에서 콘솔에 출력되는 모든 내용이 출력 창에 표시됩니다.

주장
어설션은 테스트가 실제로 평가하는 대상입니다. 이 예시에서는 트레이스의 모든 샘플이 장비에서 전송되었음을 어설션합니다. 어설션 중 하나라도 실패하면 테스트가 UI에서 실패로 표시됩니다. 이 경우 테스트 실패 시 UI에 "1개 이상의 샘플이 완료되지 않았습니다"라는 메시지가 나타납니다.
SMN 로그
SMN 로그는 테스트 중 전송된 모든 메시지를 포함합니다. 테스트 출력과 함께 사용하면 테스트 실패의 근본 원인을 진단하는 데 매우 유용할 수 있습니다.
결론
Cimetrix EquipmentTest 소프트웨어는 자동화된 테스트를 간편하고 효율적으로 수행하도록 설계되었습니다. 낡은 도구 대신 이 반짝이는 새 도구를 사용하면 고품질 GEM 인터페이스 배포가 훨씬 쉬워지며, 신규 또는 기존 GEM 인터페이스가 완전히 E30 규격을 준수하도록 보장하는 데 도움이 됩니다.