KR101891140B1 - 테스트 자동화를 위한 기법 - Google Patents

테스트 자동화를 위한 기법 Download PDF

Info

Publication number
KR101891140B1
KR101891140B1 KR1020170173705A KR20170173705A KR101891140B1 KR 101891140 B1 KR101891140 B1 KR 101891140B1 KR 1020170173705 A KR1020170173705 A KR 1020170173705A KR 20170173705 A KR20170173705 A KR 20170173705A KR 101891140 B1 KR101891140 B1 KR 101891140B1
Authority
KR
South Korea
Prior art keywords
script
markup language
test
language document
function
Prior art date
Application number
KR1020170173705A
Other languages
English (en)
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 세타랩 주식회사
Priority to KR1020170173705A priority Critical patent/KR101891140B1/ko
Application granted granted Critical
Publication of KR101891140B1 publication Critical patent/KR101891140B1/ko
Priority to PCT/KR2018/011730 priority patent/WO2019117438A1/ko
Priority to US16/619,449 priority patent/US11636023B2/en
Priority to JP2018219047A priority patent/JP6885918B2/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

컴퓨팅 장치에 의해 테스트 자동화 플랫폼 상에서 수행되는 방법이 개시된다. 개시된 방법은, 테스트 스크립트로부터 마크업 언어 문서를 생성하는 단계(테스트 스크립트는 테스트 대상 디바이스(Device Under Test: DUT)를 테스트하는 데에서의 사용을 위한 사용자 정의된 함수의 정의를 포함하도록 스크립트 언어로 작성되되, 마크업 언어 문서는 사용자 정의된 함수의 정의를 마크업 언어 문서 내에 삽입하는 스크립트 엘리먼트를 포함함)와, 생성된 마크업 언어 문서의 처리를 위해 프로그램 엔진을 구동하는 단계(프로그램 엔진은 상기 테스트 자동화 플랫폼의 기성 컴포넌트이고 스크립트 언어를 위한 해석기를 포함함)를 포함한다.

Description

