병렬 테스팅의 장점

개요

테스트 측정 소프트웨어 개발자 가이드에 오신 것을 환영합니다. 본 가이드는 적은 비용으로 테스트 생산성을 증대하며 향후 프로젝트로 확장가능한 시스템을 개발하기 위한 여러가지 기술백서로 구성되어 있습니다. 본 기술백서에서는 병렬 테스팅의 장점에 대하여 설명합니다.

다른 토픽을 보시려면 테스트 관리 소프트웨어 개발자 가이드를 방문하십시오.

내용

테스트 엔지니어라면 병렬 테스팅으로 테스트 시스템 성능을 향상하기 위한 방법을 모색해 본 경험이 있을 것입니다. 최신 상용 테스트 관리 소프트웨어 도구는 병렬 테스트 시스템 실행을 간소화합니다. 본 도구는 테스트 처리량을 증대하며 테스트 시스템 비용을 낮춥니다.

일반적으로 병렬 테스팅은 여러 제품 또는 서브 컴포넌트를 동시 테스팅합니다. 병렬 테스트 스테이션은 일반적으로 여러 테스트 소켓에서 테스트 장비를 공유하지만, 일부 경우 각 UUT(unit under test)에 대한 개별 하드웨어 세트를 가질 수도 있습니다. 병렬이 아닌 테스트 시스템의 대부분은 한 가지 제품 또는 서브 컴포넌트만을 테스트하기 때문에, 고가의 테스트 하드웨어가 테스트 시간의 절반 이상의 시간동안 작동하지 않는 결과가 초래됩니다. 따라서, 병렬 테스팅을 수행하면 추가의 테스트 시스템을 복제하거나 구성하는 데 비용을 들이지 않고 테스트 시스템 제조 처리량을 증대할 수 있습니다.

다음 섹션에서는 병렬 테스팅이 테스트 비용을 줄이는 방법과 각 테스트 시스템에 병렬 테스팅을 실행하기 위한 다양한 방법에 대해 살펴보겠습니다. 병렬 테스팅의 개선으로 인해 테스트 처리량 증가, 커버리지 증대, 및 테스트 비용 절감을 구현함으로써 테스트 시스템 반복을 피하기 위해 최상의 솔루션을 제공하게 되었습니다.

병렬 테스트 아키텍처 선택하기


대부분의 기존 테스트 시스템에 병렬 테스팅을 실행할 수 있지만, 모듈형의 테스트 시스템 아키텍처가 병렬 테스트 환경에 사용되면 최상의 결과를 구현합니다. NI TestStand와 같은 테스트 관리 소프트웨어 및 모듈형 PXI 하드웨어 컴포넌트는 병렬 테스트 시스템에서 최고의 성능을 획득하기 위한 여러가지 기능을 제공합니다. 그러나, 부가 하드웨어 투자없이 기존의 테스트 하드웨어를 사용하여 병렬 테스팅을 실행할 수도 있습니다. 일단 테스트 아키텍처를 선택하면 그 다음 단계는 희망하는 UUT 테스트 동작에 기반하여 최적의 프로세스 모델을 선택해야 합니다. 그림 1은 모듈형 테스트 아키텍처로써 테스트 관리 서비스, 테스트 모듈, 측정 서비스, 및 테스트 하드웨어를 모듈화하는 방법을 나타냅니다.


그림 1. 모듈형 테스트 시스템 아키텍처

일반 병렬 프로세스 모듈


UUT의 올바른 어셈블리 또는 기능을 테스트할 때 테스트 시스템에서 수행할 다양한 태스크가 있습니다. 이러한 태스크에는 UUT를 실제로 테스트하는 것과 관계없는 여러 과정 뿐 아니라 모델 또는 제품군 특정 태스크가 포함됩니다. 프로세스 모델은 시스템 레벨의 태스크를 UUT 특정 테스트와 분리함으로써 개발 노력을 대폭 줄이며 코드 재사용을 개선합니다. 프로세스 모델이 처리하는 태스크에는 UUT ID 번호 추적, 인스트루먼트 초기화, 테스트 수행 시작, 테스트 결과 수집, 테스트 리포트 생성, 테스트 결과를 데이터베이스에 로깅 등이 있습니다. NI TestStand는 (1)병렬 처리 모델, (2)일괄 처리 모델의 두 가지 프로세스 모델을 제공함으로써 UUT 테스트 요구에 기반한 병렬 테스트의 일반 테스트 흐름을 원활하게 진행합니다.
여러 개의 독립 테스트 소켓을 테스트하기 위해 병렬 처리 모델을 사용할 수 있습니다. 본 모델로 언제라도 모든 UUT에서 테스틀를 시작하거나 멈출 수 있습니다. 예를 들어, 라디오 보드 테스트를 수행하기 위해 다섯 개의 테스트 소켓을 보유할 수 있습니다. 병렬 처리 모델을 사용하면 다른 소켓들이 다른 보드를 테스트하는 동안 새로운 보드를 개방 소켓에 로드할 수 있습니다. 그림 2는 병렬 처리 실행 방법을 설명합니다.


