KR20180121410A - 소프트웨어 애플리케이션 프로그래밍 인터페이스(api)로 자동화된 시험 특징의 사용자 제어 기법 - Google Patents

소프트웨어 애플리케이션 프로그래밍 인터페이스(api)로 자동화된 시험 특징의 사용자 제어 기법 Download PDF

Info

Publication number
KR20180121410A
KR20180121410A KR1020180049214A KR20180049214A KR20180121410A KR 20180121410 A KR20180121410 A KR 20180121410A KR 1020180049214 A KR1020180049214 A KR 1020180049214A KR 20180049214 A KR20180049214 A KR 20180049214A KR 20180121410 A KR20180121410 A KR 20180121410A
Authority
KR
South Korea
Prior art keywords
test
user
api
dut
server
Prior art date
Application number
KR1020180049214A
Other languages
English (en)
Other versions
KR102430283B1 (ko
Inventor
로템 나훔
파드마자 날루리
Original Assignee
주식회사 아도반테스토
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 아도반테스토 filed Critical 주식회사 아도반테스토
Publication of KR20180121410A publication Critical patent/KR20180121410A/ko
Application granted granted Critical
Publication of KR102430283B1 publication Critical patent/KR102430283B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0208Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
    • G05B23/0213Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2832Specific tests of electronic circuits not provided for elsewhere
    • G01R31/2834Automated test systems [ATE]; using microprocessors or computers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318314Tools, e.g. program interfaces, test suite, test bench, simulation hardware, test compiler, test program languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56016Apparatus features
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24065Real time diagnostics
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C2029/5602Interface to device under test

Abstract

자동화된 시험을 수행하기 위한 시스템이 개시된다. 방법은 시험기 상의 디폴트 생산 흐름을 제어하도록 애플리케이션 프로그래밍 인터페이스(API)를 프로그래밍하는 단계를 포함하되, 생산 흐름은 시험기에 연결된 피시험 장치(DUT)에 대한 시험을 실행하는 것과 연관된 복수의 시험 시퀀스를 포함한다. 방법은 사용자 특정 API에 따라 복수의 시퀀스를 맞춤화하기 위해 디폴트 생산 흐름을 수정하도록 API를 구성하는 단계를 포함하되, 사용자 특정 API는 사용자의 시험 요구사항에 따른 생산 흐름의 수정을 포함한다. 마지막으로, 방법은 사용자를 위해 API를 맞춤화하기 위해 사용자 특정 API를 API와 통합하는 단계를 포함한다.

Description

소프트웨어 애플리케이션 프로그래밍 인터페이스(API)로 자동화된 시험 특징의 사용자 제어 기법{USER CONTROL OF AUTOMATED TEST FEATURES WITH SOFTWARE APPLICATION PROGRAMMING INTERFACE(API)}
관련 출원에 대한 상호 참조
관련 출원
본 출원은 Rotem Nahum, Rebecca Toy, Padmaja Nalluri 및 Leon Chen을 발명자로 지명하고, 대리인 사건 번호 ATSY-0052-01.01US를 갖는 "TEST SYSTEM SUPPORTING MULTIPLE USERS USING DIFFERENT APPLICATIONS"이라는 제목의 미국 특허 출원과 관련된다. 해당 출원은 그 전체가 모든 목적을 위해 본원에 참고로써 포함된다.
기술분야
본 개시물은 일반적으로 자동화된 시험 장비 분야에 관한 것으로 보다 구체적으로는 그러한 장비의 제어 기법에 관한 것이다.
자동화된 시험 장비(Automated test equipment: ATE)는 반도체 웨이퍼 또는 다이, 집적 회로(IC), 회로 보드 또는 솔리드 스테이트 드라이브와 같은 패키징된 장치에 대한 시험을 수행하는 임의의 시험 어셈블리일 수 있다. ATE 어셈블리는 빠르게 측정을 수행하고 그 이후 분석될 수 있는 시험 결과를 생성하는 자동화된 시험을 실행한다. ATE 어셈블리는 계량기(meter)에 결합된 컴퓨터 시스템에서부터 맞춤형 전용 컴퓨터 제어 시스템 및 전자 부품 및/또는 반도체 웨이퍼 시험, 예컨대, SOC(System-On-Chip) 시험 또는 집적 회로 시험을 자동으로 시험할 수 있는 많은 상이한 시험 기기를 포함할 수 있는 복잡한 자동화된 시험 어셈블리에 이르기까지 다양하다. ATE 시스템은 시험 장치에 소비되는 시간을 줄여 장치가 설계된 대로 기능할 수 있게 하고 진단 도구의 역할을 하여 장치가 소비자에게 도달하기 전에 주어진 장치 내의 고장 컴포넌트의 존재를 판단할 수 있다.
전형적인 ATE 시스템이 장치(일반적으로 피시험 장치(device under test) 또는 DUT로 지칭됨)를 시험할 때, ATE 시스템은 자극(예를 들어, 전기 신호)을 장치에 인가하고 장치의 응답(예를 들어, 전류 및 전압)을 검사한다. 전형적으로, 시험의 최종 결과는 장치가 사전 설정된 허용오차 내에서 특정 예상 응답을 성공적으로 제공하면 "합격"이고, 또는 장치가 사전 설정된 허용오차 내에서 예상 응답을 제공하지 않으면 "불합격"이다. 더 정교한 ATE 시스템은 불합격된 장치를 평가하여 하나 이상의 고장 원인을 잠재적으로 판단할 수 있다.
일반적으로 ATE 시스템은 ATE 시스템의 동작을 지시하는 컴퓨터를 포함한다. 전형적으로, 컴퓨터는 하나 이상의 특수 소프트웨어 프로그램을 작동시켜 (i) 시험 개발 환경 및 (ii) 장치 시험 환경을 제공한다. 시험 개발 환경에서, 사용자는 시험 프로그램, 예를 들어, ATE 시스템의 다양한 부분을 제어하는 하나 이상의 파일의 소프트웨어 기반 구성을 전형적으로 생성한다. 장치 시험 환경에서, 사용자는 전형적으로 ATE 시스템에 시험을 위한 하나 이상의 장치를 제공하고, 시험 프로그램에 따라 각 장치를 시험하도록 ATE 시스템에 지시한다. 사용자는 ATE 시스템에 추가 장치를 단순히 제공하고 시험 프로그램에 따라 추가 장치를 시험하도록 ATE 시스템에 지시함으로써 추가 장치를 시험할 수 있다. 따라서, ATE 시스템은 사용자로 하여금 시험 프로그램에 기초하여 일관되고 자동화된 방식으로 많은 장치를 시험할 수 있게 한다.
전형적인 종래 기술의 시험 환경에서, 시험 개발 환경은 시험기의 많은 고수준 기능 및 특징을 제어하는 애플리케이션 프로그래밍 인터페이스(API)를 포함할 수 있다. API는 시험 플랫폼의 고수준 기능 및 특징을 지시하기 위해 제어 서버와 인터페이싱한다. 이러한 API의 한 가지 전형적인 문제는 주어진 애플리케이션 또는 주어진 고객을 위해 시험 시스템을 맞춤화하기 위해, API를 수동으로 변경하고 다시 프로그래밍해야 한다는 것이다. 이는 고도로 숙련되고 전문화된 전문가를 관련시키는 어렵고, 오래 걸리고, 비용이 많이 들고, 복잡하며 오류가 발생하기 쉬운 프로세스이다. 특정 고객의 필요를 위한 API의 기능 및 특징을 맞춤화하기 위한 더 쉽고 빠르며 더 자동적이고 간소화된 방법을 제공하는 것이 바람직할 것이다.
따라서, 시험 시스템의 상이한 고객들에게 용이하게 적응될 수 있는 시험 개발 환경이 필요하다. 또한, ATE 시스템의 서로 다른 고객들의 요구사항에 맞게 용이하게 맞춤화될 수 있는 애플리케이션 프로그래밍 인터페이스를 갖는 시험 개발 환경이 필요하다. 설명된 시스템의 유리한 측면을 사용하여, 각각의 제한 없이, 본 발명의 실시예들은 이러한 문제점을 해결하기 위한 새로운 해결책을 제공한다.
본원에 개시된 발명은 DUT를 시험하기 위해 복수의 프리미티브(또는 시험기 슬라이스) 및 연관된 DUT 인터페이스 보드(DIB)를 이용한다. 각 프리미티브는 모듈식이고 이는 다른 프리미티브와 독립적으로 동작할 수 있음을 의미한다. 따라서, 랙 내에 세팅된 복수의 프리미티브는 상이한 시험 계획하에서 각각 동작할 수 있다. 프리미티브는 명령, 제어, 관리 등을 위해 제어 서버와 통신한다. 제어 서버는 지원하는 다양한 프리미티브에 대해 복수의 애플리케이션 프로그램 또는 시험 계획을 호스팅할 수 있다. 프리미티브는 표준 IP 네트워크를 통해 서버와 통신할 수 있다. 원격으로 위치할 수 있는 다양한 컴퓨터 시스템은 표준 IP 네트워크 연결을 통해 서버에 액세스할 수 있다.
따라서, 이러한 시험 플랫폼 하에서, l) 프리미티브 모듈성 및 2) 표준 IP 네트워크의 사용을 통해, 한 사용자에 따라 주어진 시험 계획하에서 복수의 DUT를 시험하는 동안 동일한 랙의 제 2 복수의 프리미티브가 제 2 사용자가 지시하는 완전히 다른 애플리케이션을 수행하는 것이 가능하다. 그러므로, 본 기술 분야의 유휴 시험 회로와 연관된 지금까지의 문제점들이 제거된다.
애플리케이션 프로그램 프로그래밍 인터페이스(API)는 시험 시스템의 고수준 기능 및 특징을 제어하고 서버를 통해 프리미티브와 통신한다. 맞춤 통합 제조 프로세스(Custom Integrated Manufacturing Process, CIM)라로 불리는 API는 1) 어떤 시험 계획이 사용되는지, 2) 사용자 인터페이스가 사용자 스테이션을 통해 시험기와 함께 보고 동작하는 방식, 3) 후속 프로세스를 시험하고 제어하기 위해 새로운 DUT가 삽입될 때의 처리, 4) 시험의 시험 결과가 수집되고 저장되는 방식 등과 관련하여 시험 시스템의 많은 고수준 기능 및 특징을 제어한다.
본 발명의 양태들에 따르면, 사용자는 시험기 시스템과 연관된 라이브러리 내에 사용자 코드를 저장하고 API를 사용할 수 있다. 사용자 코드는 CIM 개발자가 제공한 정보 및 구문(syntax)에 기초하여 고객이 개발하고 그 다음 라이브러리에 로딩될 수 있다. 그 이후 CIM은 사용자 코드 및 사용자 API를 통합하여 통합된 CIM이 특정 고객의 필요에 따라 자동으로 사용자 맞춤화되고 사용자 라이브러리의 콘텐츠에 따라 특정 기능 및 기능을 채택한다. 이러한 방식으로, 본 발명의 실시예는 CIM이 각각의 고객의 필요에 맞게 수동으로 재작성되고 재설계될 필요가 없게 하는 CIM을 맞춤화하기 위한 자동 메커니즘을 효과적으로 제공한다. 이는 새로운 CIM을 개발할 때 소요되는 시간을 증가시키고, 또한 CIM 수정으로 인한 소프트웨어 비용 및 오류를 감소시킨다.
일 실시예에서, 자동화된 시험 장비(ATE)를 사용하여 시험을 수행하는 방법이 제시된다. 방법은 시험기 상의 디폴트 생산 흐름을 제어하도록 애플리케이션 프로그래밍 인터페이스(API)를 프로그래밍하는 단계를 포함하고, 생산 흐름은 시험기에 연결된 피시험 장치(DUT) 상에서 시험을 실행하는 것과 연관된 복수의 시험 시퀀스를 포함한다. 방법은 사용자 특정 API에 따라 복수의 시험 시퀀스를 맞춤화하기 위해 디폴트 생산 흐름을 수정하도록 API를 구성하는 단계를 더 포함하며, 사용자 특정 API는 사용자의 시험 요구 사항에 따른 생산 흐름에 대한 수정을 포함한다. 마지막으로, 본 방법은 사용자에 대해 API를 맞춤화하도록 사용자 특정 API를 API와 통합하는 단계를 포함한다.
다른 실시예에서, 컴퓨터 시스템이 자동화된 시험 장비(ATE)를 사용하여 시험을 수행하는 방법을 수행하게 하기 위한 컴퓨터 판독가능 프로그램 코드가 저장된 비일시적 컴퓨터 판독가능 매체가 개시된다. 방법은 시험기 상의 디폴트 생산 흐름을 제어하도록 애플리케이션 프로그래밍 인터페이스(API)를 프로그래밍하는 단계를 포함하고, 생산 흐름은 시험기에 연결된 피시험 장치(DUT) 상에서 시험을 실행하는 것과 연관된 복수의 시험 시퀀스를 포함한다. 방법은 사용자 특정 API에 따라 복수의 시험 시퀀스를 맞춤화하기 위해 디폴트 생산 흐름을 수정하도록 API를 구성하는 단계를 더 포함하며, 사용자 특정 API는 사용자의 시험 요구사항에 따른 생산 흐름에 대한 수정을 포함한다. 마지막으로, 방법은 사용자를 위해 API를 맞춤화하기 위해 사용자 특정 API를 API와 통합하는 단계를 포함한다.
다른 실시예에서, 자동화된 시험 장비(ATE)를 사용하여 시험을 수행하는 시스템이 개시된다. 시스템은 복수의 프리미티브에 통신 가능하게 결합된 서버를 포함하고, 복수의 프리미티브의 각각은 복수의 DUT를 포함한다. 시스템은 또한 그래픽 사용자 인터페이스(GUI)를 실행하는 제 1 컴퓨팅 장치를 포함하고, 컴퓨팅 장치는 서버에 통신 가능하게 결합되며, 그래픽 사용자 인터페이스는 사용자가 복수의 프리미티브에 액세스하는 것을 허용하고, 제 2 컴퓨팅 장치는 서버 및 제 1 컴퓨팅 장치와 통신 가능하게 결합된다. 제 2 컴퓨팅 장치는, (a) 디폴트 생산 흐름을 제어하도록 애플리케이션 프로그래밍 인터페이스(API)를 프로그래밍 - 생산 흐름은 서버에 연결된 DUT의 시험을 실행하는 것과 연관된 복수의 시험 시퀀스를 포함함 - 하고, (b) 사용자 특정 API에 따라 복수의 시험 시퀀스를 맞춤화하기 위해 디폴트 생산 흐름을 수정하도록 API를 구성 - 사용자 특정 API는 사용자의 시험 요구사항에 따른 생산 흐름에 대한 수정을 포함함 - 하며, (c) 사용자를 위해 API를 맞춤화하기 위해 사용자 특정 API를 API와 통합하도록 구성된다.
다음의 상세한 설명은 첨부된 도면과 함께 본 발명의 속성 및 이점에 관한 더 나은 이해를 제공할 것이다.
본 발명의 실시예는 첨부된 도면의 도면들에 한정되는 것이 아니라 예로서 도시되며, 동일한 참조 번호는 유사한 요소들을 지칭한다.
도 1a는 본 발명의 자동화된 시험 시스템의 실시예가 본 발명의 일 실시예에 따라 구현될 수 있는 컴퓨터 시스템이다.
도 1b는 본 발명의 실시예에 따라, 클라이언트 시스템 및 서버가 네트워크에 연결될 수 있는 네트워크 아키텍처의 일례를 도시한 블록도이다.
도 2a는 본 발명의 일 실시예에 따른 DUT 인터페이스 보드(DIB)와 인터페이싱되는 프리미티브를 도시한다.
도 2b는 랙에 유지되는 복수의 프리미티브를 포함하는 작업 셀을 도시한다.
도 3은 본 발명의 실시예에 따라 CIM이 동작하는 예시적인 시스템 환경을 도시하는 블록도이다.
도 4는 본 발명의 실시예에 따라 CIM이 동작하는 예시적인 시험 환경의 다른 고수준 아키텍처 개요를 도시한다.
도 5는 본 발명의 실시예에 따라 CIM의 디폴트 생산 흐름을 변경한 고객을 위한 예시적인 작업 명령 시퀀스를 도시한다.
도 6은 본 발명의 실시예에 따라 고객이 CIM의 디폴트 생산 흐름을 수정할 수 있는 방법을 도시하는 예시적인 상태도를 도시한다.
도 7은 본 발명의 실시예에 따라 시험기를 제어하기 위한 애플리케이션 프로그래밍 인터페이스(API)를 수정하는 예시적인 컴퓨터로 구현된 프로세스의 흐름도를 도시한다.
도면에서, 동일한 명칭을 갖는 요소는 동일하거나 유사한 기능을 갖는다.
이제 본 개시물의 다양한 실시예들에 대한 세부사항을 참조할 것이며, 그 예가 첨부 도면에 도시된다. 이러한 실시예들과 함께 설명되지만, 본 개시물을 이들 실시예로 한정하고자 하는 것이 아니라는 점이 이해될 것이다. 반대로, 본 개시물은 첨부된 청구 범위에 의해 정의된 바와 같은 본 개시물의 정신 및 범위 내에 포함될 수 있는 대안, 수정 및 균등물을 포함하는 것으로 의도된다. 더욱이, 본 개시물의 다음의 상세한 설명에서, 본 개시물에 관한 철저한 이해를 위해 제공하기 위해 다수의 특정 세부사항이 개시된다. 그러나, 본 개시물은 그러한 특정 세부사항 없이도 실시될 수 있다는 점이 이해될 것이다. 다른 경우에서, 공지의 방법, 절차, 컴포넌트, 및 회로는 본 개시물의 양태들을 불필요하게 모호하게 하지 않도록 상세히 설명되지 않는다.
다음의 상세한 설명의 일부는 절차, 논리 블록, 처리 및 컴퓨터 메모리 내의 데이터 비트에 대한 다른 상징적 연산 표현의 용어로 표현된다. 이러한 설명 및 표현은 데이터 처리 기술 분야의 당업자가 다른 당업자에게 그들의 작업의 내용을 가장 효과적으로 전달하기 위해 사용하는 수단이다. 본 출원에서, 절차, 논리 블록, 프로세스 등은 원하는 결과로 이어지는 일관성 있는 단계 또는 명령어 시퀀스인 것으로 이해된다. 이러한 단계들은 물리량의 물리적 조작을 이용하는 단계이다. 보통, 이러한 양은 반드시 그런 것은 아니지만 컴퓨터 시스템에서 저장, 전송, 조합, 비교, 및 달리 조작될 수 있는 전기 또는 자기 신호의 형태를 취한다. 일반적으로 공통적인 사용을 위해 그러한 신호를 트랜잭션, 비트, 값, 요소, 기호, 문자, 샘플, 픽셀 등으로 나타내는 것이 편리하다는 것이 입증되었다.
그러나 모든 이러한 용어 및 유사한 용어는 적절한 물리량과 연관되고, 단지 이러한 양에 적용되는 간편한 레이블이라는 점을 유념해야 한다. 다음 논의에서 명시적으로 언급되지 않거나 명백하지 않다면, 본 명세서 전체에 걸쳐, "구성하는(configuring)", "프로그래밍하는(programming)", "통합(integration)", "제공하는(providing)", "실행하는(executing)" 등과 같은 용어를 이용한 논의는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 장치 또는 프로세서(예를 들어, 도 1a의 시스템(110))의 동작 및 프로세스(예를 들어, 도 7의 흐름도(700))를 나타내는 것으로 이해된다. 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 장치는 컴퓨터 시스템 메모리, 레지스터, 또는 다른 그러한 정보 저장소, 전송 장치 또는 디스플레이 장치 내에서 물리적(전자적) 양으로 제시되는 데이터를 조작하고 변환한다.
본원에 설명된 실시예들은 프로그램 모듈과 같이 하나 이상의 컴퓨터 또는 다른 장치에 의해 실행되는 일부 형태의 컴퓨터 판독가능 저장 매체 상에 상주하는 컴퓨터 실행가능 명령어의 일반적 맥락으로 설명될 수 있다. 제한이 아닌 예시로써, 컴퓨터 판독가능 저장 매체는 비일시적 컴퓨터 판독가능 저장 매체 및 통신 매체를 포함할 수 있고, 비일시적 컴퓨터 판독가능 매체는 일시적, 전파 신호를 제외한 모든 컴퓨터 판독가능 매체를 포함한다. 일반적으로, 프로그램 모듈은, 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 프로그램 모듈의 기능은 다양한 실시예에 부합되는 바와 같이 조합되거나 분산될 수 있다.
컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보를 저장하기 위한 임의의 방법 또는 기법으로 구현되는 휘발성 및 휘발성, 착탈식 및 비착탈식 매체를 포함한다. 컴퓨터 저장 매체는 RAM(random access memory), ROM(read only memory), EEPROM(electrically erasable programmable ROM), 플래시 메모리 또는 다른 메모리 기술, 콤팩트 디스크 ROM(CD-ROM), 디지털 다목적 디스크(DVD) 또는 다른 광학 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장소, 또는 원하는 정보를 저장하는데 사용될 수 있고 그 정보를 검색하기 위해 액세스할 수 있는 임의의 다른 매체를 포함하나 이로 제한되지 않는다.
통신 매체는 컴퓨터 실행 가능 명령어, 데이터 구조 및 프로그램 모듈을 구현할 수 있고, 임의의 정보 전달 매체를 포함한다. 제한이 아닌 예로써, 통신 매체는 유선 네트워크 또는 직접 유선 연결과 같은 유선 매체 및 음향, 무선 주파수(RF), 적외선, 및 다른 무선 매체와 같은 무선 매체를 포함한다. 이들의 임의의 조합은 또한 컴퓨터 판독가능 매체의 범위 내에 포함될 수 있다.
도 1a는 본 발명의 실시예에 따라 클라이언트의 시험 요구사항을 제공하도록 맞춤화 가능한 애플리케이션 프로그래밍 인터페이스(API)에 의해 제어되도록 동작 가능한 시험기 제어 시스템(110)의 일례에 관한 블록도이다. 예를 들어, API 제어 시스템(110)은 디폴트 API에서 판독되지 않는 시험 동안 피시험 장치(DUT)로부터 특정 데이터를 판독하도록 맞춤화될 수 있다. 시험기 제어 시스템(110)은 컴퓨터 판독 가능 명령어를 실행할 수 있는 임의의 단일 또는 다중 프로세서 컴퓨팅 장치 또는 시스템을 광범위하게 나타낸다. 제어 시스템(110)의 예는 워크스테이션, 랩톱, 클라이언트 측 단말기, 서버, 분산 컴퓨팅 시스템, 핸드헬드 장치, 또는 임의의 다른 컴퓨팅 시스템 또는 장치를 포함하지만 이에 제한되지 않는다. 가장 기본적인 구성에서, 제어 시스템(110)은 적어도 하나의 프로세서(114) 및 시스템 메모리(116)를 포함할 수 있다.
프로세서(114)는 일반적으로 데이터를 처리하거나 명령어를 해석하고 실행할 수 있는 임의의 유형 또는 형태의 처리 유닛을 나타낸다. 특정 실시예들에서, 프로세서(114)는 소프트웨어 애플리케이션 또는 모듈로부터 명령어를 수신할 수 있다. 이러한 명령어는 프로세서(114)로 하여금 본원에서 설명되고/되거나 예시된 실시예들 중 하나 이상의 기능을 수행하게 할 수 있다.
시스템 메모리(116)는 일반적으로 데이터 및/또는 다른 컴퓨터 판독가능 명령어를 저장할 수 있는 임의의 유형 또는 형태의 휘발성 또는 비휘발성 저장 장치 또는 매체를 나타낸다. 시스템 메모리(116)에 관한 예는 RAM, ROM, 플래시 메모리, 또는 임의의 다른 적합한 메모리 장치를 포함하지만, 이로 제한되는 것은 아니다. 필수는 아니지만, 특정 실시예들에서, 제어 시스템(110)은 휘발성 메모리 유닛(예를 들어, 시스템 메모리(116)) 및 비휘발성 저장 장치(예를 들어, 주 저장 장치(132)) 둘 모두를 포함할 수 있다.
시험기 제어 시스템(110)은 또한 프로세서(114) 및 시스템 메모리(116) 외에 하나 이상의 컴포넌트 또는 요소를 포함할 수 있다. 예를 들어, 도 2a의 실시예에서, 제어 시스템(110)은 메모리 제어기(118), 입/출력(I/O) 제어기(120) 및 통신 인터페이스(122)를 포함하고, 이들 각각은 통신 인프라스트럭처(112)를 통해 상호연결될 수 있다. 통신 인프라스트럭처(112)는 일반적으로 컴퓨팅 장치의 하나 이상의 컴포넌트 사이의 통신을 가능하게 할 수 있는 임의의 유형 또는 형태의 인프라스트럭처를 나타낸다. 통신 인프라스트럭처(112)의 예는 통신 버스(예컨대, ISA(Industry Standard Architecture), PCI(Peripheral Component Interconnect), PCIe(PCI Express) 또는 유사한 버스) 및 네트워크를 포함하지만 이로 제한되는 것은 아니다.
메모리 제어기(118)는 일반적으로 메모리 또는 데이터를 처리하거나 제어 시스템(110)의 하나 이상의 컴포넌트 사이의 통신을 제어할 수 있는 임의의 유형 또는 형태의 장치를 나타낸다. 예를 들어, 메모리 제어기(118)는 통신 인프라스트럭처(112)를 통해 프로세서(114), 시스템 메모리(116) 및 I/O 제어기(120) 사이의 통신을 제어할 수 있다.
I/O 제어기(120)는 일반적으로 컴퓨팅 장치의 입력 및 출력 기능을 조정 및/또는 제어할 수 있는 임의의 유형 또는 형태의 모듈을 나타낸다. 예를 들어, I/O 제어기(120)는 제어 시스템(110)의 하나 이상의 요소, 예컨대, 프로세서(114), 시스템 메모리(116), 통신 인터페이스(122), 디스플레이 어댑터(126), 입력 인터페이스(130) 및 저장 인터페이스(134) 사이의 데이터 전송을 제어하거나 가능하게 할 수 있다.
통신 인터페이스(122)는 예시적인 제어 시스템(110)과 하나 이상의 추가 장치들 사이의 통신을 가능하게 할 수 있는 임의의 유형 또는 형태의 통신 장치 또는 어댑터를 폭넓게 나타낸다. 예를 들어, 통신 인터페이스(122)는 제어 시스템(110)과 추가 제어 시스템을 포함하는 사설 또는 공중 네트워크 사이의 통신을 가능하게 할 수 있다. 통신 인터페이스(122)는 유선 네트워크 인터페이스(예컨대, 네트워크 인터페이스 카드), 무선 네트워크 인터페이스(예컨대, 무선 네트워크 인터페이스 카드), 모뎀 및 기타 적합한 인터페이스를 포함하나, 이로 제한되지 않는다. 일 실시예에서, 통신 인터페이스(122)는 인터넷과 같은 네트워크에 대한 직접 링크를 통해 원격 서버에 대한 직접 연결을 제공한다. 통신 인터페이스(122)는 또한 임의의 다른 적합한 연결을 통해 그러한 연결을 간접적으로 제공할 수도 있다.
통신 인터페이스(122)는 또한 외부 버스 또는 통신 채널을 통해 제어 시스템(110)과 하나 이상의 추가 네트워크 또는 저장 장치 사이의 통신을 가능하게 하도록 구성된 호스트 어댑터를 나타낼 수도 있다. 호스트 어댑터의 예는 SCSI(Small Computer System Interface) 호스트 어댑터, USB(Universal Serial Bus) 호스트 어댑터, IEEE(Institute of Electrical and Electronics Engineers) 1394 호스트 어댑터, SATA(Serial Advanced Technology Attachment) 및 eSATA(External SATA) 호스트 어댑터, ATA(Advanced Technology Attachment) 및 PATA(Parallel ATA) 호스트 어댑터, 파이버 채널 인터페이스 어댑터, 이더넷 어댑터 등을 포함하나, 이로 제한되지 않는다. 또한, 통신 인터페이스(122)는 제어 시스템(110)이 분산 또는 원격 컴퓨팅에 참여하게 할 수 있다. 예를 들어, 통신 인터페이스(122)는 실행을 위해 원격 장치로부터 명령어를 수신하거나 원격 장치에 명령어를 송신할 수 있다.
도 1a에 도시된 바와 같이, 제어 시스템(110)은 또한 디스플레이를 통해 통신 인프라스트럭처(112)에 결합된 적어도 하나의 디스플레이 장치(124)를 포함할 수 있다. 디스플레이 장치(124)는 일반적으로 디스플레이 어댑터(126)에 의해 전송된 정보를 시각적으로 디스플레이할 수 있는 임의의 유형 또는 형태의 장치를 나타낸다. 유사하게, 디스플레이 어댑터(126)는 디스플레이 장치(124) 상에 디스플레이하기 위해 그래픽, 텍스트 및 다른 데이터를 전송하도록 구성된 임의의 유형 또는 형태의 장치를 일반적으로 나타낸다.
도 1a에 도시된 바와 같이, 제어 시스템(110)은 또한 입력 인터페이스(130)를 통해 통신 인프라스트럭처(112)에 결합된 적어도 하나의 입력 장치(128)를 포함할 수 있다. 입력 장치(128)는 일반적으로 컴퓨터 또는 인간이 생성한 입력을 제어 시스템(110)에 제공할 수 있는 임의의 유형 또는 형태의 입력 장치를 나타낸다. 입력 장치(128)에 관한 예는 키보드, 포인팅 장치, 음성 인식 장치 또는 임의의 다른 입력 장치를 포함하지만 이로 제한되지 않는다.
도 1a에 도시된 바와 같이, 제어 시스템(110)은 또한 저장 인터페이스(134)를 통해 통신 인프라스트럭처(112)에 결합된 주 저장 장치(132) 및 백업 저장 장치(133)를 포함할 수 있다. 저장 장치들(132 및 133)은 일반적으로 데이터 및/또는 기타 컴퓨터 판독 가능 명령어를 저장할 수 있는 임의의 유형 또는 형태의 저장 장치 또는 매체를 나타낸다. 예를 들어, 저장 장치들(132 및 133)은 자기 디스크 드라이브(예를 들어, 소위 하드 드라이브), 플로피 디스크 드라이브, 자기 테이프 드라이브, 광학 디스크 드라이브, 플래시 드라이브 등일 수 있다. 저장 인터페이스(134)는 일반적으로 저장 장치들(132 및 133)과 제어 시스템(110)의 컴포넌트들 사이에서 데이터를 전달하기 위한 임의의 유형 또는 형태의 인터페이스 또는 장치를 나타낸다.
일례에서, 데이터베이스(140)는 주 저장 장치(132)에 저장될 수 있다. 데이터베이스(140)는 단일 데이터베이스 또는 컴퓨팅 장치의 일부를 나타낼 수 있거나 또는 복수의 데이터베이스 또는 컴퓨팅 장치를 나타낼 수 있다. 예를 들어, 데이터베이스(140)는 제어 시스템(110)의 일부 및/또는 (이하의) 도 2의 예시적인 네트워크 아키텍처(200)의 일부를 나타낼 수 있다. 대안적으로, 데이터베이스(140)는 제어 시스템(110) 및/또는 네트워크 아키텍처(200)의 일부와 같은 컴퓨팅 장치에 의해 액세스 될 수 있는 하나 이상의 물리적으로 분리된 장치를 나타낼 수 있다(장치에 저장될 수 있다).
계속해서 도 1a를 참조하면, 저장 장치들(132 및 133)은 컴퓨터 소프트웨어, 데이터, 또는 다른 컴퓨터 판독가능 정보를 저장하도록 구성된 착탈식 저장 유닛으로부터 판독하고/하거나 착탈식 저장 유닛에 기록하도록 구성될 수 있다. 적합한 착탈식 저장 유닛의 예는 플로피 디스크, 자기 테이프, 광학 디스크, 플래시 메모리 장치 등을 포함하지만 이로 제한되지 않는다. 저장 장치들(132 및 133)은 또한 컴퓨터 소프트웨어, 데이터, 또는 다른 컴퓨터 판독가능 명령어가 제어 시스템(110)에 로딩될 수 있게 하기 위한 다른 유사한 구조 또는 장치를 포함할 수 있다. 예를 들어, 저장 장치(132 및 133)는 소프트웨어, 데이터 또는 다른 컴퓨터 판독가능 정보를 판독하고 기록하도록 구성될 수 있다. 저장 장치(132 및 133)는 제어 시스템(110)의 일부일 수 있거나 다른 인터페이스 시스템을 통해 액세스되는 별도의 장치일 수도 있다.
많은 다른 장치 또는 시스템이 또한 서브 시스템(110)에 연결될 수 있다. 반대로, 본원에 설명된 실시예들을 실시하기 위해 도 1a에 도시된 모든 컴포넌트 및 장치가 반드시 실제로 있어야 하는 것은 아니다. 앞에서 참고한 장치 및 서브시스템은 또한 도 1a에 도시된 것과는 상이한 방식으로 상호연결될 수도 있다. 제어 시스템(110)은 또한 임의의 수의 소프트웨어, 펌웨어 및/또는 하드웨어 구성을 포함할 수 있다. 예를 들어, 개시된 예시적인 애플리케이션의 예는 컴퓨터 판독가능 매체 상의 컴퓨터 프로그램(또한 컴퓨터 소프트웨어, 소프트웨어 애플리케이션, 컴퓨터 판독가능 명령어, 또는 컴퓨터 제어 로직으로도 지칭됨)으로 인코딩될 수 있다.
컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 매체는 제어 시스템(110)에 로딩될 수 있다. 그 다음에 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 프로그램의 전부 또는 일부가 시스템 메모리(116) 및/또는 저장 장치(132 및 133)의 다양한 부분에 저장될 수 있다. 프로세서(114)에 의해 실행될 때, 제어 시스템(110)에 로딩된 컴퓨터 프로그램은 프로세서(114)로 하여금 본원에 설명되고/되거나 도시된 예시적인 실시예의 기능을 수행하게 하고/하거나 수행하기 위한 수단일 수 있다. 추가적으로 또는 대안적으로, 본원에 설명되고/되거나 도시된 예시적인 실시예는 펌웨어 및/또는 하드웨어로 구현될 수 있다.
도 1b는 클라이언트 시스템(151, 152, 153) 및 서버(141, 145)가 네트워크(150)에 연결될 수 있는 네트워크 아키텍처(100)의 일례에 관한 블록도이다. 클라이언트 시스템(151, 152 및 153)은 일반적으로 도 1a의 시험기 제어 시스템(110)과 같은 임의의 유형 또는 형태의 컴퓨팅 장치 또는 시스템을 나타낸다.
유사하게, 서버(141 및 145)는 일반적으로 다양한 데이터베이스 서비스를 제공하고/하거나 특정 소프트웨어 애플리케이션을 실행하도록 구성된 컴퓨팅 장치 또는 시스템, 예컨대, 애플리케이션 서버 또는 데이터 서버를 나타낸다. 네트워크(150)는 일반적으로, 예를 들어, 인트라넷, 광역 네트워크(WAN), 근거리 통신망(LAN), 개인 영역 네트워크(PAN), 또는 인터넷을 포함하는 임의의 원격통신 또는 컴퓨터 네트워크를 나타낸다.
도 1b의 제어 시스템(100)을 참조하면, 통신 인터페이스(122)와 같은 통신 인터페이스는 각 클라이언트 시스템(151, 152, 153)과 네트워크(150) 사이에 연결성을 제공하는데 사용될 수 있다. 클라이언트 시스템(151, 152, 153)은, 예를 들어, 웹 브라우저 또는 다른 클라이언트 소프트웨어를 사용하여, 서버(141 또는 145) 상의 정보에 액세스할 수 있다. 이러한 소프트웨어는 클라이언트 시스템(151, 152 및 153)이 서버(140), 서버(145), 저장 장치들(160(1) 내지 160(L)), 저장 장치들(170(1) 내지 170(N)), 저장 장치들(190(1) 내지 190(M)), 또는 지능형 저장 어레이(195)에 의해 호스팅되는 데이터에 액세스할 수 있게 한다. 도 1b는 데이터 교환을 위한 네트워크(예컨대, 인터넷)의 사용을 도시하지만, 본원에 설명되는 실시예들은 인터넷 또는 임의의 특정 네트워크 기반 환경으로 제한되지 않는다.
일 실시예에서, 본원에 개시된 예시적인 실시예들 중 하나 이상의 실시예의 전부 또는 일부가 컴퓨터 프로그램으로 인코딩되고 서버(141), 서버(145), 저장 장치들(160(1) 내지 160(L)), 저장 장치들(170(1) 내지 170(N)), 저장 장치들(190(1) 내지 190(M)), 지능형 저장 어레이(195), 또는 이들의 임의의 조합 상에 로딩되고 이들에 의해 실행된다. 본원에 개시된 예시적인 실시예들 중 하나 이상의 실시예들의 전부 또는 일부는 또한 컴퓨터 프로그램으로 인코딩되고, 서버(141) 내에 저장되며, 서버(145)에 의해 실행되고, 네트워크(150)를 통해 클라이언트 시스템(151, 152 및 153)에 분산될 수도 있다.
소프트웨어 애플리케이션 프로그래밍 인터페이스(API)를 사용한 자동화된 시험 특징의 사용자 제어
종래의 시험 환경에서, 시험 개발 환경은 시험기의 많은 고수준 기능 및 특징을 제어하는 애플리케이션 프로그래밍 인터페이스(API)를 포함할 수 있다. API는 시험 플랫폼의 고수준 기능 및 특징을 지시하기 위해 제어 서버와 인터페이싱한다. 이러한 API의 한 가지 전형적인 문제는 주어진 애플리케이션 또는 주어진 고객을 위해 시험 시스템을 맞춤화하려면 API를 수동으로 변경하고 다시 프로그래밍해야 한다는 것이다. 이는 고도로 숙련된 전문가를 참여시키는, 어렵고, 오래 걸리며, 비용이 많이 들고, 복잡하고 오류가 발생하기 쉬운 프로세스일 수 있다.
본 발명의 실시예들은 특정 고객의 요구사항에 따라 API의 기능 및 특징을 맞춤화하기 위한 더 쉽고, 더 빠르고, 보다 자동적이고 능률적인 방법을 유리하게 제공한다.
일 실시예에서, 시험 개발 환경은 복수의 프리미티브에 결합된 제어 서버를 포함한다. 프리미티브는 복수의 DUT에 시험 계획을 적용하는 데 필요한 시험기 회로를 포함한다. 주어진 프리미티브가 시험하는 DUT는 DUT를 포함하는 DIB를 사용하여 프리미티브에 결합된다. API는 무엇보다도 시험기로부터 출력된 시험 결과를 수신하고 추후 참조를 위해 고객 데이터베이스 내에 데이터를 보관할 수 있는 플로어 제어 모듈에 저장하는 것을 포함하는 시험 플랫폼의 고수준 기능 및 특징을 지시하기 위해 제어 서버와 인터페이싱한다.
일 실시예에서, 본 발명은 맞춤화 가능한 API, 예를 들어, 디폴트 거동을 제공하는 것과 같은 방식으로 개발되는 고객 특정 제조 프로세스(CIM)와 같은 맞춤화 가능한 API를 포함하지만 특수 사용자 라이브러리에 저장되는 사용자 코드 및 사용자 API를 또한 수락한다. 사용자 코드 및 사용자 API는 CIM 내에 자동으로 통합됨으로써 CIM을 고객의 특정 제조 공정, GUI 디스플레이 요구사항 및 DUT에 맞도록 CIM의 동작 및 기능 및 특징을 변경할 수 있는 방식으로 기록된다. CIM은 고객이 제공한 사용자 코드 및 사용자 API에 의해 자동으로 변경되는 방식으로 개발되기 때문에, CIM은 맞춤화가 훨씬 쉽고 수정 시에 오류가 덜 발생하며 훨씬 적은 시간과 비용으로 맞춤화될 수 있다. 이는 고객의 시험 처리량을 향상시키는 동시에 시험 소프트웨어 비용을 감소시킨다.
도 2a는 본 발명의 일 실시예에 따른 DUT 인터페이스 보드(DIB)(400)와 인터페이싱된 프리미티브(410)를 도시한다. 도 2a에 도시된 프리미티브는 시험 헤드에 삽입될 수 있는 개별 시험 모듈의 유형이고 시험 계획을 따라 DUT에 대한 시험을 수행하는 시험 회로를 포함한다. 프리미티브는 모든 다양한 전자장치, 예를 들어, 사이트 모듈, 전원 공급기 등이 하우징된 인클로저(450)를 포함한다. DIB(400)는 DUT(420)를 위한 사이즈 맞춤형 커넥터를 사용하는 복수의 DUT(420)를 포함할 수 있다. DIB(400)는 또한 인클로저(470)를 포함할 수 있다. DIB(400)는 로드 보드(미도시)를 통해 프리미티브(410)의 범용 백플레인(미도시)에 인터페이싱한다. 프리미티브(410)는 DUT(420) 상에서 시험 계획을 수행하기 위한 시험 회로를 포함한다. 프리미티브(410)는 임의의 다른 프리미티브와 독립적으로 동작하고 제어 서버에 연결된다.
도 2b는 랙 내에 유지되는 복수의 프리미티브(491)를 포함하는 작업 셀을 도시한다. 본 발명의 실시예들은 복수의 프리미티브(도 2b에 도시된 프리미티브와 유사함) 및 연관 DIB를 이용하여 DUT를 시험한다. 각 프리미티브는 다른 프리미티브와 독립적으로 동작할 수 있는 모듈식이다. 따라서, (도 2b에 도시된 바와 같이) 랙 내에 설정된 복수의 프리미티브는 상이한 시험 계획하에서 각각 동작할 수 있다. 프리미티브는 명령, 제어, 관리 등을 위해 제어 서버와 통신한다. 제어 서버는 제어 서버가 지원하는 다양한 프리미티브에 대한 복수의 애플리케이션 프로그램 또는 시험 계획을 호스팅할 수 있다. 프리미티브는 표준 IP 네트워크를 통해 서버와 통신할 수 있다. 원격으로 위치할 수 있는 다양한 컴퓨터 시스템이 표준 IP 네트워크 연결을 통해 서버에 액세스할 수 있다.
따라서, 이러한 시험 플랫폼에서, 1) 프리미티브 모듈성 및 2) 표준 IP 네트워크 연결의 사용으로 인해, 복수의 프리미티브가 한 명의 사용자를 따라 주어진 시험 계획하에서 복수의 DUT를 검사하는 동안 동일 랙의 제 2 복수의 프리미티브가 제 2 사용자 등에 의해 지시되는 완전히 상이한 애플리케이션(또는 상이한 시험 계획)을 수행하는 것이 가능하다. 예를 들어, 6개의 프리미티브를 포함하는 시험 헤드에서, 2개의 프리미티브는 SATA 유형 장치를 디버깅하기 위해 엔지니어링 부서에 전용되고, 4개의 프리미티브는 SSD 드라이브의 볼륨 시험을 위해 제조 부서에 의해 전용되는 것이 가능하다.
도 3은 본 발명의 실시예들에 따라 CIM이 동작하는 예시적인 시스템 환경을 도시하는 블록도이다. 시스템(300)은 복수의 사용자 스테이션(10 및 20)에 결합된 제어 서버(30)를 포함한다. 사용자 스테이션은 표준 IP 통신 네트워크를 통해 제어 서버(30)에 연결된다. 본 예에서, 하나의 사용자 스테이션(10)은 엔지니어링 시험을 수행하는 엔지니어링 도구이고 사용자 스테이션(20)은 DUT 시험을 제어하는 제조 도구이다. 사용자 스테이션(10)은 서버(30)를 통해 프리미티브(40a)를 제어하고, 프리미티브(40a)는 DUT(50a) 상의 시험 계획(TP1)을 실행하는 것으로 도시된다. 사용자 스테이션(20)은 서버(30)를 통해 프리미티브(40b)를 제어하고 프리미티브(40b)는 DUT(50b) 상에서 시험 계획(TP2)를 실행하는 것으로 도시된다.
2개의 프리미티브(40a 및 40b)는 단일 랙 내에 위치할 수 있다(도 2b 참조). 프리미티브(40a)는 시험 계획("TP1")을 사용하여 (DIB를 통해) 복수의 DUT(50a)를 시험하는 것으로 도시된다. 프리미티브(40b)는 시험 계획("TP2")으로 불리는 별도의 애플리케이션을 사용하여 (DIB를 통해) 복수의 DUT(50b)를 시험하는 것으로 도시된다. 두 개의 서로 다른 표준 IP 네트워크 연결을 통해, 제 1 사용자 컴퓨터(10) 및 제 2 사용자 컴퓨터(20) 둘 모두는 제어 서버(30)에 연결된다.
예를 들어, 제 1 사용자 컴퓨터는 고객의 엔지니어링 부서 전용으로 사용될 수 있고 그동안 제 2 사용자 컴퓨터는 도 3에 도시된 바와 같이 제조 부서 전용으로 사용될 수 있다. 일례에서, 이들 사용자 컴퓨터는 서로 멀리 떨어져 있을 수 있고 서버(30)로부터 멀리 떨어져 있을 수 있다. 더 많은 프리미티브가 서버(30)와 통신할 수 있고 예시를 위해 단지 2개만 도시된다는 점이 인식된다. 또한, 바코드 스캐너와 같은 다른 시험 장비가 서버(30)에 연결될 수도 있고 제조 도구(20) 및 CIM(60)을 사용하여 액세스 가능할 수 있다.
도 3에 도시된 예에서, 제 2 사용자 컴퓨터(20)는 프리미티브(40b)에 의한 실행을 통해 복수의 DUT(50b) 상의 제조 시험 계획을 제어한다. 이 제조 시험 계획은 제어 서버(30)에 로딩될 수 있고, 그 다음에 DUT(50b) 상에서 실행하기 위해 프리미티브(40b)에 다운로드 될 수 있다. 그 다음, 시험 결과가 그 반대 방향으로 통신될 수 있다. 본 예에서, 사용자 컴퓨터(20)는 DUT(50b)의 대량 제조 시험 동안 생산 전문가의 제어하에 있을 수 있다.
이러한 방식으로, 본 발명의 실시예들은 동일한 시험기를 사용하여 완전히 상이한 기능들을 지원할 수 있다. 예를 들어, 제조 시험 동안, 시험기는 시험기 내의 프리미티브 서브세트를 사용하여 고정 작업 흐름을 실행할 수 있다. 예를 들어, 제조 작업 흐름은 SSD 드라이브에 바코드를 붙이는 것, 시험하는 것 및 "합격" 또는 "불합격" 태그를 붙이는 것을 포함할 수 있다. 동시에, 엔지니어링 팀의 구성원은 시험 헤드 내의 다른 프리미티브 세트를 사용하여 SATA 드라이브의 불합격 결과를 디버깅하는 것과 같이 전혀 다른 기능을 수행할 수 있다.
상기 시험과 동시에, 제 1 사용자 컴퓨터(10)는 프리미티브(40a)를 통해 복수의 DUT(50a)에 적용하기 위한 엔지니어링 시험 계획을 제어할 수 있다. 엔지니어링 시험 계획은 아직 완료되지 않은 개발 중인 시험 계획일 수 있다. 대안적으로, 엔지니어링 시험 계획은 상이한 프로토콜, 예를 들어, DUT 유형 x 대 DUT 유형 y를 사용하는 상이한 DUT를 시험하기 위한 상이한 유형의 제조 시험 계획일 수 있다. 이 엔지니어링 시험 계획은 제어 서버(30)에 로딩될 수 있고 그 다음에 DUT(50a) 상에서 실행하기 위해 프리미티브(40a)에 다운로드 될 수 있다. 시험 결과는 그 이후 반대 방향으로 통신될 수 있다. 본 예에서, 사용자 컴퓨터(10)는 추후 사용을 위해 현재 프로토타입 하에 있는 시험 계획을 개발하는 시험 엔지니어의 제어하에 있을 수 있다.
일 실시예에서, 사용자 컴퓨터(10 및 20)는 시험 소프트웨어, 예를 들어, Advantest SLATE™ 또는 Advantest Stylus™를 작동시키는 시스템 제어기일 수 있다. 다른 실시예에서, 사용자 컴퓨터(10 및 20)는 통신 네트워크, 예를 들어, IP 네트워크를 통해 서버(525)에 연결된 사용자 단말일 수 있고, 서버(525)는 시험 소프트웨어, 예를 들어, Advantest Stylus™를 작동시키는 시스템 제어기이다.
일 실시예에서, 서버(30)는 모든 연결된 프리미티브에 대한 시험을 모니터링하고 또한 GUI를 사용자에게 제공하는 제어기이다. 다른 실시예들에서, 사용자는 도 3에 도시된 바와 같은 IP 연결을 통해 서버에 연결되고, 서버에 연결된 각 사용자 컴퓨터는 연관된 사용자에게 별도의 GUI를 제공하여 연관된 프리미티브 세트를 제어한다.
일 실시예에서, 서버(30)는 사용자들 사이에서 자원을 할당하는 할당 방식을 실행할 수 있다. 예를 들어, 서버는 사용자의 애플리케이션에 따라 사용자에게 프리미티브를 할당할 수 있다. 일 실시예에서, 서버는 상이한 목적을 위한 상이한 프리미티브를 상이한 사용자에게 동적으로 할당하고 관리할 수 있다. 서버는 또한 서버(30)에 연결된 각 사용자 컴퓨터들과 다양한 프리미티브들(및 이들의 연관 DUT들) 사이의 양방향 통신을 허용한다. 서버는 또한 다양한 연결된 프리미티브에 대해 실행되는 동시 작업 흐름들을 관리하고 연결된 프리미티브 및/또는 시험기 슬라이스에 대한 다양한 작업 흐름들을 추적할 수 있다.
중요하게는, CIM(60)은 시스템(100)의 고수준 기능 및 특징을 제어한다. 예를 들어, CIM(60)은 서버(30)에 대한 시험 계획의 로딩을 제어한다. CIM(60)은 시험 동안 새로운 DUT가 프리미티브에 삽입되는 때를 등록할 수 있고 DUT와 연관된 식별 정보에 기초하여 DUT를 인식할 수 있다. CIM(60)은, 예를 들어, 연결된 프리미티브로부터 정보를 수신하는 서버(30)로부터 새로운 DUT의 로딩에 관한 정보를 수신한다. CIM은 사용자 스테이션 및/또는 제어 서버(30)에 다양한 DUT 파라미터를 제공한다. 이는 CIM이 제어 서버(30)에 전용 DUT 시험 파라미터를 선택적으로 제공할 수 있게 한다.
CIM은 또한 제조 도구(20)에 맞춤화된 GUI 디스플레이 정보를 제공할 수 있다. CIM은 시험 계획 실행을 시작하고 다양한 DUT 상의 시험 계획 실행으로부터 결과를 수신한다. CIM은 시험 결과와 관련하여 비닝(binning) 및 로깅(logging) 기능을 수행할 수 있다. CIM은 시험 결과 데이터를 관련 DUT와 연관시킬 수 있고, 데이터베이스(예를 들어, 추후 참조를 위한 고객 데이터베이스(80))에 데이터를 보관할 수 있는 고객 또는 프로세스에 특정한 플로어 제어 모듈(70)에 그러한 정보를 DUT 단위로 보고할 수 있다. 또한, CIM은 시험 정보가 암호화되는지 여부와 특정 고객의 시험에 사용될 암호화 유형을 제어한다. CIM은 또한 스테이션과 연관된 시험 동안 사용자 스테이션(10 및 20) 상에 디스플레이되는 그래픽 사용자 인터페이스를 제어할 수 있다.
일 실시예에서, CIM은 서버(30) 상에서 작동할 수 있는 API이다. 다른 실시 예에서, CIM은 다른 제어기(또는 컴퓨터) 상에서 작동할 수 있다.
즉, CIM(60)은, l) 어떤 시험 계획이 사용되는지, 2) 사용자 인터페이스가 사용자 스테이션을 통해 어떻게 보고 시험기와 동작하는지와, 3) 새로운 DUT가 후속 공정의 시험 및 제어를 위해 삽입될 때를 처리하는 것, 4) 시험의 시험 결과가 수집되고 저장되는 방법 등에 관하여 시험 시스템(100)의 많은 고수준 기능 및 특징을 제어할 수 있다. 프리미티브 또는 DUT와 통신하기 위해 CIM은 서버(30)를 거쳐야 한다. 예를 들어, 시험을 실행하거나 DUT 상태를 읽기 위해, CIM은 서버(30)를 중개자로 사용해야 한다.
본 발명의 양태들에 따르면, 사용자는 시스템(100)과 연관된 라이브러리(90) 내에서 사용자 코드를 저장하고 API를 사용할 수 있다. 사용자 코드는 CIM 개발자, 예를 들어, 주식회사 아도반테스토가 제공한 정보 및 구문에 기초하여 고객이 개발할 수 있고 그 다음에 라이브러리(90)에 로딩된다. CIM(60)은 사용자 코드 및 사용자 API를 통합하여 특정 고객의 필요에 맞게 자동으로 맞춤화되고 사용자 라이브러리(90)의 콘텐츠에 따라 특정 기능 및 특징을 채택한다. 이러한 방식으로, 본 발명은 CIM(60)을 맞춤화하기 위한 자동 메커니즘을 효과적으로 제공하고, 이는 CIM(60)이 각 고객의 요구사항에 대해 수동으로 재작성되고 재설계될 필요를 제거한다. 이는 새로운 CIM을 개발하기 위한 소요 시간을 증가시키고 CIM 수정으로 인한 소프트웨어 비용 및 오류를 또한 감소시킨다.
본 발명의 실시예의 이점은 CIM을 특정 고객의 시험 요구사항 및 요구되는 특징으로 맞춤화하기 위한 더욱 간소화되고 자동화된 더욱 쉬운 메커니즘을 포함한다. 따라서, DUT의 대량 시험과 관련하여 시험 처리량이 빨라지고 비용 및 복잡성이 줄어든다. 다른 이점은 고도로 숙련된 프로그래밍 전문가와 설계자가 반드시 CIM을 맞춤화해야 하는 것은 아니라는 점을 포함한다.
종래 시험기 시스템에서는, 시험기의 고수준 기능 및 특징을 제어하는 API는 전술된 바와 같이 각 사용자의 필요를 위해 수동으로 재기록되고 재설계될 필요가 있다. 본 발명의 실시예들의 API, 예를 들어, CIM은 고객이 자신의 목적에 부합하도록 사소하거나 중요한 방식으로 맞춤화할 수 있는 각 고객에 대한 표준화된 생산 흐름을 제공함으로써 그러한 필요성을 제거한다. 예를 들어, 대부분의 고객은 생산 흐름 내의 다양한 파라미터에 대해 비슷한 요구 사항, 예를 들어, 시험 프로그램을 로딩해야 하는 방법 및 위치, 시험 프로그램이 시작하는 위치, 오류 발생시 출력될 경고 유형, 사용자에게 DUT를 삽입할 위치를 보여줄 표시기의 유형 등을 갖는다. 그러나, 특정 고객은 작거나 큰 변경을 생산 흐름의 디폴트 거동으로 만들기 원할 수도 있다.
본 발명의 실시예들은 각각의 고객의 필요에 맞게 맞춤화될 수 있는 표준화 된 인터페이스(예를 들어, CIM)를 제공함으로써 대부분의 고객에 대해 유사한 프로세스 요구 사항을 이용한다. 이는 고객의 필요에 기초하여 각 고객을 위한 맞춤형 API를 개발하는 고되고 힘든 과정을 대체한다. 이는 각 사용자가 독점 생산 흐름을 위한 새로운 API 또는 코드를 개발하는 자원을 소비하지 않으면서 디폴트 생산 흐름의 독점 구성을 가질 수 있게 한다.
CIM은 모든 고객에 대해 디폴트 거동을 제공하지만 특수 사용자 라이브러리에 저장되는 사용자 코드 및 사용자 API를 또한 유리하게 수락한다. 즉, 디폴트 생산 흐름은 자신만의 사전 프로그래밍된 사용자 라이브러리 세트에 액세스한다. 그러나, CIM의 디폴트 생산 흐름은 디폴트 거동과 다르게 생산 흐름을 구성할 수 있는 특수 사용자 제공형 라이브러리에 액세스하기 위해 개별 사용자에 의해 맞춤화될 수 있다. 따라서, CIM은 사용자에 의한 일부 루틴 맞춤화를 허용하고 완전한 사용자 정의 기능을 허용하는 프레임워크를 제공한다.
CIM에 의해 제공되는 디폴트 프레임워크는 모든 고객에게 적용될 수 있는 디폴트 생산 흐름을 포함한다. 그러나, 특수 요구사항을 갖는 임의의 고객은 디폴트 생산 흐름을 자신만의 생산 흐름에 고유한 단계들을 추가, 편집, 또는 삭제하도록 맞춤화할 수 있다.
전술된 바와 같이, 사용자 코드 및 사용자 API는 CIM 내에 자동으로 통합되는 방식으로 기록되고 이로써 CIM을 고객의 특정 제조 프로세스, GUI 디스플레이 요구사항, 및 DUT에 맞춤화하도록 CIM의 동작 및 기능 및 특징을 변경한다. CIM은 고객이 제공한 사용자 코드 및 사용자 API에 의해 자동으로 변경되는 방식으로 개발되기 때문에, CIM은 맞춤화하기가 훨씬 쉽고 수정 오류가 적게 발생하며 훨씬 적은 시간과 비용으로 맞춤화될 수 있다.
예를 들어, 사용자 스테이션(20)(제조 도구)의 고객은 그들의 생산 흐름에서 시험이 수행되는 방식을 구성하기 위해 API(예를 들어, CIM)를 사용할 수 있다. CIM의 디폴트 생산 흐름은 사용자가 DUT를 프리미티브에 삽입할 때 시험 시스템에 빨간색 LED를 디스플레이하도록 구성될 수 있다. 고객이 빨간색 LED를 깜박거리는 광으로 변경하도록 CIM을 맞춤화하기 원한다면, 고객은 깜박거리는 광을 대신 디스플레이하도록 CIM을 변경하는 API 또는 사용자 코드를 사용하여 쉽게 맞춤화할 수 있다. 이는 새로운 고객이 자신의 생산 흐름을 디폴트 CIM와 쉽게 통합할 수 있게 한다. 따라서, 본 발명의 실시예들은 새로운 고객이 자신의 생산 흐름을 처리하기 위해 자신의 사용자 코드 및 API를 개발해야 하는 힘든 과정을 유리하게 우회한다.
일례에서, 고객은 프리미티브(40a 또는 40b) 내의 팬의 거동을 제어할 필요가 있을 수 있다. 서버(30)가 시작될 때, 팬은 전형적으로 디폴트 속도 및 디폴트 온도 제어로 설정될 것이다. 본 발명의 실시예들은 사용자가 생산 흐름의 디폴트 동작의 일부일 수 있는 디폴트 팬 속도 및 온도 제어 루틴을 상이한 속도로 변경할 수 있게 한다. 예를 들어, 사용자는 (후술될 SLATE™ 인터페이스를 사용하여) 제조 도구(20) 상의 GUI를 사용하여 팬 속도를 변경할 수 있다. 사용자는 CIM을 맞춤화하고 새로운 팬 속도 및 온도 제어를 맞춤화된 CIM에 통합할 수 있다. 예를 들어, 사용자는 팬 속도를 이벤트에 의존적으로 만들 수 있는데, 예를 들어, 시험이 시작될 때 팬이 높게 회전하고 시험이 종료될 때 팬이 낮게 회전할 수 있다.
또 다른 예에서, 새로운 고객은 CIM의 일부인 디폴트 생산 흐름을 사용하려고 할 수 있지만 디폴트 CIM 수준에서 노출되기를 원하지 않는 기밀 데이터에 대해 특정 보안 조치를 취해야 할 수 있다. 전술된 바와 같이, 또한 CIM은 시험 정보가 암호화되는지 여부 및 특정 고객의 시험에 사용될 암호화 유형을 제어한다. 새로운 고객은 고객에게 맞춰진 특정 암호화 유형을 사용하도록 CIM을 맞춤화할 수 있다. 즉, 새로운 고객은 CIM의 디폴트 거동을 변경하여 디폴트 암호화 거동을 고객 특정 암호화 체계로 대체하는 사용자 특정 라이브러리(라이브러리(90)에 저장됨)에 액세스할 수 있다. 따라서, 본 발명의 실시예들은 고객이 CIM을 맞춤화할 수 있게 하여 고객의 시험 데이터가 사용자 특정 암호화 기법을 사용하여 암호화된 상태를 유지한다.
다른 예에서, 신규 고객은 셋 업 동안 제조 도구(20)와 프리미티브(40b) 사이에서 교환되는 디폴트 정보를 변경하기를 원할 수 있다. 예를 들어, 고객은 원래 생산 흐름의 일부가 아닌 셋 업 동안 프리미티브(40b)에 관한 약간의 추가 정보가 필요할 수 있다. 본 발명의 실시예들은 유리하게는 고객이 프리미티브(40b)로부터 추가 정보를 획득하기 위해 (라이브러리(90) 내에 저장된) 사용자 특정 라이브러리를 사용하여 디폴트 생산 흐름을 변경할 수 있게 한다. CIM(60)은 라이브러리(90)에 저장된 사용자 코드 및 사용자 API를 통합하여 특정 고객의 필요에 자동으로 맞춤화되고 사용자 라이브러리(90)의 콘텐츠에 따라 특정 기능 및 특징을 채택한다.
전술한 바와 같이, CIM은 또한 시험 결과 데이터를 관련 DUT와 연관시킬 수 있고, 이 정보를 추후 참조를 위해 고객 데이터베이스(80)에 데이터를 보관할 수 있는 고객 또는 프로세스 특정 플로어 제어 모듈(70)에 DUT 단위로 보고할 수 있다. 예로써, 고객은 플로어 제어 모듈(70)의 일부인 독점 정보 또는 프로세스를 가질 수 있다. 고객은 시험하는 동안 DUT로부터 더 많은 정보를 얻기 위해 디폴트 생산 흐름을 변경하기 원할 수도 있다. 고객은 DUT(50b)와 플로어 제어 모듈(70) 사이의 데이터 교환을 보다 면밀하게 관리하기 위해 (CIM 라이브러리(60)에 액세스를 허용하는) 제조 도구(20)를 사용하여 디폴트 생산 흐름을 수정할 것이다. 또한, 고객은 개별 DUT 처리를 관리할 수 있고, 이로써 고객이 각 DUT의 시험 및 처리를 더 많이 제어할 수 있게 한다. 예를 들어, 고객은 DUT 상에서 그리고 시험 프로그램 내에서 특정 시험 프로그램을 실행하도록 CIM을 수정할 수 있고, 특정 시험 흐름을 DUT 상에서 실행하고 시험 결과를 플로어 제어 모듈(70)에 다시 제공하기 원할 수 있다. 디폴트 생산 흐름에 대한 고객 수정은 시험 프로세스의 결과에 기초한 결정을 포함할 수도 있다. 또한, CIM은 고객이 디폴트 생산 흐름에 대한 수정사항에 대하여 의사 결정 단계를 프로그래밍할 수 있게 한다.
CIM은 새로운 DUT가 시험 및 임의의 후속 처리를 위해 삽입될 때 발생하는 처리를 더 잘 제어할 수 있다. 또한, CIM은 시험의 시험 결과가 수집되고 저장되는 방식을 수정할 수 있다. 고객은 또한 플로어 제어 모듈(70)의 일부인 독점 정보를 보호하기 위해 데이터를 암호화하도록 선택할 수 있다.
제조 도구(20)는 디폴트 서비스 제공자 소프트웨어, 예를 들어, 대용량 생산 환경에서 비동기식 단일 DUT 시험을 위해 최적화된 MPT3000HVM 제품용 SLATE™ 인터페이스(Advantest Stylus™ 소프트웨어 패키지의 일부)를 전형적으로 포함할 것이다. 제조 도구(20)는 또한 고객에 의해 구성되고 고객에게 독점적인 보조 고객 특정 API 또는 프로세스를 포함할 것이다. CIM은 디폴트 생산 흐름 및 고객 특정 API를 포함하는 서비스 제공자 소프트웨어와 제조 도구(20) 상에서 실행 중인 프로세스 사이에서 다리 역할을 한다. 즉, CIM는 디폴트 생산 흐름을 실행하는 소프트웨어가 제조 도구(20)의 상의 고객 특정 맞춤화와 통합될 수 있게 한다.
CIM은 또한 제조 도구(20)에 맞춤화된 GUI 디스플레이 정보를 제공할 수 있다. 다시 말해, 고객은 CIM을 맞춤화하여 디폴트 서비스 제공자의 GUI, 예를 들어, SLATE™ 인터페이스 소프트웨어가 나타나는 방식을 변경할 수 있다. 고객은 그들의 특정 생산 흐름 및 임의의 관련 메시지 또는 고객에 특정한 사용자에 대한 주문으로 GUI를 맞춤화할 수 있다. 다시 말해, CIM은 사용자 인터페이스가 보이고 사용자 스테이션(20)을 통해 시험기를 사용하여 동작하는 방식에 대한 변경을 허용한다. GUI의 맞춤화는 사용자 특정 맞춤화가 디폴트 서비스 공급자 소프트웨어와 통합될 수 있게 하는 CIM의 결과로서 다시 가능하다.
도 4는 본 발명의 실시예들에 따라 CIM이 동작하는 예시적인 시험 환경에 관한 다른 고수준 아키텍처 개요를 도시한다.
도 4에 도시된 바와 같이, 사용자는 시험기 소프트웨어, 예를 들어, SLATE™의 GUI(420)와 상호 작용한다. 예를 들어, 도 3의 제조 도구(20)는 GUI(420)로 시험기 소프트웨어를 실행할 수 있다. 제조 도구(20)는 시험기 소프트웨어, 예를 들어, SLATE™을 사용하여 고객에게 맞춤화를 제공하고 서버(도 3의 서버(30)에 대응함)를 통해 기본 시험기 자원 및 프로세스에 액세스할 수 있다. 사용자는 GUI(420)로부터 CIM(469)을 등록, 실행 또는 중지하기 위한 커맨드를 입력할 수 있다. 전술한 바와 같이, CIM(469)은 작업 흐름 명령어를 사용하여 GUI(420)에 맞춤화된 GUI 디스플레이 정보를 제공할 수 있다.
또한, GUI를 사용하는 제조 도구(20)는 서버(430)에 UI 커맨드를 송신할 수 있다. 제조 도구(20)는 서버(430)를 사용하여 기본 시험기 자원, 예를 들어, 프리미티브 및 프로세스에 액세스할 수 있다.
고객은 도 4에 도시된 CIM을 고객 CIM 동적 링크 라이브러리(Dynamic Link Library: DLL)(470)로 수정할 수 있다. 고객 생성 코드 또는 API는 CIM 개발자가 제공한 정보 및 구문에 기초하여 고객이 개발하고 그 다음에 라이브러리(90)에 로딩될 수 있다(도 3 참조). 그 이후 CIM(469)은 사용자 코드 및 사용자 API를 통합하여 특정 고객의 필요에 자동으로 맞춤화되고 사용자 라이브러리(90)의 콘텐츠에 따라 특정된 기능 및 특징을 채택한다. 고객 수정은 생산 서버(473)에 의해 검증된 유효 DLL(472)을 생성한다. 일 실시예에서, 라이브러리(90)는 DLL(472)과 대응한다.
전술한 바와 같이, CIM(469)은 서버(430)에 대한 시험 계획의 로딩을 제어한다. CIM(469)은 시험 중에 새로운 DUT가 프리미티브에 삽입될 때 등록할 수 있으며 DUT와 연관된 식별 정보에 기초하여 DUT를 인식할 수 있다. CIM(469)은, 예를 들어, 연결된 프리미티브로부터 정보를 수신하는 서버(430)로부터 새로운 DUT의 로딩에 관한 정보를 수신한다. CIM은 사용자 스테이션 및/또는 제어 서버(430)에 다양한 DUT 파라미터를 제공한다. 이는 CIM이 제어 서버(430)에 특별한 DUT 시험 파라미터를 선택적으로 제공할 수 있게 한다. CIM은 또한 서버(30)에 커맨드를 송신하여 특정 프리미티브를 선택하거나 또는 특정 DUT를 실행한다. DUT 상의 시험 흐름은 GUI(420) 또는 CIM(469)으로부터 시작될 수 있지만, 프리미티브(primitive)로의 정보 흐름의 편집은 항상 서버(430)를 사용하여 발생한다.
고객은 고객 특정 코드를 사용하여 임의의 특징을 맞춤화하도록 디폴트 생산 흐름을 수정하고 이를 고객 CIM DLL(470)을 사용하여 CIM(469)에 통합할 수 있다. 서버(430)가 시험기 자원, 예를 들면, 프리미티브에 액세스하고 이용하기 위한 일부 기능을 제공하는 동안, CIM은 서버(430)의 디폴트 기능을 다른 방식으로 사용하거나 디폴트 생산 흐름에 추가하거나 그 대신에 다른 시험 흐름을 실행할 수 있는 맞춤화가 이뤄지게 한다.
도 5는 본 발명의 실시예에 따라 CIM의 디폴트 생산 흐름을 수정한 고객을 위한 예시적인 작업 명령 시퀀스를 도시한다. 도 5의 작업 명령 시퀀스는 고객이 그들의 고유한 시험 프로세스의 필요에 적합하도록 CIM(569)에 대해 행할 수 있는 몇 가지 예시적인 수정을 도시한다. 예를 들어, 고객은 "작업 명령 시작(startWorkOrder)" 시퀀스(580)로 도시된 특정 작업 명령을 시작하는 버튼을 갖는 제조 도구(520)(SLATE™ 소프트웨어를 포함함)에서 GUI를 수정할 수 있다. 고객이 GUI 내의 적절한 작업 버튼을 누름으로써 특정 작업 명령을 개시할 때, CIM는 이어서 고객 인터페이스(예를 들어, 도 3의 플로어 제어 모듈(70))에 작업 명령의 시작을 보고하는 통보를 받는다. 이는 도 5에서 "초기화" 시퀀스(581)로 도시된다.
도 5의 예에서, 고객은 DUT를 포함하는 생산 플로어 상의 모든 수신함의 일련번호 및 바코드 데이터를 스캔하기 위해 CIM을 수정할 수 있다. 이는 작업 명령이 하나 또는 여러 바코드 번호와 연관되어 있는지에 관하여 고객에게 통보하는 것일 수 있다. 본 예의 바코드 스캐너는 서버(530)에 연결될 수 있다. 수정된 CIM은 서버(530)와 통신하여 시퀀스(582) 동안 바코드 데이터를 획득하고, 이어서 CIM은 바코드 데이터를 시퀀스(583) 동안 GUI에 다시 보고하도록 또한 수정된다.
유사하게, 시퀀스(584)는 작업 명령 정보를 설정하기 위한 고객의 수정이다. 고객은 시퀀스(583과 584) 사이에서 GUI를 수정하여 작업 명령에 관한 일부 정보를 입력할 수 있다. 작업 명령 정보는 시퀀스(584) 동안 설정되고 검증된다. 그 이후 CIM은 시퀀스(585) 동안 검증된 작업 명령에 대한 시험 계획 데이터를 획득한다. (또한, 시퀀스(585)와 함께, 사용자가 ThermalControl DLL 사용을 선택하면 사용자는 열 알고리즘 및 열 설정 점을 특정할 수도 있다.) CIM은 고객이, 예를 들어, 플로어 제어 모듈(70)(도 3에 도시됨)을 통해 시험 계획을 입력하게 할 수 있다. 시퀀스(586) 동안 작업 명령이 설정되고 GUI에 보고된다. 시험될 DUT는 시퀀스(587) 동안 CIM에 의해 검증되고, DUT에서 실행될 시험 흐름 이름은 플로어 제어 모듈(70)로부터 획득된다.
유사하게, 도 5의 각 시퀀스는 고객이 CIM의 디폴트 생산 흐름에 대해 작성한 수정에 관한 일례이다. 예를 들어, 시퀀스(572)는 CIM(469)가 시험 계획 데이터를 설정하기 위해 서버(430)와 통신하는 것을 포함하고, 시퀀스(573)는 CIM(469)가 DUT와의 연결을 수립하기 위해 서버(430)와 통신하는 것을 포함하며, 시퀀스(574)는 CIM(469)이 GUI에 이벤트를 보고하는 것을 포함한다.
도 6은 본 발명의 실시예들에 따라 고객이 CIM의 디폴트 생산 흐름을 수정할 수 있는 방법을 도시하는 예시적인 상태도를 도시한다. 도 6은 특정 상태에서 생산 흐름에 대한 특정 맞춤화가 허용되는 고객을 위한 디폴트 생산 흐름을 도시한다. 예를 들어, 아래에서 더 자세히 설명되는 바와 같이, 상태(622)(작업 명령 맞춤화) 및 상태(623)(DUT 맞춤화)는 고객을 위한 통합점을 제공하며, 여기서 CIM에 대한 수정은 디폴트 CIM에 의해 제공된 표준 생산 흐름의 맞춤화를 가능하게 한다. 다시 말해, 상태(622, 623)는 고객이 생산 작업 흐름을 입력하고 그것을 고객의 특별한 필요에 기초하여 맞춤화하는 진입점 상태(entry-point state)이다.
따라서, 임의의 다른 상태에서 행해진 임의의 고객 수정은 상태(622 또는 623)를 거쳐야 할 필요가 있다. 예를 들어, 사용자가 상태(603)에서 시험 계획을 다운로드하는 것과 관련된 일부 절차를 수정하기를 원하는 경우, 맞춤화 통합 프로세스는 사용자를 다시 상태(622)로 링크할 것이다. 유사하게, 사용자가 시험 사이트의 선택(예를 들어, 프리미티브의 선택)과 관련된 일부 절차를 수정하기 원하면, 사용자는 상태(623)에 다시 링크되어야 할 것이다.
작업 명령이 준비되고 처리된 이후, 작업 명령과 관련된 이벤트가 더 이상 없고, 그 대신 CIM은 특정 DUT와 관련된 이벤트를 처리하기 시작한다. 따라서, 상태(622)는 작업 명령 처리와 관련된 임의의 수정을 어드레스하고, 상태(623)는 DUT 처리와 관련된 임의의 수정을 어드레스한다. 상태(622 및 623)는 작업 명령 처리 및 DUT 처리가 각각 수행되는 CIM을 수정하는 고객을 위한 주요 통합 포인트이다. 그러나, 다른 상태들 또한 사용자가 맞춤화 통합 상태들(예를 들어, 622 및 623)로 돌아가서 추가 구성을 수행할 수 있게 하는 인터셉트 포인트를 제공한다.
상태(601)에서, 작업 명령에 대한 데이터, 예를 들어, 바코드, DUT의 일련 번호 등이 스캔되고 작업 명령이 준비된다. (상태 601은 대략 도 5의 시퀀스들(580 내지 584)과 대응할 수 있다). 예를 들어, 작업 명령은 SATA 디스크 드라이브의 버켓과 연관된 부품 번호를 스캔하고 시험하는 것을 포함할 수 있다. 스캐닝된 데이터는 다음 상태인 작업 명령 맞춤화(Customize Workorder)(622)로 전달된다. 전술한 바와 같이, 상태(622)(작업 명령 맞춤화)는 고객에 의한 작업 명령 처리와 관련된 수정을 허용한다. 맞춤화에 후속하여, 상태(602)에서, 시험될 DUT를 포함하는 프리미티브가 선택(또는 로딩)된다. 이때, 고객이 프리미티브 설정에 일부 수정을 해야 하는 경우, CIM은 고객이 인터셉트 포인트에서 상태(622)로 돌아가서 이 맞춤화를 수행할 수 있게 한다.
상태(603)에서, 상태(622) 동안 사용자에 의해 표시된 시험 프로그램은 프리미티브에 다운로드 된다. 상태(602)와 유사하게, 고객은 임의의 수정을 하기 위해 여기서 인터셉트 포인트를 또한 제공받는다. 상태(604)에서, DUT 바코드가 스캔되고, 사용자는 상태(622)로 되돌아 와서 이 프로세스에 대한 맞춤화를 행하는 옵션을 갖는다. 작업 명령을 설정하고 처리하는 각 상태에서, 사용자는 상태(622)로 돌아감으로써 맞춤화를 행할 수 있다.
작업 명령이 처리되면, DUT 바코드가 스캔된 후 상태(604) 다음에 개별 DUT 시험 맞춤화가 시작된다. DUT 바코드가 상태(604)에서 성공적으로 스캔되면, 생산 흐름은 상태(623)로 진행하고, 아니면 부정확한 장치가 스캔되거나 스캔이 실패하면 상태(604)로 돌아간다. 예를 들어, 사용자는 초기 작업 명령의 일부가 아니거나 작업 명령의 일부로 시험해야 하는 장치의 트레이 내에서 잘못 배치되었을 수도 있는 장치를 스캔할 수 있다. 다시 말해, 장치는 상태(601) 동안 스캔된 버킷의 부품 번호와 관련이 없는 일련번호를 가질 수 있다. 이러한 경우, 오류 메시지가 사용자에게 GUI 상에 표시되고 생산 흐름이 상태(604)로 돌아간다.
상태(623)에서, 사용자는 DUT 처리와 관련된 맞춤화를 행할 수 있다. 상태(605)에서, 시험 사이트, 예를 들어, 프리미티브가 선택된다. 시험 사이트 선택은 고객에게 시험 사이트 선택을 맞춤화할 기회를 고객에게 제공할 수 있는데, 예를 들어, 고객은 시험기가 DUT를 로드하도록 준비될 때 특정 색상의 광을 디스플레이하기 원할 수 있다. 다시, 맞춤화를 수행하기 위해, 상태(605)는 상태(623)로 돌아가는 인터셉션 포인트를 제공한다.
상태(606)에서, DUT가 검출된다. 고객은 DUT 검출과 관련된 특정 맞춤화를 행해야 할 수도 있는데, 예를 들어, 고객이 DUT가 검출되었음을 사용자에게 알리는 GUI 메시지를 원할 수도 있다. 다시, 맞춤화를 수행하기 위해, 상태(606)는 상태(623)로 돌아가는 인터셉션 포인트를 제공한다. DUT가 검출되면, DUT 데이터는 서버(430) 및 GUI(420)에 전송되고 사이트 디스플레이는 DUT 데이터에 따라 GUI에서 변경된다. 마지막으로, 상태(607)에서, DUT가 시험될 수 있다.
도 7은 본 발명의 실시예들에 따라 시험기를 제어하기 위한 애플리케이션 프로그래밍 인터페이스(API)를 수정하기 위한 예시적인 컴퓨터로 구현된 프로세스에 관한 흐름도를 도시한다.
단계(702)에서, 애플리케이션 프로그래밍 인터페이스, 예를 들어, CIM이 시험기 상에서 생산 흐름을 실행하도록 프로그래밍된다. 즉, CIM(60)은 1) 어떤 시험 계획이 사용되는지, 2) 사용자 인터페이스가 사용자 스테이션을 통해 시험기와 어떻게 보이고 동작하는지, 3) 후속 프로세스를 시험하고 제어하기 위해 새로운 DUT가 삽입될 때의 처리, 4) 어떻게 시험의 시험 결과가 수집되고 저장되는지 등과 관련하여 시험 시스템(100)의 많은 고수준 기능 및 특징을 제어한다.
전술한 바와 같이, CIM(60)은 시스템(300)의 고레벨 기능 및 특징을 제어한다. 예를 들어, 일 실시예에서, CIM(60)은 서버(30)에 시험 계획을 로딩하는 것을 제어한다. 다른 실시예에서, CIM(60)은 시험 동안 새로운 DUT가 프리미티브에 삽입되는 시기를 감지하고 DUT와 연관된 식별 정보에 기초하여 DUT를 인식할 수 있다. 또 다른 실시예에서, CIM은 사용자 스테이션 및/또는 제어 서버(30)에 다양한 DUT 파라미터를 제공한다. 이는 CIM이 제어 서버(30)에 특수 DUT 시험 파라미터를 선택적으로 제공할 수 있게 한다.
일 실시예에서, CIM은 또한 제조 도구(20)에 맞춤화된 GUI 디스플레이 정보를 제공할 수 있다. 또한, 일 실시예에서, CIM은 시험 계획 실행을 개시할 수 있고 또한 다양한 DUT에 대한 시험 계획의 실행으로부터 결과를 수신한다. 또한, 일 실시예에서, CIM은 시험 결과에 대하여 비닝 및 로깅 기능을 수행할 수 있다. 다른 실시예에서, CIM은 시험 결과 데이터를 관련 DUT와 연관시킬 수 있고, 이 정보를 고객 또는 추후 참조를 위해 고객 데이터베이스(80)에 데이터를 보관할 수 있는 프로세스 특정 플로어 제어 모듈(70)에 DUT 단위로 보고할 수 있다.
단계(704)에서, CIM은 사용자 특정 프로세스를 실행하기 위해 생산 흐름을 수정하도록 구성될 수 있다. 본 발명의 양태들에 따르면, 사용자는 시스템(100)과 연관된 라이브러리(90) 내에 사용자 코드를 저장하고 API를 사용할 수 있다. 사용자 코드는 CIM 개발자가 제공한 정보 및 구문에 기초하여 고객이 개발한 다음 라이브러리(90)에 로딩될 수 있다.
마지막으로, 단계(706)에서, 수정은 CIM과 통합되어 특정 사용자에게 맞춤화된 API를 제공한다. CIM(60)은 사용자 코드 및 사용자 API를 통합하여 특정 고객의 필요에 자동으로 맞춤화되고 사용자 라이브러리(90)의 콘텐츠에 따라 특정 기능 및 특징을 채택한다. 이러한 방식으로, 본 발명의 실시예들은 CIM(60)을 맞춤화하기 위한 자동 메커니즘을 효과적으로 제공하여 CIM(60)이 수동으로 재기록되고 각각의 고객의 요구에 맞게 재설계될 필요를 없앤다.
전술한 설명은 설명을 목적으로 특정 실시예를 참조하여 설명되었다. 그러나, 전술한 예시적인 논의는 본 발명을 완전한 것으로 여기거나 개시된 정확한 형태로 제한하고자 하는 것이 아니다. 전술한 내용을 고려하여 많은 수정 및 변형이 가능하다. 실시예들은 본 발명의 원리 및 그 실제 응용을 가장 잘 설명하기 위해 선택되고 설명됨으로써, 다른 당업자가 특정 용도에 적합할 수 있는 다양한 수정과 함께 본 발명 및 다양한 실시예를 가장 잘 이용할 수 있게 한다.