테스트 자동화를 위한 기법{TECHNIQUES FOR TEST AUTOMATION}
본 발명의 실시예는 테스트 자동화(test automation)를 위한 기법에 관한 것으로서, 더욱 구체적으로, 테스트 자동화 플랫폼 상에서 수행되는 방법, 테스트 자동화를 위한 장치 및 컴퓨터 판독가능 저장 매체에 관한 것이다.
디바이스의 자동화된 테스트는 시간과 비용의 감소, 테스트의 편의성, 문제점 파악의 용이성이라는 측면에서 디바이스 개발자에게 매우 유익하다.
세밀한 디바이스 테스트를 위해서는 고가의 시스템이 필요할 수도 있다. 이는, 예컨대, 그러한 테스트에는 조건문, 반복문 등등을 포함하는 자연어 수준의 개발 언어의 지원이 바람직할 것이기 때문이다. 이와 관련하여, 한국 등록 특허 제10-1028359호에 개시된 장치에 의해서도 의도된 바와 같이, 더 경제적이면서 더 효율적인 테스트 기법의 안출이 계속 추구되었다.
그런데, 종래의 여러 임베디드 테스트 자동화 기법에 따르면, 테스트 스크립트를 사용자가 원하는 대로 변경할 수가 없고, 복잡다단한 테스트 조건을 정확히 제어하기 어렵다. 테스트 스크립트를 변경하는 데에 어느 정도의 자유도를 주고자 플랫폼 기반의 테스트 자동화 기법이 출시되었으나 이러한 기법에도 내재적인 한계가 있다.
또한, 유감스럽게도, 현재 많은 수의 플랫폼 기반 테스트는 스마트폰과 윈도우즈(Windows) 프로그램을 대상으로 하는 데에 그치고 있는 실정이다. 특히, 최근에 각광 받는 사물 인터넷(Internet of Things: IoT) 기기의 자동화된 테스트의 경우 다양한 기기, 게이트웨이 및 장비 등등을 모두 연동할 필요가 있다는 점을 감안한다면, 기존의 테스트 자동화 기법들은 이에 적합하지 않을 공산이 크다.
따라서, 테스트 자동화 기법을 개선할 필요성이 있다.
테스트 자동화를 위한 개선된 기법이 본 문서에 개시된다.
적어도 하나의 실시예에 따르면, 컴퓨팅 장치에 의해 테스트 자동화 플랫폼(test automation platform) 상에서 수행되는 방법은, 테스트 스크립트(test script)로부터 마크업 언어(markup language) 문서를 생성하는 단계(상기 테스트 스크립트는 테스트 대상 디바이스(Device Under Test: DUT)를 테스트하는 데에서의 사용을 위한 사용자 정의된 함수(user-defined function)의 정의를 포함하도록 스크립트 언어(script language)로 작성되되, 상기 마크업 언어 문서는 상기 정의를 상기 마크업 언어 문서 내에 삽입하는 스크립트 엘리먼트(script element)를 포함함)와, 상기 생성된 마크업 언어 문서의 처리를 위해 프로그램 엔진(program engine)을 구동하는 단계(상기 프로그램 엔진은 상기 테스트 자동화 플랫폼의 기성 컴포넌트(off-the-shelf component)이고 상기 스크립트 언어를 위한 해석기(interpreter)를 포함함)를 포함한다.
상기 마크업 언어 문서의 상기 생성을 위해 상기 테스트 스크립트를 상기 테스트 자동화 플랫폼 내로 입력하기 위한 사용자 입력을 수신하는 단계를 더 포함할 수 있다.
상기 스크립트 언어는 자바스크립트(JavaScript) 표준을 준수할 수 있고, 상기 마크업 언어 문서는 하이퍼텍스트 마크업 언어(HyperText Markup Language: HTML) 포맷을 가질 수 있다.
상기 프로그램 엔진은 웹 뷰 엔진(web view engine)을 포함할 수 있고, 상기 웹 뷰 엔진은 상기 마크업 언어 문서를 파싱함(parsing) 및 상기 스크립트 엘리먼트를 비롯하여, 상기 마크업 언어 문서 내에 자바스크립트 코드를 삽입하는 HTML 엘리먼트를 실행하는 데에 상기 해석기를 사용함으로써 상기 마크업 언어 문서를 실행하도록 구성될 수 있다.
상기 사용자 정의된 함수는 상기 테스트 자동화 플랫폼을 위한 외부 애플리케이션 프로그래밍 인터페이스(Application Programming Interface: API)에 따라 상기 테스트 스크립트에서 이용가능한 사전정의된 함수를 호출하는 제1 스크립트 문(script statement)을 포함할 수 있다.
상기 사전정의된 함수는 상기 스크립트 언어로 상기 외부 API에 따라 상기 마크업 언어 문서 내의 다른 스크립트 엘리먼트에 선언될 수 있다.
상기 테스트 스크립트로부터 상기 마크업 언어 문서를 생성하는 단계는 상기 테스트 스크립트 내의 지정된 위치를 식별하는 단계와, 상기 지정된 위치에 중단점(breakpoint)을 에뮬레이트하기(emulate) 위해 상기 외부 API에 따라 상기 테스트 스크립트에서 이용가능하나 상기 테스트 스크립트 내에 포함되지 않은 다른 사전정의된 함수를 호출하는 제3 스크립트 문을 생성하고 상기 제3 스크립트 문을 상기 스크립트 엘리먼트 내에 포함시키는 단계를 포함할 수 있되, 상기 다른 사전정의된 함수는 상기 스크립트 언어로 상기 외부 API에 따라 상기 다른 스크립트 엘리먼트 내에 선언될 수 있다.
상기 테스트 자동화 플랫폼을 위한 내부 API에 기반하여, 상기 사전정의된 함수에 대응하는 내부 함수를 실행하는 단계(상기 내부 함수는 상기 내부 API에 기반하여 상기 테스트 자동화 플랫폼 내에서 호출가능함)를 더 포함할 수 있다.
상기 테스트 스크립트로부터 상기 마크업 언어 문서를 생성하는 단계는 상기 사전정의된 함수와 연관된 추가적인 엘리먼트를 생성하고 상기 추가적인 엘리먼트를 상기 마크업 언어 문서 내에 포함시키는 단계를 포함할 수 있고, 상기 추가적인 엘리먼트는 상기 사전정의된 함수에 대응하는 속성(attribute)을 가질 수 있으며, 상기 선언은 상기 추가적인 엘리먼트에 대해 이벤트(event)를 트리거하는(trigger) 제2 스크립트 문을 포함할 수 있고, 상기 방법은, 상기 트리거된 이벤트에 대해, 상기 속성에 대응하는 이벤트 핸들러를 식별하는 단계(상기 이벤트 핸들러는 상기 테스트 자동화 플랫폼을 위한 내부 API에 따라 상기 테스트 자동화 플랫폼 내에서 이용가능하고 내부 함수를 호출하도록 구성됨)와, 상기 추가적인 엘리먼트에 기반하여 상기 이벤트 핸들러를 실행함으로써 상기 내부 함수를 실행하는 단계를 더 포함할 수 있다.
상기 테스트 스크립트로부터 상기 마크업 언어 문서를 생성하는 단계는 상기 테스트 스크립트에 기반하여 상기 사용자 정의된 함수의 이름이 사전결정된 이름과 동일한지를 판정하는 단계와, 상기 사용자 정의된 함수의 상기 이름이 상기 사전결정된 이름과 동일하다는 판정에 응답하여, 상기 사용자 정의된 함수의 실행을 가능하게 하는 추가적인 엘리먼트를 생성하고 상기 추가적인 엘리먼트를 상기 마크업 언어 문서 내에 포함시키는 단계를 포함할 수 있다.
적어도 하나의 실시예에 따르면, 테스트 자동화를 위한 장치는, 프로세서와, 상기 프로세서에 의해 실행되는 경우 상기 프로세서로 하여금 동작을 수행하기 위한 테스트 자동화 플랫폼을 구현하게 하는 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 저장 매체를 포함하되, 상기 동작은, 테스트 스크립트로부터 마크업 언어 문서를 생성하는 것(상기 테스트 스크립트는 테스트 대상 디바이스(Device Under Test: DUT)를 테스트하는 데에서의 사용을 위한 사용자 정의된 함수의 정의를 포함하도록 스크립트 언어로 작성되되, 상기 마크업 언어 문서는 상기 정의를 상기 마크업 언어 문서 내에 삽입하는 스크립트 엘리먼트를 포함함)과, 상기 생성된 마크업 언어 문서의 처리를 위해 프로그램 엔진을 구동하는 것(상기 프로그램 엔진은 상기 테스트 자동화 플랫폼의 기성 컴포넌트이고 상기 스크립트 언어를 위한 해석기를 포함함)을 포함한다.
상기 동작은 상기 마크업 언어 문서의 상기 생성을 위해 상기 테스트 스크립트를 상기 테스트 자동화 플랫폼 내로 입력하기 위한 사용자 입력을 수신하는 것을 더 포함할 수 있다.
상기 스크립트 언어는 자바스크립트(JavaScript) 표준을 준수할 수 있고, 상기 마크업 언어 문서는 하이퍼텍스트 마크업 언어(HyperText Markup Language: HTML) 포맷을 가질 수 있다.
상기 프로그램 엔진은 웹 뷰 엔진을 포함할 수 있고, 상기 웹 뷰 엔진은 상기 마크업 언어 문서를 파싱함 및 상기 스크립트 엘리먼트를 비롯하여, 상기 마크업 언어 문서 내에 자바스크립트 코드를 삽입하는 HTML 엘리먼트를 실행하는 데에 상기 해석기를 사용함으로써 상기 마크업 언어 문서를 실행하도록 구성될 수 있다.
상기 사용자 정의된 함수는 상기 테스트 자동화 플랫폼을 위한 외부 애플리케이션 프로그래밍 인터페이스(Application Programming Interface: API)에 따라 상기 테스트 스크립트에서 이용가능한 사전정의된 함수를 호출하는 제1 스크립트 문을 포함할 수 있다.
상기 사전정의된 함수는 상기 스크립트 언어로 상기 외부 API에 따라 상기 마크업 언어 문서 내의 다른 스크립트 엘리먼트에 선언될 수 있다.
상기 테스트 스크립트로부터 상기 마크업 언어 문서를 생성하는 것은 상기 테스트 스크립트 내의 지정된 위치를 식별하는 것과, 상기 지정된 위치에 중단점을 에뮬레이트하기 위해 상기 외부 API에 따라 상기 테스트 스크립트에서 이용가능하나 상기 테스트 스크립트 내에 포함되지 않은 다른 사전정의된 함수를 호출하는 제3 스크립트 문을 생성하고 상기 제3 스크립트 문을 상기 스크립트 엘리먼트 내에 포함시키는 것을 포함할 수 있되, 상기 다른 사전정의된 함수는 상기 스크립트 언어로 상기 외부 API에 따라 상기 다른 스크립트 엘리먼트 내에 선언될 수 있다.
상기 동작은 상기 테스트 자동화 플랫폼을 위한 내부 API에 기반하여, 상기 사전정의된 함수에 대응하는 내부 함수를 실행하는 것(상기 내부 함수는 상기 내부 API에 기반하여 상기 테스트 자동화 플랫폼 내에서 호출가능함)을 더 포함할 수 있다.
상기 테스트 스크립트로부터 상기 마크업 언어 문서를 생성하는 단계는 상기 사전정의된 함수와 연관된 추가적인 엘리먼트를 생성하고 상기 추가적인 엘리먼트를 상기 마크업 언어 문서 내에 포함시키는 단계를 포함할 수 있고, 상기 추가적인 엘리먼트는 상기 사전정의된 함수에 대응하는 속성을 가질 수 있으며, 상기 선언은 상기 추가적인 엘리먼트에 대해 이벤트를 트리거하는 제2 스크립트 문을 포함할 수 있고, 상기 동작은, 상기 트리거된 이벤트에 대해, 상기 속성에 대응하는 이벤트 핸들러를 식별하는 것(상기 이벤트 핸들러는 상기 테스트 자동화 플랫폼을 위한 내부 API에 따라 상기 테스트 자동화 플랫폼 내에서 이용가능하고 내부 함수를 호출하도록 구성됨)과, 상기 추가적인 엘리먼트에 기반하여 상기 이벤트 핸들러를 실행함으로써 상기 내부 함수를 실행하는 것을 더 포함할 수 있다.
상기 테스트 스크립트로부터 상기 마크업 언어 문서를 생성하는 것은 상기 테스트 스크립트에 기반하여 상기 사용자 정의된 함수의 이름이 사전결정된 이름과 동일한지를 판정하는 것과, 상기 사용자 정의된 함수의 상기 이름이 상기 사전결정된 이름과 동일하다는 판정에 응답하여, 상기 사용자 정의된 함수의 실행을 가능하게 하는 추가적인 엘리먼트를 생성하고 상기 추가적인 엘리먼트를 상기 마크업 언어 문서 내에 포함시키는 것을 포함할 수 있다.
적어도 하나의 실시예에 따르면, 프로세서에 의해 실행되는 경우 상기 프로세서로 하여금 위 방법 중 임의의 것을 수행하게 하는 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 저장 매체가 제공된다.
본 발명의 실시예에 따르면, 자동화된 테스트를 위한 컴퓨팅 플랫폼(computing platform)에서, 다양한 디바이스의 테스트를 위한 애플리케이션 프로그래밍 인터페이스(Application Programming Interface: API)가 테스트 스크립트의 작성에 사용되는 스크립트 언어로 제공될 수 있고, 사용자는 원하는 테스트 스크립트를 더 편리하게, 더 자유롭게 개발할 수 있다.
본 발명의 실시예에 따르면, 자동화된 테스트를 위한 컴퓨팅 플랫폼 상에서 테스트 스크립트의 디버깅(debugging), 예컨대 트레이스(trace) 기능이 제공될 수 있다.
도 1은 본 발명의 실시예에 따라 테스트 대상 디바이스(Device Under Test: DUT)의 자동화된 테스트가 수행되는 환경을 개략적으로 도시한다.
도 2는 본 발명에 실시예에 따른 테스트 자동화 장치의 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 적합한 예시적인 테스트 자동화 장치의 개략적인 블록도이다.
도 4는 본 발명의 실시예에 따라 테스트 자동화 장치의 시스템 아키텍처를 개략적으로 보여준다.
도 5는 본 발명의 실시예에 따라 테스트 자동화 플랫폼 상에서 DUT를 테스트하는 프로세스에서의 사용에 적합한 예시적인 그래픽 사용자 인터페이스(Graphic User Interface: GUI)를 도시한다.
도 6은 본 발명에 실시예에 따라 자바스크립트(JavaScript)로 작성된 예시적인 테스트 스크립트를 개략적으로 보여준다.
도 7a 및 도 7b는 본 발명에 실시예에 따라 JavaScript로 된 테스트 스크립트로부터 생성된 예시적인 HTML 문서를 개략적으로 보여준다.
이하에서는, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 본 발명은 여러 가지 실시예를 가질 수 있고, 몇몇 실시예가 본 명세서에 개시된다. 그러나, 이는 본 발명에 대한 한정이 아니라 예시로서 제공되며, 본 발명의 사상 및 범주에 속하는 모든 변환, 균등물 내지 대체물을 망라하는 것으로 이해되어야 한다. 개시된 실시예에 따른 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 다음의 상세한 설명에서 특정한 세부사항이 제공되는데, 몇몇 실시예는 이들 세부사항 중 일부 또는 전부가 없더라도 실시될 수 있다. 또한, 본 발명의 다양한 양상을 불필요하게 모호하게 하지 않도록 공지 기술의 구체적인 설명은 생략될 수 있다.
후술되는 용어는 단지 특정 실시예를 설명하기 위해 사용된 것으로, 한정적 의미로 고려되고자 의도된 것이 아니다. 단수 형태의 표현은 명확하게 달리 사용되지 않는 한, 복수 형태의 의미를 포함한다. 또한, 이 문서에서, "포함하다" 또는 "가지다"와 같은 용어는 어떤 특징, 숫자, 단계, 동작, 구성요소, 정보 또는 이들의 조합이 존재함을 나타내려는 것이며, 하나 또는 그 이상의 다른 특징, 숫자, 단계, 동작, 구성요소, 정보 또는 이들의 조합의 존재 또는 가능성을 배제하지 않는 것으로 이해되어야 한다.
도 1은 본 발명의 실시예에 따라 테스트 대상 디바이스(Device Under Test: DUT)의 자동화된 테스트가 수행되는 환경(100)을 개략적으로 도시한다.
도시된 바와 같이, 예시적인 환경(100)은 계측기(110-1), 회로 보드(110-2), 게이트웨이(110-3), 단말(110-4) 및/또는 다른 DUT(110-n)와 같은 하나 이상의 DUT(110-1, 110-2, 110-3, 110-4, ..., 110-n)(이하에서는 각각의 DUT가 개별적으로, 또는 몇몇 DUT가 집합적으로 참조번호 110으로 표기될 수 있음)를 포함하고, 또한 DUT(110)의 테스트 자동화를 위한 장치(120)를 포함한다.
또한, DUT(110)와 테스트 자동화 장치(120)는 통신가능하게 커플링된다(communicatively coupled). 예로서, 도시된 바와 같이, 각각의 DUT(110)는 유선 송신 매체(예를 들어, 직렬 케이블(serial cable) 등등)을 통해 테스트 자동화 장치(120)와 통신가능하게 커플링될 수 있다. 다른 예에서, 각각의 DUT(110)는 무선 송신 매체(예를 들어, 무선 통신을 위한 전자기파(electromagnetic wave) 등등), 또는 유선 송신 매체와 무선 송신 매체의 조합을 통해 테스트 자동화 장치(120)와 통신가능하게 커플링될 수 있다. 몇몇 실시예에서, 테스트 자동화 장치(120)에는 DUT(110)와의 통신을 위한 인터페이스 또는 프로토콜 스택이 구비될 수 있다.
나아가, 실시예에 따르면, 몇몇 DUT(110)는 도시된 바와 같이 유선 송신 매체(예를 들어, RF 케이블 또는 동축 케이블(coaxial cable) 등등), 무선 송신 매체, 또는 이들의 조합을 통해 서로 통신가능하게 커플링될 수 있다.
이제 도 2를 참조하면, 몇몇 실시예에서 테스트 자동화 장치(120)는 DUT의 자동화된 테스트를 위해 다음과 같이 동작하는 것으로 예시된다. 도 2에 도시된 프로세스(200)는 단지 예로서 제공될 뿐이며, 몇몇 다른 실시예에서는 도 2의 프로세스(200)의 동작 중 일부가 생략되고/되거나 다른 동작이 추가될 수 있음에 유의하여야 한다.
예시적인 프로세스(200)는 테스트 자동화 장치(120) 상에서의 컴퓨팅 플랫폼(computing platform)(이하에서 "테스트 자동화 플랫폼"(test automation platform)으로 지칭될 수도 있음)의 구현(implementation) 내지 구동(running)으로 시작한다. 테스트 자동화 장치(120)에 의해 제공된 컴퓨팅 플랫폼 상에서 프로세스(200)의 이후의 동작이 수행될 수 있다.
동작(210)에서, 테스트 자동화 장치(120)는 테스트 스크립트(test script)를 테스트 자동화 플랫폼 내로 입력하기 위한 사용자 입력을 수신한다.
테스트 스크립트는 임의의 함수(function)의 정의(definition)을 포함하도록 스크립트 언어(script language)로 작성될 수 있는데, 이 함수는 DUT(110)를 테스트하는 데에서의 사용을 위해 사용자에 의해 정의될 수 있다. 또한, 이러한 사용자 정의된(user-defined) 함수는 테스트 자동화 플랫폼을 위한 외부 애플리케이션 프로그래밍 인터페이스(Application Programming Interface: API)(이는 그 스크립트 언어로부터 액세스가능함)에 따라 테스트 스크립트에서 이용가능한 사전정의된 함수(predefined function)(예컨대, 테스트 자동화 플랫폼 내에 기본적으로 제공되어 테스트 자동화 플랫폼에서 항상 이용가능한 빌트인(built-in) 함수)를 호출하는 스크립트 문(script statement)을 포함할 수 있다. 테스트 스크립트는 사전정의된 함수의 정의를 포함하지 않음에 유의하여야 한다. 몇몇 실시예에서, 테스트 스크립트는 JavaScript 표준을 준수하는 스크립트 언어로 작성될 수 있다(예컨대, JavaScript 파일).
동작(220)에서, 테스트 자동화 장치(120)는 테스트 스크립트를 마크업 언어(markup language) 문서로 변환한다. 예를 들어, 테스트 자동화 장치(120)는 테스트 스크립트를 판독하여 테스트 스크립트로부터 마크업 언어 문서를 생성할 수 있다.
몇몇 실시예에서, 생성된 마크업 언어 문서는 테스트 스크립트 내의 사용자 정의된 함수의 정의를 마크업 언어 문서 내에 삽입하는 스크립트 엘리먼트(script element)를 포함할 수 있다. 예로서, 마크업 언어 문서는 하이퍼텍스트 마크업 언어(HyperText Markup Language: HTML) 포맷을 가질 수 있고(예컨대, HTML 파일), 마크업 언어 문서 내의 전술된 스크립트 엘리먼트는 시작 태그(start tag) "<script>" 및 종료 태그(end tag) "</script>", 그리고 그 사이에 삽입된 스크립트 코드(사용자 정의된 함수의 정의를 포함함)로 이루어진 HTML 엘리먼트일 수 있다.
몇몇 실시예에서, 테스트 스크립트로부터 마크업 언어 문서를 생성하는 것은, 사용자 정의된 함수의 이름이 사전결정된 이름(예컨대, "main")과 동일한지를 테스트 스크립트에 기반하여 판정하는 것과, 사용자 정의된 함수의 이름이 사전결정된 이름과 동일하다는 판정에 응답하여, 다른 함수의 실행에 앞서 그러한 사용자 정의된 함수의 실행을 가능하게 하는 추가적인 엘리먼트를 생성하고 이를 마크업 언어 문서 내에 포함시키는 것을 포함할 수 있다. 예로서, 마크업 언어 문서는 HTML 포맷을 가질 수 있고, 마크업 언어 문서 내의 전술된 추가적인 엘리먼트는 다음과 같은 HTML 엘리먼트일 수 있다.
Figure 112017125507530-pat00001
이러한 엘리먼트는, 일단 해석(되어서 실행)되면, 그것을 포함하는 HTML 문서 내의 함수 중에서 main() 함수가 가장 먼저 실행되게 하는바, 그 함수는 일종의 진입점(entry point) 함수로 여겨질 수 있다. 이 특징은 실시예에 따른 테스트 자동화 플랫폼에 유리할 것인데, 비록 진입점의 강제적인 명시를 위한 메커니즘이 결여된 JavaScript가 테스트 스크립트의 작성에 사용되더라도 테스트 스크립트가 DUT의 테스트를 위한 진입점 함수를 포함하는 것이 요구될 수 있기 때문이다. 이에 따라, 몇몇 실시예에서는, 특정한 이름을 갖는 함수, 가령 main() 함수가 반드시 테스트 스크립트에 포함되도록 규정될 수 있다.
추가적으로 또는 대안적으로, 테스트 스크립트로부터 마크업 언어 문서를 생성하는 것은 다른 동작을 포함할 수 있는데, 이는 아래에서 동작(240)과 관련하여 더 상세히 기술될 것이다.
동작(230)에서, 테스트 자동화 장치(120)는 생성된 마크업 언어 문서의 처리를 위해 프로그램 엔진(program engine)을 구동하는데, 이는 테스트 스크립트의 작성에 사용된 스크립트 언어를 위한 해석기(interpreter), 가령 JavaScript 해석기를 포함한다.
몇몇 실시예에서, 프로그램 엔진은 테스트 자동화 플랫폼의 기성 컴포넌트(off-the-shelf component)(예컨대, 테스트 자동화 플랫폼을 위해 맞춤 제작된 것이 아닌 비-맞춤제작(non-custom made)의 상용 컴포넌트)일 수 있다. 예로서, 프로그램 엔진은 테스트 자동화 플랫폼의 기저의(underlying) 운영 체제(Operating System: OS)(예컨대, 마이크로소프트 사(Microsoft Corporation)의 윈도우즈(Windows), 애플 사(Apple Inc.)의 맥오에스(macOS) 등등과 같은 상용 OS, 또는 리눅스(Linux)와 같은 오픈 소스 기반 OS)에 의해 호스팅되는(hosted)/제공되는 기성의 웹 뷰 엔진(web view engine), 가령 인터넷 익스플로러(Internet Explorer: IE) 엔진을 포함할 수 있는데, 이러한 웹 뷰 엔진은 HTML 문서를 파싱하는 것(parsing) 및 그러한 HTML 문서 내에 JavaScript 코드(예컨대, 앞서 언급된 바와 같이, 사용자 정의된 함수의 정의)를 삽입하는 HTML 엘리먼트를 실행하는 데에 JavaScript 해석기를 사용함으로써 HTML 문서를 실행하도록 구성될 수 있다.
테스트 스크립트를 직접 해석하는 것, 예컨대 JavaScript로 작성된 테스트 스크립트를 자체적으로 해석하는 것은 복잡도가 비교적 높은 JavaScript 엔진의 개발을 요구하나, 대신에 위와 같이 테스트 스크립트를 마크업 언어 문서로 변환하여 이를 테스트 자동화 플랫폼의 기성 컴포넌트인 프로그램 엔진에 전달하는 것은 편리하고 비용효율적인 자동화된 테스트를 가능하게 할 수 있다.
동작(240)에서, DUT를 테스트하기 위해 테스트 자동화 장치(120)는 마크업 언어 문서를 해석(하여서 실행)한다. 앞서 언급된 바와 같이, 마크업 언어 문서(예컨대, JavaScript 코드가 포함된 HTML 문서)는 프로그램 엔진(예컨대, 웹 뷰 엔진)에 의해 실행될 수 있다.
예를 들어, 전술된 바와 같이 마크업 언어 문서의 스크립트 엘리먼트 내에 정의되어 있는 어떤 사용자 정의된 함수가 실행될 수 있다. 특히, 사전결정된 이름과 동일한 이름을 갖는 사용자 정의된 함수가 진입점 함수로서 나머지 함수보다 먼저 실행될 수 있다.
또한, 사용자 정의된 함수 내에서 사전정의된 함수를 호출하는 제1 스크립트 문의 실행과 관련하여, 몇몇 실시예에서 테스트 자동화 장치(120)가 수행하는 예시적인 동작에 대한 설명이 아래에 주어진다.
우선, 동작(220)에서 테스트 스크립트로부터 생성된 마크업 언어 문서는 다른 스크립트 엘리먼트를 더 포함할 수 있는데, 제1 스크립트 문에서 호출되는 사전정의된 함수는 스크립트 언어로 테스트 자동화 플랫폼을 위한 외부 API에 따라 그 스크립트 엘리먼트 내에 선언될(declared) 수 있다. 예로서, 마크업 언어 문서의 그러한 스크립트 엘리먼트에는 외부 API에 따라 테스트 스크립트 내에서 이용가능한 모든 사전정의된 함수가 선언될 수 있거나, 이들 중에서 테스트 스크립트 내의 스크립트 문으로부터 식별된 사전정의된 함수가 선언될 수 있다. 다만, 대안적으로 또는 추가적으로, 사용자 정의된 함수가 정의된 스크립트 엘리먼트 내에 모든 또는 몇몇 사전정의된 함수가 선언될 수도 있고, 이러한 경우에도 동일한 스크립트 엘리먼트 내에서 사용자 정의된 함수의 정의와 사전정의된 함수의 선언은 (예컨대, 삽입된 주석에 의해) 별도로 구획화될 수 있음에 유의하여야 한다. 마크업 언어 문서는 HTML 포맷을 가질 수 있고, 마크업 언어 문서 내의 전술된 다른 스크립트 엘리먼트는 시작 태그 "<script>" 및 종료 태그 "</script>", 그리고 그 사이에 삽입된 스크립트 코드(사전정의된 함수의 선언을 포함함)로 이루어진 HTML 엘리먼트일 수 있다.
이와 같이, 테스트 자동화 플랫폼에서 기본적으로 제공되는 사전정의된 함수가 마크업 언어 문서 내에 선언되어 있는 경우, 테스트 자동화 장치(120)는 동작(240)에서 마크업 언어 문서를 해석(하여서 실행)하는 동안 사전정의된 함수를 해석(하여서 실행)할 수 있다.
나아가, 사전정의된 함수를 실행하는 것에는, 테스트 자동화 장치(120)가 사전정의된 함수에 대응하는 내부 함수(이는 테스트 자동화 플랫폼을 위한 내부 API에 기반하여 테스트 자동화 플랫폼 내에서만 호출가능함)를 내부 API에 기반하여 실행하는 것이 뒤따를 수 있다. 몇몇 실시예에서, 내부 API는 테스트 스크립트의 작성에 사용된 스크립트 언어가 아닌 다른 언어(예컨대, 컴파일형 프로그래밍 언어(compiled programming language))로부터 액세스가능할 수 있다.
이를 위해, 동작(220)에서 테스트 스크립트로부터 마크업 언어 문서를 생성하는 것은, (예컨대, 제1 스크립트 문으로부터 사전정의된 함수를 식별하여, 또는 외부 API에 따라 테스트 스크립트 내에서 이용가능한 다른 모든 또는 몇몇 사전정의된 함수의 경우와 더불어) 사전정의된 함수와 연관된 추가적인 엘리먼트를 생성하고 이를 마크업 언어 문서 내에 포함시키는 것을 포함할 수 있다. 그러한 추가적인 엘리먼트는 사전정의된 함수에 대응하는 속성(attribute), 가령 식별자(identifier)(이하에서 "ID"로 약칭될 수도 있음)를 가질 수 있다. 특히, 마크업 언어 문서 내에서의 사전정의된 함수의 선언은 이 추가적인 엘리먼트에 대해 이벤트(event)를 트리거하는(trigger) 제2 스크립트 문을 포함할 수 있다. 이에 따라, 테스트 자동화 장치(120)는 동작(240)에서 마크업 언어 문서를 실행하는 동안 사전정의된 함수를 실행함으로써 이벤트를 트리거할 수 있다. 예로서, 이러한 이벤트는 클릭(click) 이벤트일 수 있다. 테스트 자동화 장치(120)는 또한, 트리거된 이벤트에 대해, 추가적인 엘리먼트의 전술된 속성에 대응하는 이벤트 핸들러(event handler)를 식별하고, 추가적인 엘리먼트에 기반하여 이벤트 핸들러를 실행함으로써 내부 함수를 실행할 수 있는데, 이벤트 핸들러는 테스트 자동화 플랫폼을 위한 내부 API에 따라 테스트 자동화 플랫폼 내에서만 이용가능하고 내부 함수를 호출하도록 구성될 수 있다.
더욱 구체적으로, 전술된 추가적인 엘리먼트는 사전정의된 함수와 연관된 데이터(가령, 사전정의된 함수의 인수(argument) 또는 사전정의된 함수에 대응하는 내부 함수의 리턴 값(return value))의 입력을 가능하게 하는 입력 엘리먼트(input element)일 수 있다. 예로서, 제1 스크립트 문은 다음과 같이 JavaScript로 작성된 코드일 수 있다.
Figure 112017125507530-pat00002
그리고, 마크업 언어 문서는 HTML 포맷을 가질 수 있고, 마크업 언어 문서 내의 전술된 입력 엘리먼트는, 사전정의된 함수의 이름이 앞서 예시된 바와 같이 "SendToLog"인 경우, 다음과 같은 HTML 엘리먼트일 수 있다.
Figure 112017125507530-pat00003
추가적으로, 사전정의된 함수에 대응하는 내부 함수는 사전정의된 함수의 인수를 입력으로 취하여 리턴 값을 반환할 수 있고, 마크업 언어 문서 내에서의 사전정의된 함수의 선언은 사전정의된 함수와 연관된 데이터, 가령 사전정의된 함수의 인수를 입력 엘리먼트 내에 기입하는 스크립트 문 및/또는 사전정의된 함수와 연관된 다른 데이터, 가령 사전정의된 함수에 대응하는 내부 함수의 리턴 값을 입력 엘리먼트로부터 판독하여 반환하는 스크립트 문을 포함할 수 있다.
더 나아가, 위에서 설명한 바와 같이 사전정의된 함수 및 내부 함수의 실행을 이용하여, DUT의 테스트에서 테스트 스크립트의 특정 위치(예컨대, 사용자 또는 테스트 자동화 플랫폼에 의해 지정된 라인(line) 위치)에 중단점(breakpoint)을 에뮬레이트하는(emulate) 것이 가능할 수 있다. 이에 따라, 테스트 스크립트는 지정된 위치에서, 가령 한 라인씩 실행될 수 있다. 이 특징은 테스트 자동화 플랫폼 상에서의 편리한 디버깅(예컨대, 트레이스 기능)을 촉진할 수 있다.
몇몇 실시예에서, 테스트 자동화 장치(120)는 중단점으로서 지정된 위치를 식별한다. 또한, 테스트 자동화 장치(120)는 테스트 자동화 플랫폼을 위한 외부 API에 따라 특정한 사전정의된 함수(이는 이러한 중단점에서 마크업 언어 문서의 실행을 일시적으로 정지시키기 위해 외부 API에 따라 상기 테스트 스크립트에서 이용가능하나 상기 테스트 스크립트 내에 포함되지는 않음)를 호출하는 스크립트 문을 생성하여 이를 마크업 언어 문서 내에 사용자 정의된 함수의 어떤 스크립트 문 직전에 포함시킬 수 있다. 나아가, 테스트 자동화 장치(120)는 테스트 스크립트의 작성에 사용된 스크립트 언어로 외부 API에 따라 그 특정한 사전정의된 함수를 다른 사전정의된 함수의 선언이 담긴 스크립트 엘리먼트 내에 선언할 수 있다. 실제적인 에뮬레이션의 작업은 그 특정한 사전정의된 함수 자체보다는 그것에 대응하는 내부 함수가 더 많은 부분을 담당할 수 있다.
도 3은 본 발명의 실시예에 적합한 예시적인 테스트 자동화 장치(120)의 개략적인 블록도이다. 테스트 자동화 장치(120)는 임의의 적합한 유형의 컴퓨팅(computing) 장치일 수 있는데, 도 3을 참조하면, 하나 이상의 프로세서(310), 프로세서(310)에 의해 판독가능한 컴퓨터 판독가능 저장 매체(computer-readable storage medium)(320) 및 다양한 주변기기(330)를 포함하는 것으로 예시된다.
프로세서(310)는 테스트 자동화 장치(120)의 동작을 제어하기 위한 처리 회로를 포함할 수 있다. 예를 들어, 프로세서(310)는 중앙 처리 유닛(Central Processing Unit: CPU), 그래픽 처리 유닛(Graphics Processing Unit: GPU), 디지털 신호 프로세서(Digital Signal Processor: DSP), 프로세서 코어, 마이크로프로세서, 마이크로제어기, 필드 프로그램가능 게이트 어레이(Field-Programmable Gate Array: FPGA), 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit: ASIC), 무선 주파수 집적 회로(Radio-Frequency Integrated Circuit: RFIC), 다른 하드웨어 및 로직 회로, 또는 이의 임의의 적합한 조합을 포함할 수 있다.
컴퓨터 판독가능 저장 매체(320)는 컴퓨터 실행가능(computer executable) 명령어 또는 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 컴퓨터에 의해 판독가능한 형태로 저장하기 위한 임의의 비일시적인(non-transitory), 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 판독가능 저장 매체(320)는 판독 전용 메모리(Read-Only Memory: ROM), 랜덤 액세스 메모리(Random-Access Memory: RAM), 휘발성(volatile) 메모리, 비휘발성(non-volatile) 메모리, 착탈가능(removable) 메모리, 비착탈가능(non-removable) 메모리, 하드 디스크, 플래시(flash) 메모리, 자기 디스크 저장 매체, 광 디스크 저장 매체, 다른 저장 디바이스 및 저장 매체, 또는 이의 임의의 적합한 조합을 포함할 수 있다. 몇몇 실시예에서, 프로세서(310)는 컴퓨터 판독가능 저장 매체(320)에 저장된 컴퓨터 실행가능 명령어를 실행할 수 있고, 그러한 명령어는 프로세서(310)에 의해 실행되는 경우 프로세서(310)로 하여금 본 발명의 실시예에 따른 동작, 가령 전술된 예시적인 프로세스의 적어도 일부를 수행하게 할 수 있다.
주변기기(330)는 다양한 입출력(Input/Output: I/O) 디바이스를 포함할 수 있는데, 이들은 테스트 자동화 장치(120)가 다른 장치, 디바이스, 기기 등등과 통신하는 데에 사용될 수 있거나, 테스트 자동화 장치(120)로의 명령, 데이터 및/또는 정보의 사용자 입력을 수신하는 데에 사용될 수 있고/있거나 테스트 자동화 장치(120)로부터의 출력을 사용자에게 제시하는 데에 사용될 수 있다. 예를 들어, 주변기기(330)는 마우스와 같은 포인팅 디바이스, 키보드, 키패드, 마이크, 액정 디스플레이(Liquid Crystal Display: LCD), 터치 감지 디스플레이(touch-sensitive display), 스피커, 프린터, 통신 인터페이스 카드, 직렬 포트(serial port), 범용 직렬 버스(Universal Serial Bus: USB) 포트, 일반 목적 인터페이스 버스(General Purpose Interface Bus: GPIB) 커넥터 등등을 포함할 수 있다.
도 4는 본 발명의 실시예에 따라 테스트 자동화 장치의 시스템 아키텍처를 개략적으로 보여준다. 도시된 바와 같이, 예시적인 시스템 아키텍처(400)는 테스트 자동화 플랫폼(420)을 포함하는데, 이는 스크립트 변환기(422), API 핸들러(handler)(424) 및 하나 이상의 인터페이스 및/또는 그것의 프로토콜 스택(426-1, 426-2, ..., 426-n)(이하에서는 각각의 인터페이스 또는 프로토콜 스택이 개별적으로, 또는 몇몇 인터페이스 및/또는 프로토콜 스택이 집합적으로 참조번호 426으로 표기될 수 있음)을 포함한다. 추가적으로, 테스트 자동화 플랫폼(420)은 기성의 웹 뷰 엔진(440)(예컨대, IE 엔진)을 포함할 수 있는데, 이는 몇몇 실시예에서 플랫폼(420)에 포함된 상용 OS에 의해 제공될 수 있다. 스크립트 변환기(422)는 입력된 테스트 스크립트(410)를 HTML 문서(430)로 변환하도록 구성될 수 있다. 생성된 HTML 문서(430)는 웹 뷰 엔진(440)으로 전달될 수 있고, 웹 뷰 엔진(440)은 HTML 문서를 파싱하고 해석하며, JavaScript 해석기를 사용하여 HTML 문서 내에 삽입된 JavaScript 코드를 해석할 수 있는바, 이로써 HTML 문서를 실행한다. 웹 뷰 엔진(440)은 삽입된 JavaScript 코드를 해석하면서 테스트 스크립트 내에 기재된 사전정의된 함수의 실행에 따라 이벤트(예컨대, 클릭 이벤트)를 트리거하도록 구성될 수 있다. API 핸들러(424)는 이벤트가 트리거됨에 응답하여, 사전정의된 함수에 대응하는 식별자에 맵핑된 이벤트 핸들러를 식별하여 이를 실행함으로써 내부 함수를 실행하도록 구성될 수 있다. 필요에 따라, API 핸들러(424)는 내부 함수의 실행 중에, 하나 이상의 인터페이스 및/또는 프로토콜 스택(426)을 사용하여 대응하는 DUT(110)의 기능 테스트를 위해 그 DUT(110)와 통신할 수 있다.
시스템 아키텍처(400)는 사용자 인터페이스(User Interface: UI) 프레임워크(framework)(450)를 더 포함할 수 있다. UI 프레임워크(450)는, 테스트 자동화 플랫폼(420) 상에서 구동되어 UI(예컨대, GUI)를 제공하는 프로그램을 구축하는 데에 도움이 될 수 있는 소프트웨어 도구를 포함한다. UI 프레임워크(450)를 사용함으로써, 테스트 자동화 플랫폼(420)은 DUT를 테스트하는 프로세스에서의 사용에 적합한 UI, 예컨대 테스트 자동화 플랫폼(420)으로의 입력 및/또는 테스트 자동화 플랫폼(420)으로부터의 출력을 위한 UI를 제공할 수 있다. 예를 들어, 테스트 자동화 플랫폼(420)은 도 5에 도시된 바와 같이 사용자에 의해 입력된 테스트 스크립트(510) 및 사용자에 의해 지정된 중단점(520)을 시각적으로 제시하는 GUI(500)를 제공할 수 있다.
도 6은 본 발명에 실시예에 따라 JavaScript로 작성된 예시적인 테스트 스크립트를 개략적으로 보여주고, 도 7a 및 도 7b는 본 발명에 실시예에 따라 JavaScript로 된 테스트 스크립트로부터 생성된 예시적인 HTML 문서를 개략적으로 보여준다.
도 6의 예시적인 테스트 스크립트(600)는 각 행의 코드 라인 번호(610)와 함께 도시된다. JavaScript로 작성된 테스트 스크립트(600)는 2개의 사용자 정의된 함수, main()과 LoRa_Server_Setting()을 포함한다. 함수 main()은 사전정의된 함수 SendToLog()을 호출하는 2개의 스크립트 문(23행 및 25행을 참조하시오)을 포함하고, 사용자 정의된 함수 LoRa_Server_Setting()을 호출하는 1개의 스크립트 문(24행을 참조하시오)을 포함한다. 함수 LoRa_Server_Setting()은 사전정의된 함수 SrvOn()을 호출하는 1개의 스크립트 문(3행을 참조하시오), 사전정의된 함수 SetWait()을 호출하는 1개의 스크립트 문(4행을 참조하시오), 그리고 사전정의된 함수 SrvSetParam()을 호출하는 3개의 스크립트 문(5행 내지 7행을 참조하시오).
도 7a에서 도 7b에 걸쳐 예시된 HTML 문서는 실시예에 따라 도 6의 테스트 스크립트(600)으로부터 생성된다. 전술된 바와 같이, 테스트 스크립트(600) 내의 사전정의된 함수의 선언이 HTML 문서의 제1 스크립트 엘리먼트(710)에 포함된다. 예를 들어, 제1 스크립트 엘리먼트(710)에는 JavaScript로 액세스가능한 외부 API에 따라 테스트 스크립트(600)에서 이용가능한 모든 사전정의된 함수가 JavaScript로 외부 API에 따라 선언된다. 편의를 위해, 위의 사전정의된 함수들 중 SrvSetParam() 및 SendToLog()의 선언이 도 7a에서 더 상세히 예시된다. 선언된 바와 같이, 함수 SrvSetParam(Key, Val)은 Key가 가리키는 서버 측 파라미터를 Val의 값으로 설정하기 위한 함수이고, 함수 SendToLog(Tag, Detail)는 Tag와 Detail을 로그에 남기기 위한 함수인데, Detail은 선택적(optional)이다. 두 함수 모두 사전정의된 함수 ExceptionCheck()를 호출하는데, 이 함수 역시 제1 스크립트 엘리먼트(710)에 선언된다.
전술된 바와 같이, 테스트 스크립트(600) 내의 사용자 정의된 함수의 정의가 HTML 문서의 제2 스크립트 엘리먼트(720)에 포함된다. 예를 들어, 제2 스크립트 엘리먼트(720)에는 테스트 스크립트(600) 내의 2개의 사용자 정의된 함수, main()과 LoRa_Server_Setting() 각각의 모든 스크립트 문이 포함된다. 또한, 각각의 사용자 정의된 함수 내에 포함된, 사전정의된 함수를 호출하는 개개의 스크립트 문 바로 앞에는 사전정의된 함수 LineCommand()를 호출하는 스크립트 문이 삽입되어 있다. 함수 LineCommand() 역시 제1 스크립트 엘리먼트(710)에 선언된다. 선언된 바와 같이, 함수 LineCommand(lineCount)는 테스트 스크립트의 lineCount번째 행에서 중단점을 에뮬레이트하기 위한 함수이다. LineCommand(lineCount)를 호출하는 스크립트 문 바로 뒤에 위치된 스크립트 문은 테스트 스크립트의 lineCount번째 행에 있는 스크립트문과 동일하다.
전술된 바와 같이, HTML 문서는 진입점 함수로 규정된 함수 main()이 우선적으로 실행되게 하는 엘리먼트(760)를 포함한다. HTML 문서의 실행 시에, DUT의 테스트는 함수 main()의 실행으로써 시작할 것이다.
전술된 바와 같이, HTML 문서는 ID 속성을 갖는 은닉된(hidden) 입력 엘리먼트(예컨대, 입력 엘리먼트(730, 740, 750))를 포함한다. 도 7a를 참조하면, 제1 스크립트 엘리먼트(710) 내에 선언된 함수 SrvSetParam() 및 SendToLog()는 DOM(Document Object Model)의 메쏘드(method) document.getElementById()를 사용하는데, 이 메쏘드는 ID 속성이 주어지면 그 ID 속성을 갖는 엘리먼트를 반환한다. 특히, 함수 SrvSetParam() 및 SendToLog()는 도 7b에 예시된 입력 엘리먼트(730, 740, 750) 중의 입력 엘리먼트의 ID 속성으로써 그 엘리먼트를 획득한다는 점이 이해될 것이다.
이에 따라, 제1 스크립트 엘리먼트(710)에 선언된 바와 같이, 함수 SrvSetParam(Key, Val)은 대응하는 내부 함수에 자신의 인수 Key 및 Val를 전달하기 위해, "SrvSetParam"이라는 ID를 갖는 입력 엘리먼트(740) 내에 Key 및 Val를 기입하는 스크립트 문과, "retSrvSetParam"이라는 ID를 갖는 입력 엘리먼트(750)로부터 내부 함수의 리턴 값을 판독하여 자신의 리턴 값으로 반환하는 스크립트 문을 포함한다. 또한, 함수 SendToLog(Tag, Detail)은 대응하는 내부 함수에 자신의 인수 Tag 및 Detail을 전달하기 위해, "SendToLog"라는 ID를 갖는 입력 엘리먼트(730) 내에 Tag 및 Detail을 기입하는 스크립트 문을 포함한다.
무엇보다도, 제1 스크립트 엘리먼트(710) 내에 선언된 함수 SrvSetParam() 및 SendToLog()는 메쏘드 document.getElementById()에 의해 반환된 엘리먼트에 대해 클릭 이벤트를 트리거하는 스크립트 문을 포함한다. 이제, 이벤트가 트리거됨에 응답하여 테스트 자동화 플랫폼이 어떻게 동작하는지를 예로서 설명한다.
몇몇 실시예에서, 전술된 바와 같이, HTML 문서의 실행을 위한 웹 뷰 엔진으로서 IE 엔진이 사용될 수 있다. 이러한 실행에 따른 웹 페이지의 렌더링(rendering)을 위해 MFC의 CDHtmlDialog 클래스(class) 또는 이로부터 상속 받은 파생(derived) 클래스, 예컨대 다음과 같이 정의된 CJSParserDlg 클래스가 사용될 수 있다.
Figure 112017125507530-pat00004
위에서 볼 수 있듯이, CJSParserDlg 클래스는 SendToLog() 및 SrvSetParam()이라는 이벤트 핸들러를 가진다. 이러한 이벤트 핸들러는 C++로부터 액세스가능한 내부 API에 따라 테스트 자동화 플랫폼 내에서 이용가능하다.
또한, HTML 엘리먼트에 관련된 이벤트를 포착하기 위해, 이 클래스에 대해, 다음과 같이 이벤트 맵(event map)이 구성될 수 있다.
Figure 112017125507530-pat00005
위의 이벤트 맵에 따르면, "SrvSetParam”이라는 ID를 갖는 HTML 엘리먼트에 SrvSetParam()라는 이벤트 핸들러가 대응하고, "SendToLog"라는 ID를 갖는 HTML 엘리먼트에는 SendToLog()라는 이벤트 핸들러가 대응한다. 그리고, CJSParserDlg 클래스의 SrvSetParam() 및 SendToLog()는 다음과 같이 주어질 수 있다.
Figure 112017125507530-pat00006
Figure 112017125507530-pat00007
위에서 볼 수 있듯이, 이벤트 핸들러 SrvSetParam()은 "SrvSetParam"이라는 ID를 갖는 입력 엘리먼트(740)의 value 속성의 값을 획득하고 내부 함수 m_ScrUserCmd.srvSetParam()을 실행하며, "retSrvSetParam"이라는 ID를 갖는 입력 엘리먼트(750)의 value 속성에 그 내부 함수의 리턴 값을 할당한다. 또한, 이벤트 핸들러 SendToLog()는 "SendToLog"라는 ID를 갖는 입력 엘리먼트(730)의 value 속성의 값을 획득하고 내부 함수 m_ScrUserCmd.sendToLog()을 실행한다.
예시적인 실시예는 본 문서에 기술된 동작, 기법, 프로세스, 또는 이의 어떤 양상이나 부분이 체현된 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 저장 매체로서 구현될 수 있다. 이러한 컴퓨터 판독 가능 저장 매체에는 프로그램 명령어, 로컬 데이터 파일, 로컬 데이터 구조 등등이 단독으로 또는 조합되어 포함될 수 있다. 개시된 동작, 기법, 프로세스, 또는 이의 어떤 양상이나 부분을 구현하거나 이용할 수 있는 프로그램은 컴퓨터에 의해 실행될 수 있는 어떤 유형의 (가령, 컴파일형(compiled) 또는 해석형(interpreted)) 프로그래밍 언어, 예컨대, 어셈블리(assembly), 기계어(machine language), 프로시저형(procedural) 언어, 객체지향(object-oriented) 언어 등등으로 구현될 수 있고, 하드웨어 구현과 조합될 수 있다. 용어 "컴퓨터 판독가능 저장 매체"는, 컴퓨팅 장치(예컨대, 테스트 자동화 장치(120))에 의한 실행을 위한 명령어(실행 시에 컴퓨팅 장치로 하여금 개시된 기법을 수행하게 함)를 저장할 수 있고, 그러한 명령어에 의해 사용되거나 이와 연관된 데이터 구조를 저장할 수 있는 임의의 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체의 예는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 그리고 ROM, RAM, 플래시 메모리, 솔리드 스테이트(solid-state) 메모리와 같은 메모리 디바이스를 포함하되, 이에 한정되지 않는다.
이상에서 본 발명의 몇몇 실시예가 상세하게 기술되었으나, 이는 제한적이 아니고 예시적인 것으로 간주되어야 한다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 개시된 실시예의 세부사항에 대해 본 발명의 범주에서 벗어나지 않고서 다양한 변경이 행해질 수 있음을 이해할 것이다. 그러므로 본 발명의 범주는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위 및 그 균등물에 의해 정해져야 한다.
100: 테스트 대상 디바이스
120: 테스트 자동화 장치
410: 테스트 스크립트
420: 테스트 자동화 플랫폼
430: 마크업 언어 문서
440: 웹 뷰 엔진