그림 2. 병렬 처리 모델 흐름 차트


다른 방법인 일괄 처리 모델을 사용하면 여러 UUT를 그룹으로 테스트하는 테스트 소켓 세트를 컨트롤할 수 있습니다. 한 예로, 사용자는 일반 캐리어에 부착된 회로 보드 세트를 보유할 수 있습니다. 일괄 모델로 모든 보드 테스팅을 동시에 시작하고 끝낼 수 있습니다. 일괄 모델은 또한 배치 동기화 기능을 제공합니다. 예를 들어, 특정 단계가 배치에 적용되었을 경우 배치당 단계가 한번만 실행하도록 지정할 수 있습니다. 일괄 처리 모델로, 특정 단계 또는 그룹이 한번에 하나 이상의 UUT에서 실행될 수 없도록 지정하거나, 특정 단계가 모든 UUT에서 동시에 실행되도록 지정할 수 있습니다. 일괄 처리 모델이 어떻게 수행되는 지를 그림 3을 참조하십시오.



그림 3. 일괄 처리 모델 흐름 차트

인스트루먼트 공유 및 동기화


테스트 시스템 성능을 증대하는 동시에 비용을 낮추고자 한다면 각 테스트 소켓에 전용 인스트루먼트 세트를 제공하는 것은 바람직한 솔루션이 아닙니다. 병렬 테스트 시스템을 실행하면 추가의 하드웨어 투자가 필요하지 않습니다. 병렬 테스팅으로, 테스트 시스템에서 여러 테스트 소켓간 계측을 공유할 수 있습니다. UUT 테스트 주기동안 비작동 시간을 줄이면 추가 하드웨어 비용없이 상당한 성능 향상을 구현하게 됩니다. 여러 경우, 전체 시스템 성능을 최적화하기 위해 추가의 저비용 인스트루먼트를 추가하는 동시에 테스트 소켓간 더욱 고가의 하드웨어를 공유할 수 있습니다.

상용 테스트 관리 소프트웨어가 사용가능하기 이전에 병렬 테스트 시스템에서 작동하는 여러 테스트 소켓간 공유 계측 할당을 프로그래밍하기 위해서는 로우 레벨의 동기화 코드의 다량을 테스트 프로그램에 추가해야 했습니다. 중요한 섹션 및 상호배제는 종종 실제 코드와 얽히게 되므로 향후의 테스트 시스템에서 섹션을 프로그램하거나 재사용하기가 어렵습니다.

NI TestStand의 여러 내장 기능을 활용하는 병렬 테스트 시스템을 실행함으로써, 인스트루먼트 공유를 자유롭게 컨트롤할 수 있으며 여러 테스트 중인 디바이스(DUT)를 동기화할 수 있습니다. 테스트간의 리소스 공유를 시퀀스로 관리하기 위해 동기화 단계 타입 및 구성가능한 테스트 프로퍼티를 개별 테스트 레벨에서 사용할 수 있습니다. 테스트 시퀀스에 사용되는 동기화 단계 타입에는 잠금, 랑데부, 큐, 알림, 기다림 및 일괄 동기화 단계 유형이 있습니다. 그림 4는 두 개의 UUT를 테스트하는 동안 잠금 단계가 어떻게 사용되는 지 보여줍니다.


그림 4. 예제 테스트 시퀀스는 잠근 단계 타입 조합을 사용하여
여러 테스트가 동일 인스트루먼트에 동시 액세스하는 것을 방지합니다.


또한, 테스트의 그룹보다는 특정 테스트 단계와 관련된 구성가능한 인스트루먼트 공유 프로퍼티를 사용할 수도 있습니다. 대부분의 자동화된 테스트 시스템에는 어느 정도의 스위칭 또는 신호 라우팅이 관련되어 있습니다. 그 실례로는 전원을 컨트롤하는 간단한 범용 릴레이에서부터 UUT 및 수 천개의 테스트 포인트를 수 십개의 계측기로 라우팅하는 복합 매트릭스 구성에 이르기까지 다양합니다. 컨트롤하는 릴레이의 개수가 적으면 릴레이 컨트롤에 필요한 테스트 코드는 간단합니다. 라우트 갯수가 증가하고 여러 개의 스위치 모듈로 확장됨에 따라 본 기능 관리를 위한 소프트웨어를 개발하는 것은 시간 소모적이며 비용이 많이 듭니다. NI Switch Executive는 지능형 스위치 관리 및 라우팅 어플리케이션입니다. NI Switch Executive를 사용하면 스위치 모듈, 외부 접속, 신호 라우트의 구성 및 명명 작업을 인터랙티브하게 수행할 수 있으므로 개발 생산성이 증대됩니다. 내쇼날인스트루먼트 TestStand, LabVIEW, LabWindows/CVI, Measurement Studio와 함께 사용해 스위치 프로그래밍에서의 테스트 코드 재사용 및 시스템 성능을 향상시킬 수 있습니다. 그림 5는 NI TestStand, NI Switch Executive 및 사용자 하드웨어 간의 인터랙션을 보여줍니다. 결과적으로 NI Switch Executive는 스위치 시스템 구성을 단순화하고 테스트 성능은 높여 테스트 비용을 절감합니다. NI TestStand를 사용하여 개발된 시스템을 위해 스위치 구성은 각 테스트 단계의 프로퍼티로 포함됩니다. 본 상황에서 스위치 프로그래밍은 기존의 NI Switch Executive의 버추얼 디바이스, 라우트/라우트 그룹의 이전 구성을 사용하면 간단해집니다.