Claims (21)

  1. 자동화된 시험 장비(automated test equipment: ATE)를 사용하여 시험을 수행하기 위한 방법으로서,
    시험기 상의 디폴트 생산 흐름을 제어하도록 애플리케이션 프로그래밍 인터페이스(API)를 프로그래밍하는 단계 - 상기 생산 흐름은 상기 시험기에 연결된 피시험 장치(DUT) 상에서 시험을 실행하는 것과 연관된 복수의 시험 시퀀스를 포함함 - 와,
    사용자 특정 API에 따라 상기 복수의 시험 시퀀스를 맞춤화하기 위해 상기 디폴트 생산 흐름을 수정하도록 상기 API를 구성하는 단계 - 상기 사용자 특정 API는 사용자의 시험 요구사항에 따른 상기 생산 흐름에 대한 수정을 포함함 - 와,
    상기 사용자에 대해 상기 API를 맞춤화하도록 상기 사용자 특정 API를 상기 API와 통합하는 단계를 포함하는
    ATE를 사용한 시험 수행 방법.
  2. 제 1 항에 있어서,
    상기 API는 그래픽 사용자 인터페이스를 실행하는 컴퓨팅 장치 및 서버에 통신 가능하게 결합되고, 상기 서버 및 상기 그래픽 사용자 인터페이스를 통해 상기 생산 흐름을 제어하는
    ATE를 사용한 시험 수행 방법.
  3. 제 1 항에 있어서,
    상기 사용자 특정 API는 상기 API와 통신 가능하게 결합된 사용자 라이브러리에 저장되도록 동작 가능한
    ATE를 사용한 시험 수행 방법.
  4. 제 1 항에 있어서,
    상기 생산 흐름에 대한 수정은 상기 사용자에게 특정한 시험 동안 상기 DUT로부터 추가 시험 데이터를 수집하는 것을 포함하는
    ATE를 사용한 시험 수행 방법.
  5. 제 4 항에 있어서,
    상기 추가 시험 데이터는 사용자 특정 플로어 제어 모듈에서 상기 사용자에게 보고되고, 상기 플로어 제어 모듈은 사용자의 생산 플로어 상의 서버를 포함하며, 상기 플로어 제어 모듈은 상기 추가 데이터를 보관하도록 동작 가능한 데이터베이스와 통신 가능하게 결합되는
    ATE를 사용한 시험 수행 방법.
  6. 제 5 항에 있어서,
    상기 플로어 제어 모듈은 상기 사용자 및 상기 DUT 상의 시험 실행과 관련된 소유 정보를 포함하는
    ATE를 사용한 시험 수행 방법.
  7. 제 1 항에 있어서,
    상기 복수의 시험 시퀀스는, 서버에 시험 계획을 로딩하는 것, DUT와 연관된 식별 정보에 기초하여 상기 DUT가 프리미티브에 삽입됨을 인식하는 것, DUT 파라미터를 사용자 스테이션 및 상기 서버에 제공하는 것, 맞춤형 GUI 디스플레이를 사용자에게 제공하는 것, 시험 계획 실행을 개시하는 것, DUT 상에서 상기 시험 계획을 실행한 결과를 수신하는 것, 및 시험 결과의 비닝(binning) 및 로깅(logging)을 수행하는 것으로 구성된 그룹으로부터 선택된 동작을 수행하도록 상기 사용자 특정 API에 따라 맞춤화되도록 동작 가능한
    ATE를 사용한 시험 수행 방법.
  8. 제 1 항에 있어서,
    상기 복수의 시험 시퀀스는 피시험 장치(DUT) 상에서 시험을 실행하는 것과 관련된 정보를 암호화하도록 상기 사용자 특정 API에 따라 맞춤화되도록 동작 가능한
    ATE를 사용한 시험 수행 방법.
  9. 컴퓨터 판독가능 프로그램 코드가 포함된 비일시적 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 판독가능 프로그램 코드는, 컴퓨터 시스템으로 하여금 자동화된 시험 장비(ATE)를 사용하여 시험을 수행하기 위한 방법을 수행하게 하되,
    상기 방법은,
    시험기 상의 디폴트 생산 흐름을 제어하도록 애플리케이션 프로그래밍 인터페이스(API)를 프로그래밍하는 단계 - 상기 생산 흐름은 상기 시험기에 연결된 피시험 장치(DUT) 상에서 시험을 실행하는 것과 연관된 복수의 시험 시퀀스를 포함함 - 와,
    사용자 특정 API에 따라 상기 복수의 시험 시퀀스를 맞춤화하도록 상기 디폴트 생산 흐름을 수정하도록 상기 API를 구성하는 단계 - 상기 사용자 특정 API는 사용자의 시험 요구사항에 따른 상기 생산 흐름에 대한 수정을 포함함 - 와,
    상기 사용자에 대해 상기 API를 맞춤화하도록 상기 사용자 특정 API를 상기 API와 통합하는 단계를 포함하는
    컴퓨터 판독가능 매체.
  10. 제 9 항에 있어서,
    상기 API는 그래픽 사용자 인터페이스를 실행하는 컴퓨팅 장치 및 서버에 통신 가능하게 결합되고, 상기 서버 및 상기 그래픽 사용자 인터페이스를 통해 상기 생산 흐름을 제어하는
    컴퓨터 판독가능 매체.
  11. 제 9 항에 있어서,
    상기 사용자 특정 API는 상기 API와 통신 가능하게 결합된 사용자 라이브러리에 저장되도록 동작 가능한
    컴퓨터 판독가능 매체.
  12. 제 9 항에 있어서,
    상기 생산 흐름에 대한 수정은 상기 사용자에게 특정한 시험 동안 상기 DUT로부터 추가 시험 데이터를 수집하는 것을 포함하는
    컴퓨터 판독가능 매체.
  13. 제 12 항에 있어서,
    상기 추가 시험 데이터는 사용자 특정 플로어 제어 모듈에서 상기 사용자에게 보고되고, 상기 플로어 제어 모듈은 사용자의 생산 플로어 상의 서버를 포함하며, 상기 플로어 제어 모듈은 상기 추가 데이터를 보관하도록 동작 가능한 데이터베이스와 통신 가능하게 결합되는
    컴퓨터 판독가능 매체.
  14. 제 13 항에 있어서,
    상기 플로어 제어 모듈은 사용자 관련 소유 정보를 포함하는
    컴퓨터 판독가능 매체.
  15. 제 9 항에 있어서,
    상기 복수의 시험 시퀀스는, 서버에 시험 계획을 로딩하는 것과, DUT와 연관된 식별 정보에 기초하여 상기 DUT가 프리미티브에 삽입됨을 인식하는 것, 사용자 스테이션 및 서버에 DUT 파라미터를 제공하는 것, 맞춤형 GUI 디스플레이를 사용자에게 제공하는 것, 시험 계획 실행을 개시하는 것, DUT 상에서 상기 시험 계획을 실행한 결과를 수신하는 것, 및 시험 결과의 비닝 및 로깅을 수행하는 것으로 구성된 그룹으로부터 선택된 동작을 수행하도록 상기 사용자 특정 API에 따라 맞춤화되도록 동작 가능한
    컴퓨터 판독가능 매체.
  16. 제 9 항에 있어서,
    상기 복수의 시험 시퀀스는 피시험 장치(DUT) 상에서 시험을 실행하는 것과 관련된 정보를 암호화하도록 상기 사용자 특정 API에 따라 맞춤화되도록 동작 가능한
    컴퓨터 판독가능 매체.
  17. 자동화된 시험 장비(ATE)를 사용하여 시험을 수행하기 위한 시스템으로서,
    복수의 프리미티브에 통신 가능하게 결합된 서버 - 상기 복수의 프리미티브의 각각은 복수의 DUT를 포함함 - 와,
    그래픽 사용자 인터페이스(GUI)를 작동시키는 제 1 컴퓨팅 장치 - 상기 컴퓨팅 장치는 상기 서버에 통신 가능하게 결합되고, 상기 그래픽 사용자 인터페이스는 사용자가 상기 복수의 프리미티브에 액세스할 수 있게 함 - 와,
    상기 서버 및 상기 제 1 컴퓨팅 장치와 통신 가능하게 결합된 제 2 컴퓨팅 장치를 포함하되,
    상기 제 2 컴퓨팅 장치는,
    디폴트 생산 흐름을 제어하도록 애플리케이션 프로그래밍 인터페이스(API)를 프로그래밍 - 상기 생산 흐름은 상기 서버에 연결된 상기 DUT의 시험을 실행하는 것과 연관된 복수의 시험 시퀀스를 포함함 - 하고,
    사용자 특정 API에 따라 상기 복수의 시험 시퀀스를 맞춤화하도록 상기 디폴트 생산 흐름을 수정하도록 상기 API를 구성 - 상기 사용자 특정 API는 사용자의 시험 요구사항에 따른 상기 생산 흐름에 대한 수정을 포함함 - 하며,
    상기 사용자에 대해 상기 API를 맞춤화하도록 상기 사용자 특정 API를 상기 API와 통합하도록 구성된
    ATE를 이용한 시험 수행 시스템.
  18. 제 17 항에 있어서,
    상기 GUI는 상기 GUI를 사용하여 상기 디폴트 생산 흐름을 수정하도록 상기 API를 구성하는
    ATE를 이용한 시험 수행 시스템.
  19. 제 17 항에 있어서,
    상기 사용자 특정 API는 상기 제 2 컴퓨팅 장치와 통신 가능하게 결합된 사용자 라이브러리에 저장되도록 동작 가능한
    ATE를 이용한 시험 수행 시스템.
  20. 제 17 항에 있어서,
    상기 생산 흐름에 대한 수정은 상기 사용자에게 특정한 시험 동안 상기 DUT로부터 추가 시험 데이터를 수집하는 것을 포함하는
    ATE를 이용한 시험 수행 시스템.
  21. 제 20 항에 있어서,
    상기 추가 시험 데이터는 사용자 특정 플로어 제어 모듈에서 상기 사용자에게 보고되고, 상기 플로어 제어 모듈은 사용자의 생산 플로어 상의 서버를 포함하며, 상기 플로어 제어 모듈은 상기 추가 데이터를 보관하도록 동작 가능한 데이터베이스와 통신 가능하게 결합되는
    ATE를 이용한 시험 수행 시스템.