Claims (21)

  1. 컴퓨팅 장치에 의해 테스트 자동화 플랫폼(test automation platform) 상에서 수행되는 방법으로서,
    테스트 스크립트(test script)로부터 마크업 언어(markup language) 문서를 생성하는 단계 - 상기 테스트 스크립트는 테스트 대상 디바이스(Device Under Test: DUT)를 테스트하는 데에서의 사용을 위한 사용자 정의된 함수(user-defined function)의 정의를 포함하도록 스크립트 언어(script language)로 작성되되, 상기 마크업 언어 문서는 상기 정의를 상기 마크업 언어 문서 내에 삽입하는 스크립트 엘리먼트(script element)를 포함함 - 와,
    상기 생성된 마크업 언어 문서의 처리를 위해 프로그램 엔진(program engine)을 구동하는 단계 - 상기 프로그램 엔진은 상기 테스트 자동화 플랫폼의 기성 컴포넌트(off-the-shelf component)이고 상기 스크립트 언어를 위한 해석기(interpreter)를 포함함 - 를 포함하되,
    상기 스크립트 언어는 자바스크립트(JavaScript) 표준을 준수하고, 상기 마크업 언어 문서는 하이퍼텍스트 마크업 언어(HyperText Markup Language: HTML) 포맷을 가지며, 상기 프로그램 엔진은 웹 뷰 엔진(web view engine)을 포함하고, 상기 웹 뷰 엔진은 상기 마크업 언어 문서를 파싱함(parsing) 및 상기 스크립트 엘리먼트를 비롯하여, 상기 마크업 언어 문서 내에 자바스크립트 코드를 삽입하는 HTML 엘리먼트를 실행하는 데에 상기 해석기를 사용함으로써 상기 마크업 언어 문서를 실행하도록 구성된,
    방법.
  2. 제1항에 있어서,
    상기 마크업 언어 문서의 상기 생성을 위해 상기 테스트 스크립트를 상기 테스트 자동화 플랫폼 내로 입력하기 위한 사용자 입력을 수신하는 단계를 더 포함하는
    방법.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 사용자 정의된 함수는 상기 테스트 자동화 플랫폼을 위한 외부 애플리케이션 프로그래밍 인터페이스(Application Programming Interface: API)에 따라 상기 테스트 스크립트에서 이용가능한 사전정의된 함수를 호출하는 제1 스크립트 문(script statement)을 포함하는,
    방법.
  6. 제5항에 있어서,
    상기 사전정의된 함수는 상기 스크립트 언어로 상기 외부 API에 따라 상기 마크업 언어 문서 내의 다른 스크립트 엘리먼트에 선언된,
    방법.
  7. 제6항에 있어서,
    상기 테스트 스크립트로부터 상기 마크업 언어 문서를 생성하는 단계는 상기 테스트 스크립트 내의 지정된 위치를 식별하는 단계와, 상기 지정된 위치에 중단점(breakpoint)을 에뮬레이트하기(emulate) 위해 상기 외부 API에 따라 상기 테스트 스크립트에서 이용가능하나 상기 테스트 스크립트 내에 포함되지 않은 다른 사전정의된 함수를 호출하는 제3 스크립트 문을 생성하고 상기 제3 스크립트 문을 상기 스크립트 엘리먼트 내에 포함시키는 단계를 포함하되, 상기 다른 사전정의된 함수는 상기 스크립트 언어로 상기 외부 API에 따라 상기 다른 스크립트 엘리먼트 내에 선언된,
    방법.
  8. 제5항에 있어서,
    상기 테스트 자동화 플랫폼을 위한 내부 API에 기반하여, 상기 사전정의된 함수에 대응하는 내부 함수를 실행하는 단계 - 상기 내부 함수는 상기 내부 API에 기반하여 상기 테스트 자동화 플랫폼 내에서 호출가능함 - 를 더 포함하는
    방법.
  9. 제5항에 있어서,
    상기 테스트 스크립트로부터 상기 마크업 언어 문서를 생성하는 단계는 상기 사전정의된 함수와 연관된 추가적인 엘리먼트를 생성하고 상기 추가적인 엘리먼트를 상기 마크업 언어 문서 내에 포함시키는 단계를 포함하고, 상기 추가적인 엘리먼트는 상기 사전정의된 함수에 대응하는 속성(attribute)을 가지며, 상기 마크업 언어 문서 내에서의 상기 사전정의된 함수의 선언은 상기 추가적인 엘리먼트에 대해 이벤트(event)를 트리거하는(trigger) 제2 스크립트 문을 포함하고, 상기 방법은,
    상기 트리거된 이벤트에 대해, 상기 속성에 대응하는 이벤트 핸들러를 식별하는 단계 - 상기 이벤트 핸들러는 상기 테스트 자동화 플랫폼을 위한 내부 API에 따라 상기 테스트 자동화 플랫폼 내에서 이용가능하고 내부 함수를 호출하도록 구성됨 - 와,
    상기 추가적인 엘리먼트에 기반하여 상기 이벤트 핸들러를 실행함으로써 상기 내부 함수를 실행하는 단계를 더 포함하는,
    방법.
  10. 제1항에 있어서,
    상기 테스트 스크립트로부터 상기 마크업 언어 문서를 생성하는 단계는 상기 테스트 스크립트에 기반하여 상기 사용자 정의된 함수의 이름이 사전결정된 이름과 동일한지를 판정하는 단계와, 상기 사용자 정의된 함수의 상기 이름이 상기 사전결정된 이름과 동일하다는 판정에 응답하여, 상기 사용자 정의된 함수의 실행을 가능하게 하는 추가적인 엘리먼트를 생성하고 상기 추가적인 엘리먼트를 상기 마크업 언어 문서 내에 포함시키는 단계를 포함하는,
    방법.
  11. 테스트 자동화를 위한 장치로서,
    프로세서와,
    상기 프로세서에 의해 실행되는 경우 상기 프로세서로 하여금 동작을 수행하기 위한 테스트 자동화 플랫폼을 구현하게 하는 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 저장 매체를 포함하되, 상기 동작은
    테스트 스크립트로부터 마크업 언어 문서를 생성하는 것 - 상기 테스트 스크립트는 테스트 대상 디바이스(Device Under Test: DUT)를 테스트하는 데에서의 사용을 위한 사용자 정의된 함수의 정의를 포함하도록 스크립트 언어로 작성되되, 상기 마크업 언어 문서는 상기 정의를 상기 마크업 언어 문서 내에 삽입하는 스크립트 엘리먼트를 포함함 - 과,
    상기 생성된 마크업 언어 문서의 처리를 위해 프로그램 엔진을 구동하는 것 - 상기 프로그램 엔진은 상기 테스트 자동화 플랫폼의 기성 컴포넌트이고 상기 스크립트 언어를 위한 해석기를 포함함 - 을 포함하되,
    상기 스크립트 언어는 자바스크립트(JavaScript) 표준을 준수하고, 상기 마크업 언어 문서는 하이퍼텍스트 마크업 언어(HyperText Markup Language: HTML) 포맷을 가지며, 상기 프로그램 엔진은 웹 뷰 엔진을 포함하고, 상기 웹 뷰 엔진은 상기 마크업 언어 문서를 파싱함 및 상기 스크립트 엘리먼트를 비롯하여, 상기 마크업 언어 문서 내에 자바스크립트 코드를 삽입하는 HTML 엘리먼트를 실행하는 데에 상기 해석기를 사용함으로써 상기 마크업 언어 문서를 실행하도록 구성된,
    장치.
  12. 제11항에 있어서,
    상기 동작은 상기 마크업 언어 문서의 상기 생성을 위해 상기 테스트 스크립트를 상기 테스트 자동화 플랫폼 내로 입력하기 위한 사용자 입력을 수신하는 것을 더 포함하는,
    장치.
  13. 삭제
  14. 삭제
  15. 제11항에 있어서,
    상기 사용자 정의된 함수는 상기 테스트 자동화 플랫폼을 위한 외부 애플리케이션 프로그래밍 인터페이스(Application Programming Interface: API)에 따라 상기 테스트 스크립트에서 이용가능한 사전정의된 함수를 호출하는 제1 스크립트 문을 포함하는,
    장치.
  16. 제15항에 있어서,
    상기 사전정의된 함수는 상기 스크립트 언어로 상기 외부 API에 따라 상기 마크업 언어 문서 내의 다른 스크립트 엘리먼트에 선언된,
    장치.
  17. 제16항에 있어서,
    상기 테스트 스크립트로부터 상기 마크업 언어 문서를 생성하는 것은 상기 테스트 스크립트 내의 지정된 위치를 식별하는 것과, 상기 지정된 위치에 중단점을 에뮬레이트하기 위해 상기 외부 API에 따라 상기 테스트 스크립트에서 이용가능하나 상기 테스트 스크립트 내에 포함되지 않은 다른 사전정의된 함수를 호출하는 제3 스크립트 문을 생성하고 상기 제3 스크립트 문을 상기 스크립트 엘리먼트 내에 포함시키는 것을 포함하되, 상기 다른 사전정의된 함수는 상기 스크립트 언어로 상기 외부 API에 따라 상기 다른 스크립트 엘리먼트 내에 선언된,
    장치.
  18. 제15항에 있어서,
    상기 동작은 상기 테스트 자동화 플랫폼을 위한 내부 API에 기반하여, 상기 사전정의된 함수에 대응하는 내부 함수를 실행하는 것 - 상기 내부 함수는 상기 내부 API에 기반하여 상기 테스트 자동화 플랫폼 내에서 호출가능함 - 을 더 포함하는,
    장치.
  19. 제15항에 있어서,
    상기 테스트 스크립트로부터 상기 마크업 언어 문서를 생성하는 단계는 상기 사전정의된 함수와 연관된 추가적인 엘리먼트를 생성하고 상기 추가적인 엘리먼트를 상기 마크업 언어 문서 내에 포함시키는 단계를 포함하고, 상기 추가적인 엘리먼트는 상기 사전정의된 함수에 대응하는 속성을 가지며, 상기 마크업 언어 문서 내에서의 상기 사전정의된 함수의 선언은 상기 추가적인 엘리먼트에 대해 이벤트를 트리거하는 제2 스크립트 문을 포함하고, 상기 동작은,
    상기 트리거된 이벤트에 대해, 상기 속성에 대응하는 이벤트 핸들러를 식별하는 것 - 상기 이벤트 핸들러는 상기 테스트 자동화 플랫폼을 위한 내부 API에 따라 상기 테스트 자동화 플랫폼 내에서 이용가능하고 내부 함수를 호출하도록 구성됨 - 과,
    상기 추가적인 엘리먼트에 기반하여 상기 이벤트 핸들러를 실행함으로써 상기 내부 함수를 실행하는 것을 더 포함하는,
    장치.
  20. 제11항에 있어서,
    상기 테스트 스크립트로부터 상기 마크업 언어 문서를 생성하는 것은 상기 테스트 스크립트에 기반하여 상기 사용자 정의된 함수의 이름이 사전결정된 이름과 동일한지를 판정하는 것과, 상기 사용자 정의된 함수의 상기 이름이 상기 사전결정된 이름과 동일하다는 판정에 응답하여, 상기 사용자 정의된 함수의 실행을 가능하게 하는 추가적인 엘리먼트를 생성하고 상기 추가적인 엘리먼트를 상기 마크업 언어 문서 내에 포함시키는 것을 포함하는,
    장치.
  21. 프로세서에 의해 실행되는 경우 상기 프로세서로 하여금 제1항, 제2항 및 제5항 내지 제10항 중 어느 한 항의 방법을 수행하게 하는 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 저장 매체.