그림 5. NI Switch Executive를 사용하여
스위치 기능을 정의하기 위한 NI TestStand Window


이 방법은 스위치 코드를 ATE 시스템에 있는 개별 테스트 코드 모듈과 분리시킵니다. 스위치 하드웨어가 향후에 변경되어도 계측 테스트 코드는 같은 방식으로 유지됩니다. 각 테스트의 분리가능하지 않은 부분을 테스트하지 않고 테스트의 모듈형 프로퍼티를 병렬 테스트하면 실행의 복잡함이 줄어듭니다.

병렬 테스트 결과 샘플


향상된 인스트루먼트 사용율 및 병렬 테스팅의 향상된 처리량에 대해 자세히 설명하기 위해 병렬 테스팅을 일반 자동화 테스트 시스템에 적용하기 전후가 기록되었습니다. 테스트 시스템은 전기 컴포넌트 테스트 및 주파수 응답 테스트를 수행합니다. 테스트 시스템은 NI TestStand 및 LabVIEW 테스트 소프트웨어 도구를 사용하여 테스트를 생성하고 관리합니다. 테스트 시스템에는 소스 (2), DMM (1), 디지타이저 (1), 멀티플렉서 (1), 및 고밀도 스위치 (1)가 있습니다. ()는 갯수


그림 6. UUT를 기존 방식으로 시퀀스별로 테스트한 결과


고속 제작 환경에서 처리량을 증대하고 테스트 시간을 줄이기 위한 개선 사항들은 비용을 줄이는 데에 중요합니다. 그림 6은 기존 방식의 UUT 시퀀스 테스트가 어떻게 수행되는 지를 보여줍니다. 그림 7에서, 인스트루먼트 사용률을 향상하고 테스터의 테스트 처리량을 증대하는 방법을 볼 수 있습니다. 세 가지 추가 테스트 소켓을 추가하여 4개의 UUT를 병렬로 테스트하여 시퀀스 테스트에서 이전에 사용된 동일한 하드웨어 세트를 공유할 수 있습니다.


그림 7. 병렬 테스팅의 흐름 및 성능 향상점


그림 8은 오토스케쥴링이라고 불리는 새로운 병렬 테스트 기술을 UUT에서 실행되는 테스트 세트에 어떻게 적용하는 지 보여줍니다. 오토스케쥴링은 일반적으로 인스트루먼트 사용률 및 처리량을 추가 10~15 퍼센트 향상합니다. 동일한 테스트 구성을 사용하는 오토스케쥴링은 테스트 실행 초기 단계의 비작동 시간을 상당량 줄이며, 리소스 수집을 위해 대기하고 차후에 반환하는 테스트를 건너뛰므로 인스트루먼트 사용 및 테스트 처리량을 향상시킵니다. 오토스케쥴링 사용은 오토스케쥴된 섹션의 테스트가 어떤 순서로도 실행가능해야 하며 이전 테스트 결과와 독립적이어야 합니다.


그림 8. 테스트 시스템 성능을 최적화하는 오토스케쥴링


병렬 테스팅 및 오토스케쥴링 기술의 사용을 통해 그림 9에 나타난 기존 시퀀스 테스트와 비교하여 DMM 및 디지타이저 사용을 거의 40 퍼센트 증대하고 처리량을 거의 50 퍼센트 증대합니다.


그림 9. 종합적인 테스트 시간 및 사용률 비교


DMM 또는 저비용 디지타이저 등의 저가의 디바이스를 추가하면 테스트 흐름이 원활해지므로 진정한 병렬 측정을 제공할 뿐만 아니라 효율성 및 처리량을 극대화할 수 있습니다.

관련 NI 제품 및 기술백서


자동화 테스트의 선두주자인 내쇼날인스트루먼트는 엔지니어들이 차세대 테스트 시스템을 구축할 수 있도록 다양한 하드웨어 및 소프트웨어 제품 공급에 힘쓰고 있습니다.

소프트웨어:

하드웨어:

기술백서:
NI는 차세대 테스트 시스템 개발자 가이드를 제공합니다. 본 가이드는 적은 비용으로 테스트 생산성을 증대하며 향후 프로젝트로 확장가능한 시스템을 개발하기 위한 여러가지 기술백서로 구성되어 있습니다. 전체 개발자 가이드를 보시려면 PDF (90페이지 이상) 버전을 다운로드하거나, 차세대 테스트 시스템 설계 개발자 가이드의 웹 버전을 보십시오.

기타 리소스