KR1020180049214A 2017-04-28 2018-04-27 소프트웨어 애플리케이션 프로그래밍 인터페이스(api)로 자동화된 시험 특징의 사용자 제어 기법 KR102430283B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/582,285 US10592370B2 (en) 2017-04-28 2017-04-28 User control of automated test features with software application programming interface (API)
US15/582,285 2017-04-28

Publications (2)

Publication Number Publication Date
KR20180121410A true KR20180121410A (ko) 2018-11-07
KR102430283B1 KR102430283B1 (ko) 2022-08-05

Family

ID=63917218

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180049214A KR102430283B1 (ko) 2017-04-28 2018-04-27 소프트웨어 애플리케이션 프로그래밍 인터페이스(api)로 자동화된 시험 특징의 사용자 제어 기법

Country Status (5)

Country Link
US (1) US10592370B2 (ko)
JP (1) JP6761441B2 (ko)
KR (1) KR102430283B1 (ko)
CN (1) CN108845557B (ko)
TW (1) TWI761495B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI773140B (zh) * 2020-03-05 2022-08-01 日商愛德萬測試股份有限公司 用於流量捕獲及除錯工具之圖形使用者介面
US20210326244A1 (en) 2020-04-21 2021-10-21 UiPath, Inc. Test automation for robotic process automation
US11797432B2 (en) 2020-04-21 2023-10-24 UiPath, Inc. Test automation for robotic process automation
CN111694733A (zh) * 2020-05-22 2020-09-22 五八有限公司 一种软件开发工具包sdk的api测试方法以及测试装置
CN112819605A (zh) * 2021-01-29 2021-05-18 山东浪潮通软信息科技有限公司 资金结算业务测试方法、装置及计算机可读介质
US20230027880A1 (en) * 2021-07-22 2023-01-26 Infor (Us), Llc Techniques for automated testing of application programming interfaces
CN116913361A (zh) * 2023-06-08 2023-10-20 深圳市晶存科技有限公司 硬盘自动测试方法、系统及介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002505000A (ja) * 1997-06-13 2002-02-12 テラダイン・インコーポレーテッド 低コストで使用が容易な自動テスト・システム用ソフトウェア
JP2004509425A (ja) * 2000-09-28 2004-03-25 ロジックヴィジョン インコーポレイテッド テストコントローラアクセスデータを用いて回路をテスト及び/または診断する方法及びシステム
JP2006518460A (ja) * 2003-02-14 2006-08-10 株式会社アドバンテスト 集積回路をテストする方法および装置
KR20070020300A (ko) * 2004-05-22 2007-02-20 주식회사 아도반테스토 개방형 아키텍쳐의 테스트 시스템에 있어서 교정 및 진단지원 방법 및 시스템
JP2008519247A (ja) * 2004-05-22 2008-06-05 株式会社アドバンテスト モジュール式試験システムをシミュレートする方法及びシステム
JP2008268213A (ja) * 2007-04-23 2008-11-06 Advantest Corp プログラムおよび試験装置
JP2012519853A (ja) * 2009-03-04 2012-08-30 アルカテル−ルーセント 複数のプロセッサを使用するシステム・テスティングの方法および装置
JP2014048125A (ja) * 2012-08-30 2014-03-17 Advantest Corp テストプログラムおよび試験システム
US20140215439A1 (en) * 2013-01-25 2014-07-31 International Business Machines Corporation Tool-independent automated testing of software
US20140236524A1 (en) * 2013-02-21 2014-08-21 Advantest Corporation Tester with acceleration on memory and acceleration for automatic pattern generation within a fpga block
KR20140131546A (ko) * 2012-09-20 2014-11-13 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 사용자 동작 커맨드들을 실행하기 위한 방법 및 장치
KR20150119869A (ko) * 2013-02-21 2015-10-26 주식회사 아도반테스토 프로토콜 독립적 디바이스 테스팅을 지원하기 위한 중앙 컨트롤러 컴퓨터 시스템 상에서의 gui 구현
KR20160012982A (ko) * 2013-02-21 2016-02-03 주식회사 아도반테스토 프로토콜 독립적 디바이스 시험 시스템 내 프로토콜 재구성을 지원하는 클라우드 기반 인트라스트럭처
KR20160108306A (ko) * 2014-01-10 2016-09-19 시암벨라 리미티드 자동 장치 프로그램 생성을 위한 방법 및 장치

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681351B1 (en) * 1999-10-12 2004-01-20 Teradyne, Inc. Easy to program automatic test equipment
US7519827B2 (en) * 2004-04-06 2009-04-14 Verigy (Singapore) Pte. Ltd. Provisioning and use of security tokens to enable automated test equipment
US7823128B2 (en) * 2004-04-19 2010-10-26 Verigy (Singapore) Pte. Ltd. Apparatus, system and/or method for combining multiple tests to a single test in a multiple independent port test environment
US7852094B2 (en) 2006-12-06 2010-12-14 Formfactor, Inc. Sharing resources in a system for testing semiconductor devices
JP2008299397A (ja) * 2007-05-29 2008-12-11 Yokogawa Electric Corp テストプログラム開発装置
US20090164931A1 (en) * 2007-12-19 2009-06-25 Formfactor, Inc. Method and Apparatus for Managing Test Result Data Generated by a Semiconductor Test System
CN101247292B (zh) * 2008-02-22 2011-08-10 中兴通讯股份有限公司 基于通用测试仪表应用编程接口的测试设备及测试方法
US20090224793A1 (en) * 2008-03-07 2009-09-10 Formfactor, Inc. Method And Apparatus For Designing A Custom Test System
US8078424B2 (en) 2008-09-29 2011-12-13 Advantest Corporation Test apparatus
US10118200B2 (en) * 2009-07-06 2018-11-06 Optimal Plus Ltd System and method for binning at final test
US9164859B2 (en) * 2009-09-25 2015-10-20 Qualcomm Incorporated Computing device for enabling concurrent testing
US8127187B2 (en) 2009-09-30 2012-02-28 Integrated Device Technology, Inc. Method and apparatus of ATE IC scan test using FPGA-based system
US20110288808A1 (en) * 2010-05-20 2011-11-24 International Business Machines Corporation Optimal test flow scheduling within automated test equipment for minimized mean time to detect failure
US9514016B2 (en) 2011-02-01 2016-12-06 Echostar Technologies L.L.C. Apparatus systems and methods for facilitating testing of a plurality of electronic devices
US9203617B2 (en) * 2011-08-17 2015-12-01 Vixs Systems, Inc. Secure provisioning of integrated circuits at various states of deployment, methods thereof
CN102306122A (zh) * 2011-09-14 2012-01-04 北京星网锐捷网络技术有限公司 自动化测试方法及设备
CN102590730A (zh) * 2012-01-16 2012-07-18 中冶南方(武汉)自动化有限公司 模块化开放性pcba功能测试平台、测试系统及方法
US9069719B2 (en) * 2012-02-11 2015-06-30 Samsung Electronics Co., Ltd. Method and system for providing a smart memory architecture
US10371744B2 (en) * 2012-04-11 2019-08-06 Advantest Corporation Method and apparatus for an efficient framework for testcell development
US9952276B2 (en) * 2013-02-21 2018-04-24 Advantest Corporation Tester with mixed protocol engine in a FPGA block
US9810729B2 (en) * 2013-02-28 2017-11-07 Advantest Corporation Tester with acceleration for packet building within a FPGA block
KR102030385B1 (ko) * 2013-03-07 2019-10-10 삼성전자주식회사 자동 테스트 장비 및 그 제어방법
WO2015018455A1 (en) * 2013-08-09 2015-02-12 Advantest (Singapore) Pte. Ltd. Automated test equipment, instruction provider for providing a sequence of instructions, method for providing a signal to a device under test, method for providing a sequence of instructions and test system
US10156611B2 (en) * 2013-09-12 2018-12-18 Teradyne, Inc. Executing code on a test instrument in response to an event
CN105092992B (zh) * 2014-04-15 2020-01-07 爱德万测试公司 用于在ate上进行向量控制的测试的方法和设备
DE102017117322A1 (de) * 2017-07-31 2019-01-31 Infineon Technologies Ag Verfahren zur Herstellung eines Halbleiterbauelementes mittels computergestütztem Entwurf von Testszenarien

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002505000A (ja) * 1997-06-13 2002-02-12 テラダイン・インコーポレーテッド 低コストで使用が容易な自動テスト・システム用ソフトウェア
JP2004509425A (ja) * 2000-09-28 2004-03-25 ロジックヴィジョン インコーポレイテッド テストコントローラアクセスデータを用いて回路をテスト及び/または診断する方法及びシステム
JP2006518460A (ja) * 2003-02-14 2006-08-10 株式会社アドバンテスト 集積回路をテストする方法および装置
KR20070020300A (ko) * 2004-05-22 2007-02-20 주식회사 아도반테스토 개방형 아키텍쳐의 테스트 시스템에 있어서 교정 및 진단지원 방법 및 시스템
JP2008519247A (ja) * 2004-05-22 2008-06-05 株式会社アドバンテスト モジュール式試験システムをシミュレートする方法及びシステム
JP2008268213A (ja) * 2007-04-23 2008-11-06 Advantest Corp プログラムおよび試験装置
JP2012519853A (ja) * 2009-03-04 2012-08-30 アルカテル−ルーセント 複数のプロセッサを使用するシステム・テスティングの方法および装置
JP2014048125A (ja) * 2012-08-30 2014-03-17 Advantest Corp テストプログラムおよび試験システム
KR20140131546A (ko) * 2012-09-20 2014-11-13 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 사용자 동작 커맨드들을 실행하기 위한 방법 및 장치
US20140215439A1 (en) * 2013-01-25 2014-07-31 International Business Machines Corporation Tool-independent automated testing of software
US20140236524A1 (en) * 2013-02-21 2014-08-21 Advantest Corporation Tester with acceleration on memory and acceleration for automatic pattern generation within a fpga block
KR20150119869A (ko) * 2013-02-21 2015-10-26 주식회사 아도반테스토 프로토콜 독립적 디바이스 테스팅을 지원하기 위한 중앙 컨트롤러 컴퓨터 시스템 상에서의 gui 구현
KR20160012982A (ko) * 2013-02-21 2016-02-03 주식회사 아도반테스토 프로토콜 독립적 디바이스 시험 시스템 내 프로토콜 재구성을 지원하는 클라우드 기반 인트라스트럭처
KR20160108306A (ko) * 2014-01-10 2016-09-19 시암벨라 리미티드 자동 장치 프로그램 생성을 위한 방법 및 장치