KR1020170173705A 2017-12-16 2017-12-16 테스트 자동화를 위한 기법 KR101891140B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170173705A KR101891140B1 (ko) 2017-12-16 2017-12-16 테스트 자동화를 위한 기법
PCT/KR2018/011730 WO2019117438A1 (ko) 2017-12-16 2018-10-04 테스트 자동화를 위한 기법
US16/619,449 US11636023B2 (en) 2017-12-16 2018-10-04 Scheme for test automation
JP2018219047A JP6885918B2 (ja) 2017-12-16 2018-11-22 テスト自動化のための技法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170173705A KR101891140B1 (ko) 2017-12-16 2017-12-16 테스트 자동화를 위한 기법

Publications (1)

Publication Number Publication Date
KR101891140B1 true KR101891140B1 (ko) 2018-08-23

Family

ID=63454684

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170173705A KR101891140B1 (ko) 2017-12-16 2017-12-16 테스트 자동화를 위한 기법

Country Status (4)

Country Link
US (1) US11636023B2 (ko)
JP (1) JP6885918B2 (ko)
KR (1) KR101891140B1 (ko)
WO (1) WO2019117438A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527646A (zh) * 2020-12-15 2021-03-19 北京指掌易科技有限公司 提高api自动化测试效率的方法、装置和电子设备
KR20210147589A (ko) 2020-05-29 2021-12-07 세타랩 주식회사 IoT 장치용 테스트 플랫폼

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230152060A (ko) * 2021-02-28 2023-11-02 글랜스 네트웍스, 인크. 문서 및 미디어 url을 안전하게 공동 브라우징하기 위한 방법 및 장치
CN117539178A (zh) * 2023-11-10 2024-02-09 成都玖锦科技有限公司 一种基于自定义脚本的仪器仪表智能检测平台系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090131434A (ko) * 2008-06-18 2009-12-29 경기대학교 산학협력단 Rfid 시스템 테스트 장치 및 방법
KR101028359B1 (ko) * 2009-12-10 2011-04-11 주식회사 이노와이어리스 스크립트를 이용한 dut 자동화 테스트 장치
KR101093108B1 (ko) * 2010-09-09 2011-12-13 주식회사 이노와이어리스 Dut 자동화 테스트 장치
KR20150051790A (ko) * 2013-11-05 2015-05-13 경북대학교 산학협력단 테스트 시나리오 생성 장치 및 그를 포함하는 애플리케이션 테스트 시스템, 그리고 테스트 시나리오 생성 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732330B1 (en) * 1999-09-30 2004-05-04 International Business Machines Corporation Scripting language blocks to support multiple scripting languages in a single web page
US20020083213A1 (en) * 2000-09-18 2002-06-27 Oberstein Brien M. Method and system for simulating and certifying complex business applications
US7552424B1 (en) * 2003-10-06 2009-06-23 Sap Ag Apparatus and method for identifying a system under test
JP4355639B2 (ja) 2004-09-15 2009-11-04 キヤノン株式会社 画像処理装置およびその制御方法
US20090037881A1 (en) * 2007-07-31 2009-02-05 Caterpillar Inc. Systems and methods for testing the functionality of a web-based application
US8266189B2 (en) * 2008-06-02 2012-09-11 Microsoft Corporation Adapting between coupled and decoupled provider interfaces
US9122789B1 (en) * 2008-11-24 2015-09-01 Jpmorgan Chase Bank, N.A. System and method for testing applications with a load tester and testing translator
US20120246619A1 (en) * 2011-03-23 2012-09-27 Oracle International Corporation Automated testing of browser based rich internet applications (ria) delivered through proprietary frameworks
US8954933B2 (en) * 2011-05-31 2015-02-10 International Business Machines Corporation Interactive semi-automatic test case maintenance
CN102306122A (zh) 2011-09-14 2012-01-04 北京星网锐捷网络技术有限公司 自动化测试方法及设备
US20140317489A1 (en) * 2013-04-18 2014-10-23 Microsoft Corporation Device-independent validation of website elements
US9819758B2 (en) * 2014-04-28 2017-11-14 Sap Se Remote debugging into mobile web applications across devices
WO2015196442A1 (zh) * 2014-06-27 2015-12-30 华为技术有限公司 一种网页优化的设备及方法
JP2016144563A (ja) 2015-02-09 2016-08-12 シチズンホールディングス株式会社 測定機器、測定情報表示システム及びプログラム
JP2017097662A (ja) * 2015-11-25 2017-06-01 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
CN107622015B (zh) * 2017-09-25 2021-05-04 北京因特睿软件有限公司 一种数据流分析方法、装置、设备及介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090131434A (ko) * 2008-06-18 2009-12-29 경기대학교 산학협력단 Rfid 시스템 테스트 장치 및 방법
KR101028359B1 (ko) * 2009-12-10 2011-04-11 주식회사 이노와이어리스 스크립트를 이용한 dut 자동화 테스트 장치
KR101093108B1 (ko) * 2010-09-09 2011-12-13 주식회사 이노와이어리스 Dut 자동화 테스트 장치
KR20150051790A (ko) * 2013-11-05 2015-05-13 경북대학교 산학협력단 테스트 시나리오 생성 장치 및 그를 포함하는 애플리케이션 테스트 시스템, 그리고 테스트 시나리오 생성 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210147589A (ko) 2020-05-29 2021-12-07 세타랩 주식회사 IoT 장치용 테스트 플랫폼
CN112527646A (zh) * 2020-12-15 2021-03-19 北京指掌易科技有限公司 提高api自动化测试效率的方法、装置和电子设备

Also Published As

Publication number Publication date
US20200159649A1 (en) 2020-05-21
US11636023B2 (en) 2023-04-25
JP2019109884A (ja) 2019-07-04
JP6885918B2 (ja) 2021-06-16
WO2019117438A1 (ko) 2019-06-20

Similar Documents

Publication Publication Date Title
KR101891140B1 (ko) 테스트 자동화를 위한 기법
US10657038B1 (en) Mock server for testing
US11151018B2 (en) Method and apparatus for testing a code file
US11010283B2 (en) Mock-based unit test(s) for an end-to-end test of a code snippet
US9678726B1 (en) Automatic generation of plugins for development tools
US9038032B2 (en) Symbolic execution and automatic test case generation for JavaScript programs
EP2359247B1 (en) Transforming user script code for debugging
EP2368189B1 (en) Debugging pipeline
US8347272B2 (en) Call graph dependency extraction by static source code analysis
US9819758B2 (en) Remote debugging into mobile web applications across devices
US10331425B2 (en) Automated source code adaption to inject features between platform versions
CN109669873B (zh) 用户界面自动测试方法及装置、电子设备及存储介质
US20080209405A1 (en) Distributed debugging for a visual programming language
JP2006268858A (ja) アプリケーションホスト環境においてユニットテストを実行する方法および装置
US10747510B1 (en) Application runtime modification
EP3008585B1 (en) Automatic source code generation
US9075601B1 (en) Providing a scripting interface to existing code
WO2015183767A1 (en) Emulation-based expression evaluation for diagnostic tools
US8117499B2 (en) Generation of a stimuli based on a test template
KR20190113050A (ko) 모바일 어플리케이션 환경설정을 시험하기 위한 시험 항목 자동 생성 방법 및 시스템
CN106557411B (zh) Android系统中Hybrid应用的测试方法及系统
CN110020370B (zh) 在客户端应用中实现动画的方法、装置及动画脚本的框架
CN116627850B (zh) 函数调试方法、装置、存储介质以及电子设备
CN113127329A (zh) 脚本调试方法、装置及计算机存储介质
CN109542447B (zh) 一种otx程序文件执行方法及装置

Legal Events

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