Also Published As

Publication number Publication date
CN108845557A (zh) 2018-11-20
JP2018189641A (ja) 2018-11-29
TWI761495B (zh) 2022-04-21
JP6761441B2 (ja) 2020-09-23
KR102430283B1 (ko) 2022-08-05
TW201843589A (zh) 2018-12-16
US10592370B2 (en) 2020-03-17
CN108845557B (zh) 2023-08-08
US20180314613A1 (en) 2018-11-01

Similar Documents

Publication Publication Date Title
KR102430283B1 (ko) 소프트웨어 애플리케이션 프로그래밍 인터페이스(api)로 자동화된 시험 특징의 사용자 제어 기법
CN105378493A (zh) 用于支持协议无关器件测试系统中协议重新配置的基于云的基础设施
KR102481257B1 (ko) 시험 프로그램 흐름 제어 기법
US20140237292A1 (en) Gui implementations on central controller computer system for supporting protocol independent device testing
KR102479320B1 (ko) 상이한 애플리케이션을 사용하는 복수의 사용자를 지원하기 위한 시험 시스템
CN105143895A (zh) 从交互式图形用户界面中自动生成测试类预编译头
US11828787B2 (en) Eye diagram capture test during production
CN107957712A (zh) 改进的用于工业自动化控制器的测试管理器
CN110134612A (zh) Ui测试数据生成方法、装置、设备及可读存储介质
CN116166525A (zh) 一种测试脚本的生成方法及装置
KR102024275B1 (ko) 스크립트를 활용한 시험 프로그램 개발 시스템 및 그 방법
CN115599618B (zh) 寄存器动态改配验证方法、装置、存储介质和处理器
US5965957A (en) Switching apparatus, in particular for systems under test
CN112015633A (zh) 测试激励多平台复用方法、装置、设备及存储介质
KR102253549B1 (ko) 오류 정형화를 이용한 발사통제기 자동 점검 방법 및 그 장치
Zhang et al. ICTDroid: Parameter-Aware Combinatorial Testing for Components of Android Apps
CN117667553A (zh) 基于串口通信工具的计算芯片slt测试系统、方法、介质及设备
Hunnemeyer Integrated modelling and simulation environment

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant