KR102529142B1 - 소프트웨어 애플리케이션의 테스트 프로세스를 자동화하기 위한 방법 및 시스템 - Google Patents

소프트웨어 애플리케이션의 테스트 프로세스를 자동화하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR102529142B1
KR102529142B1 KR1020177035769A KR20177035769A KR102529142B1 KR 102529142 B1 KR102529142 B1 KR 102529142B1 KR 1020177035769 A KR1020177035769 A KR 1020177035769A KR 20177035769 A KR20177035769 A KR 20177035769A KR 102529142 B1 KR102529142 B1 KR 102529142B1
Authority
KR
South Korea
Prior art keywords
test
interactive application
application
driver system
user interaction
Prior art date
Application number
KR1020177035769A
Other languages
English (en)
Other versions
KR20180008581A (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 KR20180008581A publication Critical patent/KR20180008581A/ko
Application granted granted Critical
Publication of KR102529142B1 publication Critical patent/KR102529142B1/ko

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/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
    • 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/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/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 적어도 하나의 테스트 시나리오에 따라 적어도 하나의 TV 장치(18)상에 대화형 애플리케이션을 테스트하기 위한 방법 및 시스템에 관한 것이다. 상기 테스트 시나리오는 상기 적어도 하나의 TV 장치(18)와 별개인 테스트 드라이버 시스템(14)에 의해 실행 및 모니터되고, 상기 테스트 시나리오는 일련의 사용자 상호 작용 단계 및 지정한 사용자 상호 작용 단계 이후에 성취될 상기 애플리케이션 및/또는 상기 적어도 하나의 TV 장치(18)의 적어도 하나의 목표 상태를 포함하고, 상기 방법은: a. 테스트 정의 헬퍼 라이브러리(15)를 상기 대화형 애플리케이션에 통합하는 단계 - 상기 테스트 정의 헬퍼 라이브러리(15)는 상기 대화형 애플리케이션 및/또는 상기 적어도 하나의 TV 장치(18)의 상기 상태에 대한 정보를 획득하도록 구성됨 - ; b. 상기 적어도 하나의 TV 장치(18)에 상기 수정된 대화형 애플리케이션을 제공하는 단계; c. 상기 적어도 하나의 테스트 시나리오를 실행하는 단계 - 상기 테스트 드라이버 시스템(14)은 상기 적어도 하나의 TV 장치(18)상에서 상기 일련의 사용자 상호 작용 단계를 불투명하게 수행함 -; 및 d. 상기 테스트 정의 헬퍼 라이브러리(15)에 의해 획득된 상기 대화형 애플리케이션 및/또는 적어도 하나의 TV 장치(18)의 상기 상태에 대한 상기 정보를 상기 지정한 사용자 상호 작용 단계 후의 상기 적어도 하나의 목표 상태와 비교하는 단계를 포함한다.

Description

소프트웨어 애플리케이션의 테스트 프로세스를 자동화하기 위한 방법 및 시스템
본 발명은 적어도 하나의 테스트 시나리오에 따라 적어도 하나의 TV 장치 상에서 대화형 애플리케이션을 테스트하기 위한 방법 및 시스템에 관한 것이다.
연결된 TV 장치는 요즘 빠르게 대중성을 얻고 있으며 TV 장치용 대화형 애플리케이션이 이미 많이 있다. 프로덕션 환경으로 출시하기 전에 모든 대화형 애플리케이션을 적절히 테스트하여 모든 실행 경로가 제대로 작동하는지, 에지 케이스가 커버 되는지, 애플리케이션이 목표 플랫폼의 모든 TV 장치와 완벽하게 호환되는지 확인해야 한다. 대화형 애플리케이션을 수동으로 테스트하는 것은 다른 오류 가능성 중에서도 사람의 실수, 시장 진입까지의 긴 시간, QA 팀 및 테스트 장치에 대한 비용 증가 등으로 인한 명백한 몇 가지 단점이 있다. 미국 특허 8,185,877 B1에 기재된 바와 같이 공지된 자동 테스트 방법은 TV 장치 상에서 대화형 애플리케이션을 테스트하는 데 사용될 수 없다. 따라서 TV 장치의 테스트에는 숙련된 기술자, 워크플로 및 개발 주기 변경이 필요하며, 대화형 애플리케이션 개발 스타일에 여러 가지 조건과 제한이 제기된다.
이러한 관점에서, 본 발명의 목적은 테스트 시나리오를 정의 및 수행하는 간단하고 사용자 친화적인 방법을 제공하는 TV 장치 상의 대화형 애플리케이션을 테스트하기 위한 방법 및 시스템을 제공하는 것이다.
이 목적은 독립항의 특징에 의해 해결된다. 바람직한 실시예는 종속항에 기재된다.
본 발명에 따라서 테스트 시나리오는 적어도 하나의 TV 장치와는 별개인 테스트 드라이버 시스템에 의해 실행 및 모니터된다. 테스트 시나리오는 일련의 사용자 상호 작용 단계 및 지정한 사용자 상호 작용 단계 이후에 성취될 상기 애플리케이션 및/또는 상기 적어도 하나의 TV 장치의 적어도 하나의 목표 상태를 포함하고, 상기 방법은:
a. 테스트 정의 헬퍼 라이브러리를 상기 대화형 애플리케이션에 통합하는 단계 - 상기 테스트 정의 헬퍼 라이브러리는 상기 대화형 애플리케이션 및/또는 상기 적어도 하나의 TV 장치의 상기 상태에 대한 정보를 획득하도록 구성됨 - ;
b. 상기 적어도 하나의 TV 장치에 상기 수정된 대화형 애플리케이션을 제공하는 단계;
c. 상기 적어도 하나의 테스트 시나리오를 실행하는 단계 - 상기 테스트 드라이버 시스템은 상기 적어도 하나의 TV 장치 상에서 상기 일련의 사용자 상호 작용 단계를 불투명하게 수행함 -; 및
d. 상기 테스트 정의 헬퍼 라이브러리에 의해 획득된 상기 대화형 애플리케이션 및/또는 적어도 하나의 TV 장치의 상기 상태에 대한 상기 정보를 상기 지정한 사용자 상호 작용 단계 후의 상기 적어도 하나의 목표 상태와 비교하는 단계를 포함한다.
먼저, 본 발명에서 사용되는 몇 가지 용어를 설명한다. 이후, "TV 장치"라는 용어는 텔레비전상에 이미지 및/또는 비디오 컨텐츠를 디스플레이하기 위해 텔레비젼 또는 텔레비전과 관련하여 사용되는 장치를 지칭하는데 사용된다. 그러한 TV 장치의 예는 텔레비전 세트, 셋톱 박스, 또는 PC 스틱, 게임 콘솔, 방송 장치, 멀티미디어 장치, 스트리밍 장치, 전화기, 태블릿과 기타 모바일 장치 또는 스크린 빔 기능을 가진 기타 장치와 같이, TV에 이미지 및/또는 비디오 컨텐츠를 방송 또는 전송하는 능력을 갖는 장치를 포함하지만 이에 제한되지는 않는다.
현재 TV 장치 플랫폼의 대부분은 장치 제조업체 또는 커스텀 소프트웨어에서 제공하는 일반적인 웹 기술이나 SDK를 사용하여 만들 수 있는 대화형 애플리케이션을 지원한다. "대화형 애플리케이션"이라는 용어는 TV 장치에서 실행할 수 있는 모든 종류의 애플리케이션을 나타낸다. 본 발명의 의미 내의 대화형 애플리케이션은 특히 장치 제조 업체의 포털 및 TV 채널을 보완하는 애플리케이션으로부터 설치 가능한 애플리케이션을 포함한다. 첫 번째 그룹의 애플리케이션을 이하에서는 SmartTV 애플리케이션이라고 한다. 두 번째 그룹의 애플리케이션은 다른 국가에서 서로 다른 기술 표준을 사용하고, 이때 현재 지배적인 기술 표준은 HbbTV(하이브리드 방송/광대역 TV)이다. 두 번째 그룹의 애플리케이션은 이하에서 방송 애플리케이션이라고 한다. 본 발명은 방송 애플리케이션 및 스마트 TV 애플리케이션 모두의 테스트를 지원한다는 것을 알 수 있을 것이다.
본 발명에서, "목표 상태"라는 용어는 대화형 애플리케이션 및/또는 TV 장치가 적절히 기능하는 경우 대응하는 지정한 사용자 상호 작용 단계 이후에 예상되는 대화형 애플리케이션 및/또는 TV 장치의 상태를 나타낸다.
테스트 드라이버 시스템(test driver system; TDS)은 테스트 시나리오를 애플리케이션 및/또는 테스트중인 TV 장치에 불투명한 방식으로 실행한다. 이 문맥에서 불투명이라는 용어는 사용자 상호 작용 단계 또는 일련의 사용자 상호 작용 단계가 수행되는 애플리케이션 및/또는 TV 장치가 TDS에서 나오는 사용자 상호 작용 단계와 최종 사용자에게서 나오는 정규의 (즉, 수동의) 상호 작용 단계와 구분할 수 없는 것을 의미한다.
TDHL은 대화형 애플리케이션에 통합되어 있다. 본 발명에서, "수정된 대화형 애플리케이션"이라는 용어는 테스트 정의 헬퍼 라이브러리를 포함하는 대화형 애플리케이션을 나타내기 위해 사용된다.
TDHL을 애플리케이션에 통합하는 것은 대개 1-4줄의 코드만 필요로 하는 매우 간단한 프로세스라는 것이 이해될 것이다. 예를 들어, 웹 기술을 사용하여 제작된 TV 애플리케이션의 경우 고유의 애플리케이션 ID(UAID)와 함께 TDHL는 애플리케이션의 모든 HTML 페이지에 스크립트 태그를 추가하여 통합될 수 있다. 웹에서 다른 기술로 작성된 애플리케이션의 경우, 이것은 일반적으로 라이브러리를 포함하고 UAID를 통해 전달하기 위한 미리 정의된 초기화 호출을 실행하는 것을 의미한다. TDHL은 일반적으로 애플리케이션의 전반적인 기능에 거의 영향을 미치지 않거나 매우 사소한 영향만을 미치는 매우 조심스럽게 만들어진 소프트웨어이다. TDHL은 일반적으로 애플리케이션에 조건을 부여하지 않기 때문에, 개발자는 애플리케이션 코드를 조정할 필요가 없다 - 개발 프로세스는 TDHL의 존재를 간단히 무시할 수 있다. 일부 실시예들에서, TDS는 TDHL을 UAID와 함께 개발자로부터의 수동적인 조정 없이 자동적으로 애플리케이션에 주입하도록 구현될 수 있음을 이해될 것이다.
개발자가 테스트를 위해 애플리케이션에 서명하기 바로 전에 TDHL을 애플리케이션에 주입한다. TDHL은 앱이 실행중인 장치와 TDS 간에 지속적인 데이터 연결을 만들 수 있다. 그러나 일반적으로 지속적인 데이터 연결은 항상 필요한 것은 아니다. 일부 실시예들에서, TDHL은 테스트 관련 결과를 연속적으로 수집하고, 데이터 접속이 이용 가능해지면 TDS에 이들 모두를 즉시 전달하도록 구성될 수 있다. 이것은 바람직하게 사용자 입력과 애플리케이션 사이의 중간자(man-in-the-middle) 역할을 한다. 런타임 동안 TDHL은 애플리케이션 런타임 내부에 대한 정보를 실시간으로 제공하기 위해 TDS에 대한 영구적 또는 비영구적인 연결을 유지 관리할 수 있다. TDS는 테스트를 수행하기 위해 애플리케이션의 다양한 UI 요소와 그 비시각적 속성을 검사하도록 지시할 수 있다.
본 발명의 주요 아이디어 중 하나는 테스트 정의 헬퍼 라이브러리를 대화형 애플리케이션에 통합하는 것으로, 이때 테스트 정의 헬퍼 라이브러리는 대화형 애플리케이션 및/또는 적어도 하나의 TV 장치의 상태에 대한 정보를 획득하도록 구성된다. 따라서, 본 발명은 테스트될 대화형 애플리케이션을 수정하는 것을 제안한다. 대화형 애플리케이션 및/또는 적어도 하나의 TV 장치의 상태에 대한 정보를 얻는 기능성은 대화형 애플리케이션에 직접 제공된다. 예를 들어, TV 장치로 향하는 애플리케이션의 디스플레이 출력을 캡처하고 분석하는 수단에 의해 대화형 애플리케이션의 상태를 대화형 애플리케이션의 "외부"로부터 모니터할 필요는 없다. 오히려 관련 정보는 대화형 애플리케이션에 통합된 TDHL에 의해 직접 획득되며 추후 분석을 위해 테스트 드라이버 시스템으로 전달될 수 있다. 이것은 TDS가 각 장치 상에서의 테스트 실행을 감독하고 각 장치의 결과를 수집하고 포괄적인 기록을 컴파일하도록 쉽게 구성될 수 있으므로, 테스트 프로세스를 상당히 단순하게 한다.
본 발명의 또 다른 이점은 적어도 하나의 TV 장치에서 일련의 사용자 상호 작용 단계를 불투명하게 수행하도록 구성된 TDS에 관한 것이다. 불투명성으로 인해, TV 장치는 TDS에 의해 생성된 사용자 상호 작용 단계와 최종 사용자에 의해 생성된 정규 사용자 입력 신호를 구별할 수 없다. 이것은 TV 장치의 해당 "실제 운영 시나리오"와 다르지 않은 사실적인 테스트 시나리오를 제공하기 위해 중요하다.
본 발명에서, 특별한 기술적 지식을 요구하지 않으면서 TV 장치의 자동화 테스트를 개인에 대해 보다 접근 가능하고 이해 가능하게 하기 위한 노력이 이루어졌다. 테스트 프로세스 자체와 관련하여 테스트를 수행하는 사람은 애플리케이션의 내부를 상세하게 알 필요는 없다는 것이 이해될 것이다. 테스트 운영자는 애플리케이션 사양, 즉 예상 동작 및 지정한 사용자 동작에 대한 응답만을 알면 된다. 테스트 운영자는 현재 그가 처분할 수 있는 모든 TV 장치 상에 그래픽 사용자 인터페이스(GUI)를 선택적으로 제공하여 다수의 테스트 케이스를 구축할 수 있다. 따라서 테스트 케이스가 준비된 후 애플리케이션이 목표로 하는 다수의 TV 장치에 비수반(unattended) 실행이 예약될 수 있다.
바람직한 실시예에서, 테스트 정의 헬퍼 라이브러리에 의해 획득된 데이터는 테스트 드라이버 시스템에 전송되며, 이때 단계 d에서의 비교가 테스트 드라이버 시스템에 의해 바람직하게 실행된다. 따라서, 애플리케이션 및 TV 장치 상태에 대한 정보를 효과적으로 분석하고 더욱 처리할 수 있다.
바람직하게, 테스트 정의 헬퍼 라이브러리에 의해 획득된 대화형 애플리케이션 및/또는 적어도 하나의 TV 장치의 상태에 대한 정보는 다음 중 적어도 하나를 포함한다:
- TV 장치 식별 값,
- 대화형 애플리케이션의 런타임 객체에 대한 정보
- 대화형 애플리케이션의 뷰 객체에 대한 정보
- 대화형 애플리케이션으로 인한 데이터 트래픽에 대한 정보,
- 대화형 애플리케이션의 콘솔 출력,
- 운영 체제 런타임 변경 및/또는
- 공유 메모리 상태.
위에서 언급 한 데이터 중 하나 이상을 획득하는 것은 대화형 애플리케이션 및/또는 TV 장치의 상태에 대한 정확한 분석을 생성할 수 있게 한다.
또한, 테스트 드라이버 시스템은 테스트 시나리오의 사용자 상호 작용 단계를 적어도 하나의 TV 장치 각각에 적응된 사용자 입력 신호로 변환하는 변환 모듈을 포함하는 것이 바람직하다.
대화형 TV 애플리케이션은 SmartTV 애플리케이션 또는 방송 애플리케이션일 수 있으며, 이때 테스트 드라이버 시스템은 바람직하게 적어도 하나의 TV 장치 상에 수정된 대화형 애플리케이션을 자동으로 설치하거나 제공하도록 구성된다. 수정된 대화형 애플리케이션을 적어도 하나의 TV 장치에 자동으로 제공할 수 있는 테스트 드라이버 시스템을 사용하는 아이디어는 테스트 준비 프로세스를 상당히 단순화하기 때문에 특히 유용하다. 특히, 수정된 애플리케이션을 설치하기 위해 각 TV 장치가 개별적으로 수반될 필요는 없다. 따라서 시간과 비용이 절약된다.
대화형 애플리케이션이 방송 애플리케이션인 경우, 테스트 드라이버 시스템은 적어도 하나의 TV 장치에 텔레비전 신호, 바람직하게는 DVB 신호를 제공하는 것이 바람직하며, 텔레비전 신호는 바람직하게 수정된 대화형 애플리케이션을 적어도 하나의 TV 장치에 제공하는 데에 적합하다. 여기에서 용어 DVB 신호는 특히, DVB-T, DVB-T2, DVB-S, DVB-S2, DVB-C, DVB-C2 등과 같이, 디지털 텔레비전을 전달하도록 구성되는 신호를 지칭한다. 바람직하게, DVB 신호는 애플리케이션 정보 테이블(AIT)을 포함한다. 이러한 개념에 의하면, 본 발명은 수정된 대화형 애플리케이션을 적어도 하나의 TV 장치에 자동으로 제공하기 위한 특히 유익한 방법을 제공한다. 이 실시예 내에서, 적어도 하나의 TV 장치에 대해 임의의 수정 또는 적응을 수행할 필요는 없다. 적어도 하나의 TV 장치를, 테스트 드라이버 시스템에 의해 제공된 텔레비전 신호를 수신하게 하는 통상의 동작 모드로 설정하는 것으로 충분하며, 이때 수정된 대화형 애플리케이션은 텔레비전 신호에 의해 제공된다.
바람직한 실시예에서, 테스트 드라이버 시스템은 적어도 하나의 TV 장치 상에서 일련의 사용자 상호 작용 단계를 불투명하게 수행하기 위한 적외선 이미터(emitter), 무선 전파 송신기 및/또는 네트워크 접속 모듈을 포함한다. 이 방법으로 인해 일반적인 사용자 상호 작용 단계가 테스트 드라이버 시스템에 의해 수행될 수 있다. 무선 전파 송신기는 예를 들어 Bluetooth® 표준을 사용할 수 있다. 예를 들어, TV 장치에서 동작하는 대화형 애플리케이션이 HTTP Api 호출에 의해 제어되는 경우, 네트워크 연결 모듈은 일련의 사용자 상호 작용 단계를 불투명하게 수행하기 위해서 이러한 HTTP Api 호출을 전송하는 데에 적합할 수 있다. 다른 예로서, TV 장치가 표준 키보드에 의해 탐색할 수 있는 PC 스틱인 경우, 네트워크 접속 모듈은 일련의 사용자 상호 작용 단계를 불투명하게 수행하기 위해 에뮬레이트된 키보드 신호를 PC 스틱에 전송하도록 구성될 수 있다.
테스트 드라이버 시스템은 적어도 하나의 TV 장치의 네트워크 트래픽을 인터셉트하여 대화형 TV 애플리케이션에 의해 요청된 네트워크 리소스의 사전 정의된 버전을 제공하도록 구성될 수 있다.
또한, 본 발명에 따르면 상술한 바와 같은 테스트 방법에 사용하기 위한 테스트 시나리오를 정의하는 방법을 제공하고 있으며, 상기 방법은 기준 TV 장치를 사용하고:
a. 테스트 정의 헬퍼 라이브러리를 상기 대화형 애플리케이션에 통합하는 단계 - 상기 테스트 정의 헬퍼 라이브러리는 상기 대화형 애플리케이션 및/또는 상기 기준 TV 장치의 상기 상태에 대한 정보를 획득하도록 구성됨 - ;
b. 상기 수정된 대화형 애플리케이션을 상기 기준 TV 장치에 제공하는 단계;
c. 수동 사용자 입력 신호를 상기 기준 TV 장치에 제공하는 단계 - 상기 테스트 정의 헬퍼 라이브러리 및/또는 상기 테스트 드라이버 시스템은 상기 수동 사용자 입력 신호를 모니터하도록 구성됨 - ;
d. 상기 단계 c에서 제공된 상기 수동 사용자 입력 신호에 후속하는 상기 대화형 애플리케이션 및/또는 상기 기준 TV 장치의 상기 상태에 대한 상기 정보를 모니터하는 단계; 및
e. 테스트 시나리오의 지정한 사용자 상호 작용 단계 및 대응하는 목표 상태를 정의하는 단계 - 상기 지정한 사용자 상호 작용 단계는 상기 모니터된 수동 사용자 입력 신호에 기초하며 상기 목표 상태는 상기 단계 d에서 획득된 상기 대화형 애플리케이션 및/또는 상기 기준 TV 장치의 상기 모니터된 상태에 기초함 - 을 포함한다.
기준 TV 장치는 바람직하게 대화형 애플리케이션이 이미 테스트된 TV 장치이고, 대화형 애플리케이션은 기준 TV 장치 상에서 적절히 기능한다. 따라서, 기준 TV 장치는 테스트 시나리오의 목표 상태 및 대응하는 사용자 상호 작용 단계를 정의하는데 사용될 수 있다. 본 발명의 방법은 수동적인 사용자 입력 신호가 기준 TV 장치로 간단히 향해질 수 있기 때문에 테스트 시나리오의 정의를 효율적이고 직접적인 방법으로 가능하게 하고, 이때 수동적 사용자 입력 신호 및 상기 대화형 애플리케이션 및/또는 상기 TV 장치의 목표 상태는 상기 테스트 시나리오를 정의하도록 자동적으로 모니터되어 사용된다.
또한, 본 발명에 따르면 상술한 바와 같은 테스트 방법을 실행하는 데에 적합한 테스트 시스템을 제공하고 있으며, 시스템은 테스트 드라이버 시스템 및 적어도 하나의 TV 장치를 포함한다. 적어도 하나의 TV 장치는 대화형 애플리케이션을 포함하고, 테스트 정의 헬퍼 라이브러리는 대화형 애플리케이션에 통합된다. 테스트 정의 헬퍼 라이브러리는 대화형 애플리케이션 및/또는 적어도 하나의 TV 장치의 상태에 대한 정보를 획득하도록 구성된다. 또한, TDS는 적어도 하나의 TV 장치에서 일련의 사용자 상호 작용 단계를 불투명하게 수행함으로써 적어도 하나의 테스트 시나리오를 실행하도록 구성된다. 상기 시스템은 또한 상기 테스트 정의 헬퍼 라이브러리에 의해 획득된 상기 대화형 애플리케이션 및/또는 상기 적어도 하나의 TV 장치의 상태에 대한 정보를 상기 지정한 사용자 상호 작용 단계 후의 상기 적어도 하나의 목표 상태와 비교하도록 구성된다.
바람직하게, 상기 테스트 드라이버 시스템은 비교를 수행하도록 구성된다.
바람직한 실시예에서, 테스트 드라이버 시스템은 테스트 시나리오의 사용자 상호 작용 단계를 적어도 하나의 TV 장치 각각에 적합한 사용자 입력 신호로 변환하도록 구성된 번역 모듈을 포함한다.
또한, 테스트 드라이버 시스템은 적어도 하나의 TV 장치 각각에 적합한 사용자 입력 신호를 방출하도록 구성된 실행 유닛을 포함하는 것이 바람직하며, 실행 유닛은 바람직하게는 적외선 이미터, 무선 전파 송신기 및/또는 네트워크 연결 모듈을 포함한다. 바람직하게, 실행 유닛은 적어도 하나의 TV 장치 각각에 제공된다.
다른 실시예에서, 테스트 드라이버 시스템은 또한 적어도 하나의 TV 장치에 적합한 수동 사용자 입력 신호를 수신하도록 구성된 학습 유닛을 포함하고, 테스트 드라이버 시스템은 수동 사용자 입력 신호를 테스트 시나리오의 사용자 상호 작용 단계로 변환하도록 구성된 변환 모듈을 포함한다.
테스트 드라이버 시스템은 수정된 대화형 애플리케이션을 적어도 하나의 TV 장치에 자동으로 설치하거나 제공하도록 구성된 방송 유닛을 포함할 수 있으며, 대화형 애플리케이션은 바람직하게 방송 애플리케이션이고, 방송 유닛은 바람직하게 적어도 하나의 TV 장치에 텔레비전 신호, 바람직하게는 DVB 신호를 제공하며, 상기 텔레비전 신호는 바람직하게 상기 수정된 대화형 애플리케이션을 상기 적어도 하나의 TV 장치에 제공하도록 구성된다.
본 발명의 방법과 관련하여 상술한 목적 및 이점은 본 발명의 시스템에도 또한 적용된다. 본 발명의 시스템은 본 발명의 방법과 관련하여 설명된 특징에 의해 더욱 개발될 수 있다.
일반적으로 구현 기술 또는 목표 플랫폼과 독립적으로 임의의 소프트웨어 애플리케이션에 본 발명의 아이디어를 적용할 수 있다는 것이 이해될 것이다. 그러나 본 독립항에 의해 정의된 바와 같은 본 발명은 TV 장치 상에서 실행되는 대화형 애플리케이션의 테스트에 명백하게 제한된다.
본 발명의 특징, 목적 및 이점은 첨부한 도면과 함께 바람직한 실시예의 다음의 예시적인 설명에 의해 더욱 명백해질 것이다:
도 1은 본 발명의 예시적인 실시예를 도시한 개략도이다.
도 2는 본 발명의 중앙 서버의 목적을 나타내는 본 발명의 제2 실시예의 개략도이다.
도 3은 라우팅 유닛을 포함하는 제3 실시예를 도시한 개략도이다.
도 4는 이미지 캡처 유닛을 포함하는 본 발명의 다른 실시예의 일부 요소들을 도시하는 개략도이다.
본 발명의 시스템의 예시적인 실시예를 도 1에 도시한다. 시스템의 주요 구성 요소는 테스트 드라이버 시스템(test driver system; TDS)(14) 및 TV 장치(18)상에서 실행되는 대화형 애플리케이션에 통합된 테스트 정의 헬퍼 라이브러리(test definition helper library; TDHL)(15)이다.
TDS(14)는 중앙 서버(24), 제어 유닛(21), 실행 유닛(20), 변환 유닛(19), 방송 유닛(17), 학습 유닛(22) 및 전환 모듈(23)을 포함한다. 그래픽 사용자 인터페이스(graphical user interface; GUI)(13)는 중앙 서버(24)상에서 실행되고 인터넷을 통해 액세스될 수 있다. 도 1에 도시된 TDS(14)의 요소들의 국부적 배열은 예시적인 배열일 뿐이며, 이들 요소의 실제 위치에 대한 어떠한 제한도 의미하지 않는다.
중앙 서버(24)는 모든 TDS(14) 소프트웨어를 호스팅하는 네트워크 서버이다. 중앙 서버(24)는 상이한 지리적 위치에 배치될 수 있는 상이한 물리적 컴퓨터 기기 상에 분산될 수 있다. 중앙 서버(24)는 TV 장치(18)를 제어하는 제어 유닛(21)에 접속된다. 제어 유닛(21)과 TV 장치(18)는 동일한 IP 네트워크에 배치된다. 도 2에 도시된 바와 같이, 중앙 서버(24)는 TV 장치(18)의 상이한 그룹(27)에 연결될 수 있으며, 각각의 그룹은 별개의 제어 장치(도시되지 않음)에 의해 제어되며, 각각의 그룹(27) 및 관련 제어 장치는 별도의 IP 네트워크의 일부이다. 여러 테스트 운영자(test operator)(26)는 사용자 계정에 의해 중앙 서버(24)와 접속하고 TV 장치(18)의 그룹(27)에 대한 테스트 동작을 동시에 수행할 수 있다.
도 1을 다시 참조하면, 제어 유닛(21)은 모든 TV 장치(18)를 제어하고 중앙 서버(24)에 보고한다. 제어 유닛(21)은 중앙 서버(24)에 대한 지속적인 연결을 생성하고 유지한다. 사용자 계정과의 페어링(pairing) 후에, 제어 유닛(21)은 중앙 서버(24)로부터의 명령을 청취하고 이를 제어 유닛(21) 또는 다른 IP 네트워크상에 위치하는 다른 제어 유닛에 전송하거나, 로컬 메트릭을 수집한다. 라우팅 유닛(routing unit)(후술됨)과 함께 사용되면, 제어 유닛(21)은 도메인을 변환하고 테스트 스크립트를 주입할 수 있는 http 프록시를 제공할 수 있다. 제어 유닛(21)은 라즈베리파이®(Raspberry Pi®)와 같은 마이크로컴퓨터일 수 있다. 그럼에도, 예를 들어, ARM®, x86 또는 AMD64® 및 running Linux®, FreeBSD® 또는 Windows®에 기초하는 CPU 아키텍처를 갖춘 모든 컴퓨팅 장치를 제어 유닛으로 배포할 수 있다. 당업자라면 임의의 현대 가정용 PC가 제어 유닛(21)이 되기에 적합하다는 것을 알 수 있을 것이다.
방송 유닛(17)은 TV 장치(18)에 의해 수신된 애플리케이션 정보 테이블(AIT)을 포함하는 DVB 신호를 방송하는데 사용된다. TV 장치(18)는 방송 애플리케이션을 실행하는 것이 가능하며 방송 유닛(17)에 의해 방송된 DVB 신호에 동조된다. 상기 DVB 신호는 TDHL이 통합된 대화형 애플리케이션을 포함한다. TDHL을 포함하는 대화형 애플리케이션은 DVB 신호의 AIT에서 자동 시작 레코드로 인해 TV 장치(18)상에서 자동으로 시작한다. 당업자는 TDS(14)에 연결한 다음에 TDS(14)를 대신하여 스스로 목표 애플리케이션을 시작하는 특수하게 조작된 자동 시작 애플리케이션을 갖는 정적 AIT를 사용함으로써 이를 달성하는 적어도 하나의 다른 방법이 있다는 것을 이해할 것이다. 본 발명의 방송 유닛은 전술한 바와 같은 성능을 갖는 DekTec DTU-215® 또는 임의의 다른 장치와 같은, 케이블/지상 변조기일 수 있다.
TDHL(15)은 대화형 애플리케이션 및/또는 애플리케이션의 뷰 객체(view object)의 런타임(runtime)을 검사하고, 애플리케이션에 의해 만들어진 네트워크 트래픽을 청취, 수집 및/또는 TDS로 전송하고, 애플리케이션의 콘솔 출력을 청취, 및/또는 수집 및/또는 TDS로 전송하고, 장치 스크린상의 렌더링(rendering)의 스크린 샷 또는 비디오 캡처를 수행하고/하거나 이를 TDS(14)로 전송할 수 있다. 일부 실시예에서, TDHL(15)은 이용 가능한 플랫폼 툴을 이용하여 테스트중인 애플리케이션 외부의 검사 및 측정을 실행하는데, 예를 들어 공유 메모리 또는 시스템 내부를 검사한다. TDHL(15)는 테스트중인 대화형 애플리케이션 플랫폼에 의해 지원되는 언어로 작성, 컴파일 및/또는 트랜스파일(transpile)된다. 예를 들어, 방송 애플리케이션용 TDHL(15)은 자바스크립트로 작성, 컴파일 및/또는 트랜스파일된다. TDHL(15)의 또 다른 특징은 TV 장치(18)나 그 장치에서 실행중인 대화형 애플리케이션 모두에 대해 제한하지 않는다는 것이다.
GUI(13)는 웹 기반 그래픽 사용자 인터페이스 애플리케이션이지만, 다른 실시예에서는 퍼스널 컴퓨터 또는 유사한 장치 상에서 실행 가능한 임의의 다른 유형의 애플리케이션일 수 있다. GUI(13)는 완전한 테스트 시나리오뿐만 아니라 사용자 상호 작용 단계를 정의하는 역할을 한다. GUI(13)는 중앙 서버(24)를 통해 TDS(14)의 제어 유닛(21)과 통신한다. GUI(13)는 일반적으로 시스템의 다른 구성 요소와 직접 통신하지 않는다. GUI(13)는 통계적 개요뿐만 아니라 과거 이력의 테스트 실행에 기초하여 고급 데이터 분석을 수행하기 위한 수단을 제공할 수 있다. GUI(13)는 그래픽 사용자 인터페이스 애플리케이션이며, 테스트 케이스를 생성 및 관리하고, 테스트 결과 및 기록을 보고, 테스트 이력을 보고, 현재 시스템에 있는 장치를 관리하거나 새로운 장치를 추가하고, 다른 사용자와 장치를 공유하고, 앱 구성을 관리하는 데에 사용될 수 있으며, 자동 테스트 생성은 이전 테스트 및 기계 학습 알고리즘에 기반한다.
후술되는 바와 같이 자연 테스트 언어로 테스트를 작성하는 것을 가능하게 한다. 일부 실시예에서, GUI(13)는 상기 상이한 유형의 테스트, 예를 들어 단위 테스트 또는 통합 테스트를 추가하는 것을 가능하게 한다. GUI(13)는 TDS(14)와 직접 상호 작용한다. 일부 실시예에서, GUI(13)는 테스트 운영자가 테스트 조건을 자동으로 생성하는 것을 도울 수 있다. 테스트 운영자는 GUI(13)를 열고 TV 장치(18)에서 테스트할 애플리케이션을 연다. 테스트 운영자는 GUI 13에서 "뷰 요소 선택" 버튼을 눌러 요소 선택 모드를 시작한다. 요소 선택 모드에서, GUI(13)는 테스트 운영자가 특정 뷰 요소를 선택하고 그 현재 속성(property)을 자동으로 검색하는 것을 가능하게 한다. GUI(13)가 퍼스널 컴퓨터 또는 유사한 장치 상에서 시작된다면, 일부 실시예에서 "뷰 요소 선택"을 누르는 것으로 GUI(13)가 실행중인 PC에 부착된 마우스의 움직임과 TV 장치(18)상의 가시적 포인터의 움직임의 페어링되게 할 수 있다. 마우스 버튼을 클릭하는 것은 상기 포인터로 현재 포인팅되고 있는 요소의 특성을 검색할 수 있다. 일부 실시예에서, 테스트 운영자는 애플리케이션의 뷰 트리(view tree) 내에서 뷰 요소를 식별하는데 사용되는 선택기 문자열을 특정하는 옵션을 제공받을 수 있다. 테스트중인 애플리케이션이 HTML 기반인 경우 해당 문자열은 CSS 또는 XPath 선택기 문자열이 될 수 있다. 대안으로, TDHL(15) 또는 하부 플랫폼에 의해 인식 가능한 임의의 포맷일 수 있다.
GUI(13)는 또한 TDHL(15)에 의해 자동으로 미리 선택되거나 테스트 운영자에 의해 수동으로 저장된 뷰 요소의 저장소를 사용자에게 제공할 수 있다. 이렇게 선택된 뷰 요소는 테스트 운영자에게 더 나은 방향을 제공하도록 애플리케이션에서 강조 표시될 수 있다. 당업자라면 특정 뷰 요소를 선택하는 다수의 다른 방법이 있다는 것을 이해할 것이다.
GUI(13)는 또한 테스트(들)의 과거 및 비교 분석 수단을 제공할 수 있다. 특히 애플리케이션이 어느 시점에서 실패하기 시작했는지와 그 실패의 원인은 무엇인지 완전히 또는 부분적으로 자동 결정할 수 있는 툴을 제공할 수 있다. 일부 실시예에서, GUI(13)는 텍스트 및 그래픽 기록을 생성할 수 있고, 테스트 결과 및 애플리케이션 내부 정보에의 더 깊은 드릴다운(drilldown)을 허용할 수 있다.
GUI(13)는 또한 애플리케이션 디버깅(debugging) 및/또는 개발을 위한 툴로서 기능할 수 있다. 예를 들어, GUI(13)는 그 애플리케이션뿐만 아니라 그 콘솔 출력에 의해 야기된 인터넷 트래픽을 보면서 애플리케이션을 런칭하는 툴을 제공할 수 있다. GUI(13)는 단순히 TDHL(15)로 하여금 애플리케이션의 검사 루틴(inspection routine)을 수행하게 함으로써 애플리케이션의 오류 또는 잠재적 오류를 완전히 자동으로 보고할 수 있다.
일부 실시예에서, GUI(13)는 또한 테스트를 반복적으로(단계별로) 실행하거나 하나 이상의 TV 장치 상에서 이것을 동시에 모두 실행하기 위한 수단을 제공할 수 있다. GUI(13)는 또한 원격 또는 로컬로 하나 이상의 TV 장치에서 테스트 실행을 스케줄링(scheduling)하는 수단을 제공할 수 있다.
일부 실시예에서, GUI(13)는 또한 테스트 진행을 장치 상에서의 애플리케이션 상태와 동기화시키는 수단을 제공할 수 있다. 당업자라면 테스트(임의의 UI 테스트)가 본질적으로 애플리케이션 상태를 수정하는 사용자 입력 단계들의 시퀀스라는 것을 이해할 것이다. GUI(13)는 테스트 운영자에게 TV 장치(18)상의 애플리케이션의 상태가 GUI(13) 내부의 테스트 진행에 대응하는지에 대해 경고할 수 있다.
GUI(13)에 의한 사용자 상호 작용 단계의 정의 후에, TDS(14)의 변환 모듈(19)은 사용자 상호 작용 단계를 적어도 하나의 TV 장치 각각에 적합한 사용자 입력 신호로 변환한다. 사용자 입력 신호는 각각 적외선 이미터(infrared emitter)를 포함하는 실행 유닛(20)으로 전송된다. 적외선 이미터는 TV 장치(18)에 의해 수신될 수 있는 길이 940nm의 적외선 파장을 방출할 수 있다. 사용자 입력 신호는 적외선 이미터에 의해 TV 장치(18)로 보내진다. 대화형 애플리케이션 및/또는 TV 장치(18)의 상태는 사용자 입력 신호에 의해 변경된다. 다른 실시예에서, 실행 유닛(20)은 TV 입력 장치(18)로 사용자 입력 신호를 방출하도록 구성된 블루투스® 송신기 및/또는 네트워크 접속 모듈을 부가적으로 또는 대안적으로 포함할 수 있다.
실행 유닛(20)은 USB, 이더넷, Wi-Fi, 블루투스®와 같은 인터페이스를 통해 제어 유닛(21)에 접속할 수 있는 인터페이스를 더 포함한다.
당업자에게 실행 유닛(20)이 추가적인 모듈을 필요로 하거나 단지 소프트웨어일 수 있다는 것이 이해될 것이다. 예를 들어, TV 장치가 HTTP Api 호출에 의해 제어되는 경우, 실행 유닛(20)은 제어 유닛(21)상에서 실행되는 소프트웨어의 일부일 수 있다. 다른 예: 장치가 표준 키보드에 의해 탐색 가능한 경우, 제어 유닛(21)은 키보드 에뮬레이션 컨트롤러(keyboard emulation controller)를 포함할 수 있다. 다른 예: TV 장치의 원격 제어가 블루투스 표준에 기초하는 경우, 본 발명은 프로그램 가능한 블루투스® 인터페이스를 갖춘 실행 유닛(20)을 사용할 수 있다.
테스트 언어
각 테스트는 임의의 단계로 구성된다. 각 단계는 합성이지만 사람이 읽을 수 있는 언어로 표현될 수 있다. 이 테스트는 QA 프로세스 중에 실제 테스터의 실제 동작을 모델링하는 것을 목표로 한다. MyApp가 탐색 커서 버튼에 응답하는 앱이라고 가정한다. 다음은 7 단계의 탐색 테스트의 예이다:
1. MyApp를 열거나 5000 ms 후 타임아웃으로 실패한다.
2. "DOWN" 버튼을 한 번 누른다.
3. "RIGHT" 버튼을 세 번 누른다.
4. "비디오 티저"가 존재하지 않으면 테스트는 실패한다.
5. "비디오 티저" 배경색이 rgba(0, 0, 0, 1)와 같지 않다면; 테스트는 실패한다.
6. "OK" 버튼을 한 번 누른다.
7. "비디오 플레이어" 요소가 나타날 때까지 기다리거나 5000 ms 후에 타임아웃으로 실패한다.
테스트 정의에서 알 수 있듯이 이 간단한 테스트는 앱을 열고, 4번의 버튼 누름을 실행하고, 요소 "비디오 티저"의 존재 여부를 확인한 다음, 이어서 정확한 배경색을 가지고 있는지 확인한다. 그런 다음 OK 버튼을 누르면 비디오 플레이어가 나타나도록 실행될 것이다.
이 테스트 정의는 모든 TV 장치 플랫폼의 모든 대화형 애플리케이션에 적용할 수 있다는 것이 이해될 것이다. 이 테스트에서 가정하는 유일한 사항은 애플리케이션이 탐색 버튼에 응답한다는 것이다. 본 발명의 시스템의 일부 실시예는 특정 플랫폼의 탐색 세부 사항을 커버하기 위해 적용 가능한 탐색 절(clauses)을 만들 수 있다.
본 발명의 GUI(13)는 일반적으로 상기한 예와 같이 정확하게 테스트를 정의하는 것을 가능하게 한다. 운영자는 단계를 매우 일반적인 단계에서 매우 좁은 단계로 수정하는 옵션을 선택하여 각 단계를 정의할 수 있다. 예를 들어 테스트 조건을 보유하는 단계를 생성하려면 다음을 수행한다:
1. 운전자가 "조건 단계 추가" 버튼을 누른다.
2. 다음 단계가 테스트 케이스에 삽입된다. [조건]인 경우 [테스트 계속].
3. 운영자는 [조건]을 클릭하고 적합한 옵션으로부터 조건의 유형을 선택한다. 옵션의 정확한 선택은 플랫폼 및 테스트중인 애플리케이션의 유형에 따라 다르다. 그러나 이용 가능한 조건은 애플리케이션의 임의의 현재 상태를 기술하는 것을 가능하게 한다는 것이 이해될 것이다. 예를 들어 웹 기반 애플리케이션의 경우 목록은 [뷰 요소, 비디오플레이어, 페이지 위치, 변수 값]에 제한되지 않다. 예를 들어 운영자가 [조건]에 대해 [비디오플레이어]의 값을 선택했다고 가정한다.
4. 단계는 다음과 같이 변형된다. [비디오 플레이어][속성][가짐]인 경우 [테스트 계속].
5. 운영자는 단계 3에서 [조건] 부분을 확장할 때와 같은 방법으로 [속성] 부분을 확장할 수 있다. [가짐] 부분은 또한 필요하다면 변경될 수 있다. 운영자가 [속성]에 대해 속성 "상태"를 선택했다고 가정한다.
6. 단계는 다음과 같이 변환된다: [비디오플레이어][정지][와 동일한][상태][가짐]인 경우 [테스트 계속]. GUI는 운영자의 노력을 절감하기 위해서 가능한 한 자동 완성하려고 하므로, 배경 색의 현재 상태의 값으로 "플레잉"을 채운다. 단계 6에서 조건은 완전히 확장되고 운영자는 테스트 케이스의 다음 단계로 진행할 수 있다.
본 발명은 예를 들어 조건 결과가 참이라면 단계가 성공적이라고 간주되어야 한다고 정의할 수 있는 기능을 운영자에게 제공한다. 이것은 [테스트 계속] 부분에 의해 제어된다. 운영자는 이것을 테스트 계속, 테스트 실패, 테스트 중지, 경고 발급 중 하나로 변경할 수 있다.
테스트 정의
예시적인 시스템의 모든 테스트 케이스는 단일 규칙에 기초할 수 있다. 애플리케이션의 컨텐츠 데이터가 변경되지 않은 것으로 가정하면, 애플리케이션과의 사용자 상호 작용의 임의의 고정 순서는 실행 후에 애플리케이션이 모든 목표 장치에서 동일한 상태에 들어갈 수 있게 해야 한다. 즉, 사용자가 애플리케이션에 동일한 작업을 수행하면 동일한 결과가 돌아와야 한다.
테스트 정의 프로세스는 테스트 운영자가 자신이 처분할 수 있는 "기준 TV 장치"를 가지고 있다고 가정한다. 예를 들어, TV 장치들(18) 중 하나는 기준 TV 장치일 수 있다. 대안적으로, 기준 장치는 TV 장치들(18)에 추가하여 시스템에 접속될 수 있다. 기준 TV 장치 상에, 시험되는 애플리케이션은 오류 없이 기능한다. 애플리케이션 상태에 연결되지 않으면 테스트 단계는 아무런 가치가 없으므로 적어도 하나의 장치를 가지고 있는 것이 일반적으로 필요하다.
본 발명은 특정 테스트 단계를 애플리케이션 및/또는 TV 장치(18)의 대응 상태와 동기화할 수 있다는 것이 이해될 것이다. GUI(13)는 테스트 운영자가 임의의 테스트 단계로 빠르게 전진 또는 후진하게 하고 TV 장치(18)상의 애플리케이션 상태를 보는 것을 가능하게 한다는 것이 이해될 것이다. 이것은 테스트 운영자가 테스트 단계에 대해 유일하게 신뢰할 수 있는 정보원인 애플리케이션의 캡처된 상태에 기초하여 테스트 케이스를 편집하고 있기 때문에 본 발명의 매우 중요한 특징이 될 수 있다.
예시적인 시스템은 또한 각각의 상호 작용 후에 애플리케이션 및/또는 TV 장치(18)의 상태뿐만 아니라 애플리케이션 및/또는 기준 TV 장치(18)로 향하는 수동 사용자 입력 신호를 기록하는 것을 가능하게 한다. 즉, 테스트 케이스는 최종 사용자가 사용한 것과 동일한 방식으로 애플리케이션을 간단히 사용하여 기록될 수 있다. 기록을 시작하기 위해 테스트 운영자는 기준 TV 장치 상에 TDHL(15)을 포함하는 애플리케이션을 열고 GUI(13)에서 자신의 계정에 로그인하고 GUI(13)에서 "테스트 기록 시작" 버튼을 누른다. 그러면 그 애플리케이션으로 전달되기 전에 모든 수동 사용자 입력 신호를 인터셉트(intercept)하고 이 인터셉트 후에 애플리케이션 상태를 검사하는 TDHL(15)에서의 감시 기능을 작동시키게 된다. TDHL(15)는 그 결과를 TDS(14)로 보내고, 다음에 이것을 GUI(13)으로 전달한다. 이 결과로 테스트 케이스의 새로운 단계가 GUI(13)의 내부에 즉각적으로 나타난다.
경우에 따라, TDHL(15)은 수동 사용자 입력 신호를 인터셉트할 수 없다. 따라서, 예시적인 TDS(14)는 수동 사용자 입력 신호를 수신하도록 구성된 학습 유닛(22)을 더 포함한다. 이러한 수동 사용자 입력 신호는 예를 들어 광 신호(예를 들어, 종래의 원격 제어에 의해 전송된 적외선 신호), HTTP Api 호출 또는 표준 키보드 입력 신호일 수 있다. 수신된 신호는 전환 모듈(23)에 전송되고 이 모듈은 신호를 대응하는 사용자 상호 작용 단계로 전환한다. 또한, 각각의 수동 사용자 입력에 이어, 애플리케이션의 상태는 TDHL(15)에 의해 모니터되고 제어 유닛(21)으로 전송된다. 사용자 상호 작용 단계를 애플리케이션의 모니터된 상태와 결합함으로써, 테스트 시나리오가 생성될 수 있다.
학습 유닛(22)은 다음의 추가 요소를 포함할 수 있는 전자 장치이다:
- USB, 이더넷(Ethernet), Wi-Fi, 블루투스® 또는 그 외 인터페이스를 통해 제어 유닛(21)에 접속할 수 있는 인터페이스,
- 반송파 주파수를 측정하는 센서 또는 상이한 반송파 스펙트럼을 각각 필터링하는 센서 어레이로 보완될 수 있는 광학 센서,
- 광학 센서에 의해 캡처된 데이터를 처리하기 위한 마이크로 컨트롤러.
전술한 바와 같이, 특정 TV 장치(18)는 종래의 원격 제어에 대안하는 제어 방법을 특징으로 할 수 있다. 예를 들어, TV 장치(18)는 HTTP를 통해 전송된 API 명령에 응답할 수 있다. 따라서, 학습 장치(22)는 이들 대안의 제어 방법을 또한 수신할 수 있다. 본 발명의 모든 제어 유닛(21)은 특정 그룹의 장치에서 하나 이상의 학습 유닛(22)을 이용할 수 있다.
또한, 예시적인 실시예의 TDHL(15)은 테스트 기록 세션(session) 동안 출현하는 다른 이벤트, 즉 데이터 트래픽, 운영 체제 런타임 변경, 메모리 상태 등을 로그(log)한다. 최대 정밀도를 달성하기 위해, TDHL(15)은 너무 자주 (초당 수백 번) 발생하는 앱 또는 이벤트와의 사용자 상호 작용에 의해 초래될 수 없는 이벤트를 걸러낸다. 이 이벤트는 기록된 테스트 케이스에 별도의 단계로서 로그될 수 있다.
테스트 운영자는 기록의 일부를 삭제하거나 수정하여 테스트를 더욱 강화하거나 확장할 수 있다. 테스트 운영자는 직접적인 선택을 통해 수동으로 기준 요소를 정의할 수도 있다. 예시적인 실시예는 예측 모델링 알고리즘 및 패턴 인식을 사용하여 정적 입력 파라미터에 기초하여 자동 테스트 생성을 제공한다는 것이 이해될 것이다. 예를 들어, 애플리케이션의 특정 요소에 태그를 붙이면, TDHL(15)은 유사한 특성을 갖는 요소인 "시블링즈(siblings)"를 찾고, 시블링즈의 컨텍스트에 적합한 태그된 요소에 대해 원래 정의된 동작을 반복하고, 이 작업의 결과가 정확한지에 대해 지능적인 추측을 수행하게 된다. 다른 예: 사용자 입력의 특정 시퀀스가 애플리케이션이 한 번 실패하게 하면, TDHL(15)은 애플리케이션이 동일하거나 유사한 사용자 입력 시퀀스의 대상이 될 경우 다시 실패할 가능성이 있는 상황을 검출할 수 있다. 그러한 경우, TDHL(15)은 가장 가능성이 큰 실패 시나리오를 결정하는 통계적 변동을 계산한다. 결과적으로 감독 없이 TDHL(15)는 실패할 가능성이 있는 사용자 입력 시나리오를 포함하는 포괄적인 테스트 실행 계획을 생성한다. 예시적인 실시예는 전술한 것과 다른 테스트의 실행을 제어할 수 있다는 것이 이해될 것이다. 예를 들어, 시스템은 단위 테스트, 통합 테스트 또는 소프트웨어 개발자/QA 담당자가 일반적으로 만든 다른 유형의 테스트의 결과를 실행하고 수집할 수 있다.
테스트 실행
테스트 원칙은 모든 플랫폼에 대해 동일하지만, 실제의 테스트 실행은 모든 플랫폼마다 다르며 프로세스를 관리하는 시스템의 복잡성이 크게 다르다. 예시적인 실시예의 TDS(14) 구성 요소는 특정 플랫폼의 임의의 양의 TV 장치(18)를 병렬로 제어하기 위한 통합형 애플리케이션 프로그래밍 인터페이스(API)를 제공하는 플랫폼 차이를 요약한다. 다음의 방법들이 예시적인 TDS(15)에 의해 수행될 수 있다: 애플리케이션을 설치하고, 애플리케이션을 시작하고, 사용자 입력을 보내고(키 이벤트, 마우스 이벤트, 터치 이벤트, 다른 HID 이벤트), 애플리케이션을 파괴하고, 애플리케이션 실패로부터 복구하고, 애플리케이션 상태를 보고하고, 장치 재시작/재초기화하고, 구성 요소 상태를 보고하고, 런타임 상태를 보고하고, 셸(shell) 또는 플랫폼 특정 명령을 실행한다.
테스트 실행과 관련해서 TDS는 일반적으로 기준 TV 장치(테스트 정의용으로 사용)와 테스트 장치(테스트 케이스의 비수반(unattended) 실행용으로 사용)를 구분한다. 기준 TV 장치의 기능은 위에 설명되어 있다. API 방법은 임의의 양의 테스트 TV 장치(18)에서 동시에 동작하며, 장치가 TDS(14)의 동작에 영향을 미치지 않고 임의의 시점에서 장치 풀(pool)에 참여하고 나올 수 있다는 것을 알 수 있을 것이다. 본 발명은 TV 장치(18)가 테스트 장치 풀에 자유롭게 참여하는 것을 가능하게 한다는 것이 이해될 것이다. 예를 들어, 동일한 (IP) 네트워크에서 테스트 장치의 클러스터는 또한 "장치 동물원(device zoo)"이라고도 한다.
TV 장치들(18)로 구성된 장치 동물원은 TDS(14)의 일부인 사전 설치된 소프트웨어를 갖는 전용 컴퓨터 기기인 제어 유닛(21)에 의해 제어된다. 이 경우, 제어 유닛(21)은 동물원 마스터(zoo master)라고도 불린다. 동물원 마스터는 다른 동물원 구성원과 동일한 네트워크에 있다. 예를 들어, 라즈베리파이®는 동물원 마스터로 활용될 수 있다. 플랫폼에 따라 동물원 구성원의 애플리케이션을 관리하려면 추가 하드웨어 및 소프트웨어가 필요할 수 있다. 또한, 시스템은 최종 사용자가 사용하지 않을 때 테스트를 실행하기 위해 최종 사용자에 속한 장치를 이용할 수 있다.
예시적인 실시예에 대한 더 상세한 설명
이하 "에뮬레이터(emulator)"라는 용어는 특정 TV 장치의 동작을 에뮬레이션하는 컴퓨터 소프트웨어를 의미한다. TV 장치 상에 설치된 소프트웨어와 동일한 소프트웨어를 포함하는 가상 기기를 배포하는 것은 하드웨어 제조자에게는 통상적인 일이라는 것이 당업자에게 알려져 있다. "에뮬레이터"는 그러한 가상 기기를 나타낸다.
이후로 "플랫폼(platform)"이라는 용어는 제조 시설을 떠나는 시점에서 장치에 사전 설치된 소프트웨어와 그러한 소프트웨어의 수정된 버전을 의미한다. 이것은 예를 들어, 장치 펌웨어, 운영 체제 또는 장치에 설치된 특수 애플리케이션 세트를 포함한다. 단일의 물리적 장치에는 하나 이상의 플랫폼이 설치되어 지원될 수 있다.
본 발명은 상이한 지리적 위치에 위치하고 상이한 사용자 또는 개체가 소유하는 상이한 유형의 TV 장치(18)를 지원한다.
도 3에 본 발명의 다른 실시예가 도시된다. 도 3의 실시예에서, TDS(14)는 라우팅 유닛(30) 및 네트워크 미들웨어 유닛(network middleware unit)(31)을 포함한다. 라우팅 유닛(30)은 특별히 구성된 네트워크 라우팅 장치이다. TV 장치(18)는 이더넷 접속(실선) 또는 무선 네트워크 접속(32)에 의해 라우팅 유닛에 접속된다. 라우팅 유닛(30)은 다음에, 제어 유닛(21)에 또한 중앙 서버(24)에 접속된다. TV 장치(18) 및 제어 유닛(21) 및/또는 중앙 서버(24) 간의 네트워크 트래픽은 라우팅 유닛(30)을 통해 흐른다. 라우팅 유닛(30)은 네트워크 트래픽을 검사할 수 있고 제어 유닛(21) 및/또는 중앙 서버 대신에 아이피 주소, 맥 주소를 수집하고, DNS 레코드를 위조하고, 목적지 아이피를 재기록하거나 VPN 서비스를 제공한다.
라우팅 유닛(30)은 오픈 API, 실행중인 DD-WRT® 또는 Mikrotik®를 포함한다. 라우팅 유닛(30)은 TV 장치(18)상에서 실행되는 대화형 애플리케이션에 TDHL(15)(도시되지 않음)을 자동으로 제공하도록 구성되어, 수동 개발자의 노력을 불필요하게 한다.
또한, 도 4의 실시예의 TDS(14)는 네트워크 미들웨어 유닛(31)을 포함한다. 네트워크 미들웨어 유닛(31)은 라우팅 유닛(30)에 대한 보완으로 사용되지만, 다른 실시에서 네트워크 미들웨어 유닛(31)은 라우팅 유닛(30)에 대한 대안으로 사용될 수 있다. 네트워크 미들웨어 유닛(31)은 적어도 부분적인 트래픽 차단 및 검사를 허용하는 특별한 소프트웨어를 포함한다. 네트워크 미들웨어 유닛은 대화형 TV 애플리케이션에 의해 요청된 네트워크 리소스의 사전 정의된 버전을 제공한다. 구현 방법은 다음과 같다.
GUI(13)(도시되지 않음) 내에서, 사용자는 테스트될 애플리케이션의 URL을 지정할 것이며, 또한 이 애플리케이션을 테스트할 때 네트워크 미들웨어 유닛이 배치되어야 함을 나타낼 것이다. 그러한 경우, 중앙 서버(24)는 네트워크 미들웨어 유닛(31)과 네트워크 주소들의 맵(map)을 협상할 것이다. 예를 들어 도메인 example.com 에서 실행되고 a.example.com 및 b.example.com의 리소스를 사용하는 앱을 생각해 본다. 또한, 도메인 *.invention.tld가 동일한 네트워크 미들웨어 유닛(31)의 IP 주소로 확인되도록 설정되어 있다고 가정한다.
따라서, 중앙 서버(24)로부터의 요청에 따라, 네트워크 미들웨어 유닛(31)은 이들 예시의 도메인들에 대해 다음의 맵을 생성할 수 있다:
example.com x.invention.tld
a.example.com y.x.invention.tld
b.a.example.com z.y.x.invention.tld
중앙 서버(24)는 위의 표에 의해 자체적으로 관리된다. example.com의 테스트를 시작할 때 위의 매핑(mapping)으로부터의 해당 도메인, 이 경우 x.invention.tld을 열도록 TV 장치에 지시한다. 중앙 서버(24)가 네트워크 미들웨어 유닛(31)으로 확인하기 때문에, 요청은 거기에 도착하게 된다. 네트워크 미들웨어 유닛(31)은 자신이 생성한 것으로 x.invention.tld를 인식하고, 그 리소스로부터 데이터를 인출하기 위해서 example.com - 맵 내의 대응하는 도메인에 네트워크 요청을 수행할 것이다. 네트워크 미들웨어 유닛(31)은 데이터를 검색한 후 example.com의 모든 항목을 데이터 내의 x.invention.tld로 교체할 것이다. 더욱, 상기 표에 따라 교체를 수행할 것이다.
당업자는 이 접근법에 의하면 example.com의 리소스 및 리소스에 관련되고 링크된 모든 것이 일명 x.invention.tld(또는 표에 기술된 매핑에 따라)와 함께 TV 장치에 전송된다는 것이 이해될 것이다.
도 4는 본 발명의 또 다른 실시예의 몇 가지 요소를 나타낸다. 실행 유닛(20)은 TV 장치(18) 각각에 제공된다. 실행 유닛(20)은 제어 유닛(21)에 접속된다. 또한 학습 유닛(22)이 제어 유닛(21)에 접속된다.
도 1의 실시예와 대조하여, 도 3의 실시예는 몇 개의 이미지 캡처 유닛(25)을 포함하고, 각각의 이미지 캡처 유닛은 TV 장치(18) 전용이다. 이미지 캡처 유닛(25)은 TV 장치(18)의 스크린을 촬영하는 것을 가능하게 하는 식으로 설치된 카메라 장치이다. 이미지 캡처 유닛(25)은 캡처된 이미지 데이터를 다시 제어 유닛(21)으로 전송하며, 제어 유닛(21)은 캡처된 이미지 데이터를 중앙 서버(24)(도시되지 않음)에 전송한다. 제어 유닛(21) 또는 중앙 서버(24)는 캡처된 이미지를 현재 진행중인 테스트의 결과에 할당한다. 일반적으로, 본 발명에 의하면 이미지 인식은 수행되지 않거나 이미지 데이터로부터 어떤 데이터도 마이닝(mined)되지 않는다. 이미지는 테스트 사이클을 설명하기 위한 용도로만 작용한다. 그러나 다른 실시예에서, 이미지 데이터는 대화형 애플리케이션 및/또는 적어도 하나의 TV 장치의 상태에 관한 추가적인 정보의 소스로서 사용될 수 있다. 이는 본 발명의 TDHL에 의해 얻어진 정보 이외에, 이미지 데이터에 대해 수행된 이미지 인식 또는 다른 종류의 데이터 마이닝에 의해 추가 정보가 얻어질 수 있다는 것을 의미한다.
본 발명의 일부 실시예는 또한 셋톱박스(Set-Top-Box)와 같이, 스크린 없는 장치들로부터 이미지를 캡처하는 것을 지원할 수 있다.
예시적인 실시예의 일부 또는 모든 요소는 저렴하고 쉬운 설치를 위해 단일 전자 장치에 결합될 수 있다.
예를 들어, 제어 유닛(21)과 실행 유닛(20)은 예를 들어 적외선 이미터를 제어 유닛(21)으로서 사용되는 라즈베리파이®와 결합하는 것으로 결합될 수 있다. 학습 유닛(22)과 실행 유닛(20)이 결합될 수 있다. 이 경우 이들은 동일한 마이크로 컨트롤러 및 통신 프로토콜을 공유하며, 결합된 장치는 이미터뿐만 아니라 센서를 가질 수 있다. 라우팅 유닛(30)은 제어 유닛(21)이 하나 이상의 네트워크 인터페이스를 갖는 경우, 제어 유닛(21)에 통합될 수 있다. 이미지 캡처 유닛(25)은 예를 들어, 제어 유닛(21)이 테스트 장치로 향해진 웹캠을 갖는 노트북인 경우, 제어 유닛(21)에 통합될 수 있다.

Claims (15)

  1. 적어도 하나의 테스트 시나리오에 따라 적어도 하나의 TV 장치(18) 상에서 대화형 애플리케이션을 테스트하기 위한 방법에 있어서,
    상기 적어도 하나의 테스트 시나리오는 상기 적어도 하나의 TV 장치(18)와 별개인 테스트 드라이버 시스템(14)에 의해 실행 및 모니터되고, 상기 적어도 하나의 테스트 시나리오는 일련의 사용자 상호 작용 단계 및 지정한 사용자 상호 작용 단계 이후에 성취될 상기 대화형 애플리케이션 또는 상기 적어도 하나의 TV 장치(18)의 적어도 하나의 목표 상태를 포함하고, 상기 방법은:
    a. 테스트 정의 헬퍼 라이브러리(15)를 상기 대화형 애플리케이션에 통합하는 단계를 포함하되, 상기 테스트 정의 헬퍼 라이브러리(15)는 상기 대화형 애플리케이션 또는 상기 적어도 하나의 TV 장치(18)의 상태에 대한 정보를 획득하도록 구성되고, 상기 테스트 정의 헬퍼 라이브러리를 대화형 애플리케이션에 통합함으로써 상기 대화형 애플리케이션이 수정되어, 수정된 대화형 애플리케이션이 제공되고;
    b. 상기 적어도 하나의 TV 장치(18)에 수정된 대화형 애플리케이션을 제공하는 단계;
    c. 상기 적어도 하나의 테스트 시나리오를 실행하는 단계를 포함하되, 상기 테스트 드라이버 시스템(14)은 상기 적어도 하나의 TV 장치(18)상에서 상기 일련의 사용자 상호 작용 단계를 불투명하게 수행하고, 상기 테스트 드라이버 시스템에 의해 불투명하게 수행되는 상기 사용자 상호 작용 단계는, TV 장치의 최종 사용자에 의해 생성된 사용자 상호 작용 단계와 구분할 수 없고;
    d. 상기 테스트 정의 헬퍼 라이브러리에 의해 획득된 상기 대화형 애플리케이션 또는 상기 적어도 하나의 TV 장치(18)의 상태에 대한 정보를 획득하는 단계를 포함하되, 상기 정보는 상기 대화형 애플리케이션의 런타임 객체에 대한 정보를 포함하고;
    e. 상기 테스트 정의 헬퍼 라이브러리(15)에 의해 획득된 상기 대화형 애플리케이션 또는 상기 적어도 하나의 TV 장치(18)의 상기 상태에 대한 상기 정보를 상기 지정한 사용자 상호 작용 단계 후의 상기 적어도 하나의 목표 상태와 비교하는 단계를 포함하고,
    상기 테스트 정의 헬퍼 라이브러리(15)에 의해 획득된 정보는 상기 테스트 드라이버 시스템(14)에 전송되고,
    상기 테스트 정의 헬퍼 라이브러리(15)에 의해 획득된 상기 대화형 애플리케이션 또는 상기 적어도 하나의 TV 장치(18)의 상기 상태에 대한 상기 정보를 상기 지정한 사용자 상호 작용 단계 후의 상기 적어도 하나의 목표 상태와 비교하는 단계는 상기 테스트 드라이버 시스템에 의해서 수행되고,
    상기 대화형 애플리케이션은 스마트 TV 애플리케이션 또는 방송 애플리케이션인, 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 테스트 정의 헬퍼 라이브러리(15)에 의해 획득된 상기 대화형 애플리케이션 또는 상기 적어도 하나의 TV 장치(18)의 상기 상태에 대한 상기 정보는:
    - TV 장치 식별 값,
    - 상기 대화형 애플리케이션의 뷰 객체에 대한 정보,
    - 상기 대화형 애플리케이션으로 인한 데이터 트래픽에 대한 정보,
    - 상기 대화형 애플리케이션의 콘솔 출력,
    - 운영 체제 런타임 변경 및
    - 공유 메모리 상태
    중 적어도 하나를 포함하는 방법.
  4. 제1항에 있어서,
    상기 테스트 드라이버 시스템(14)은 상기 적어도 하나의 테스트 시나리오의 상기 사용자 상호 작용 단계를 상기 적어도 하나의 TV 장치(18) 각각에 적합한 사용자 입력 신호로 변환하는 변환 모듈(19)을 포함하는 방법.
  5. 제1항에 있어서,
    상기 테스트 드라이버 시스템(14)은 상기 적어도 하나의 TV 장치(18)상에 상기 수정된 대화형 애플리케이션을 자동으로 설치하거나 제공하도록 구성되는 방법.
  6. 제5항에 있어서,
    상기 대화형 애플리케이션은 방송 애플리케이션이고, 상기 테스트 드라이버 시스템(14)은 상기 적어도 하나의 TV 장치(18)에 텔레비전 신호를 제공하고, 상기 텔레비전 신호는 상기 적어도 하나의 TV 장치(18)에 상기 수정된 대화형 애플리케이션을 제공하도록 구성되는 방법.
  7. 제1항에 있어서,
    상기 테스트 드라이버 시스템(14)은 상기 적어도 하나의 TV 장치(18)상에서 상기 일련의 사용자 상호 작용 단계를 불투명하게 수행하는 실행 유닛(20)을 포함하고, 상기 실행 유닛(20)은 적외선 이미터(infrared emitter), 무선 전파 송신기 및 네트워크 연결 모듈 중 적어도 하나를 포함하는 방법.
  8. 제1항에 있어서,
    상기 테스트 드라이버 시스템(14)은 상기 적어도 하나의 TV 장치(18)의 네트워크 트래픽을 인터셉트하여 대화형 TV 애플리케이션에 의해 요청된 네트워크 리소스의 미리 정의된 버전을 제공하도록 구성되는 방법.
  9. 제1항, 제3항 내지 제8항 중 어느 한 항에 따른 방법에 사용하기 위한 테스트 시나리오를 정의하는 방법에 있어서,
    상기 방법은 기준 TV 장치(18)를 사용하고:
    a. 테스트 정의 헬퍼 라이브러리(15)를 상기 대화형 애플리케이션에 통합하는 단계를 포함하되, 상기 테스트 정의 헬퍼 라이브러리(15)는 상기 대화형 애플리케이션 또는 상기 기준 TV 장치(18)의 상기 상태에 대한 정보를 획득하도록 구성되고;
    b. 상기 수정된 대화형 애플리케이션을 상기 기준 TV 장치(18)에 제공하는 단계;
    c. 수동 사용자 입력 신호를 상기 기준 TV 장치(18)에 제공하는 단계를 포함하되, 상기 테스트 정의 헬퍼 라이브러리(15) 또는 상기 테스트 드라이버 시스템(14)은 상기 수동 사용자 입력 신호를 모니터하도록 구성되고;
    d. 상기 단계 c에서 제공된 상기 수동 사용자 입력 신호에 후속하는 상기 대화형 애플리케이션 또는 상기 기준 TV 장치(18)의 상기 상태에 대한 상기 정보를 모니터하는 단계; 및
    e. 테스트 시나리오의 지정한 사용자 상호 작용 단계 및 대응하는 목표 상태를 정의하는 단계를 포함하되, 상기 지정한 사용자 상호 작용 단계는 상기 모니터된 수동 사용자 입력 신호에 기초하며 상기 목표 상태는 상기 단계 d에서 획득된 상기 대화형 애플리케이션 또는 상기 기준 TV 장치(18)의 상기 모니터된 상태에 기초하는 것
    을 포함하는 방법.
  10. 적어도 하나의 테스트 시나리오에 따라 TV 장치(18) 상에서 대화형 애플리케이션을 테스트하기 위한 테스트 시스템에 있어서,
    상기 테스트 시스템은 테스트 드라이버 시스템(14) 및 적어도 하나의 TV 장치(18)를 포함하고,
    상기 적어도 하나의 TV 장치(18)는 상기 대화형 애플리케이션을 포함하고, 상기 테스트 정의 헬퍼 라이브러리(15)는 상기 대화형 애플리케이션에 통합되고, 상기 테스트 정의 헬퍼 라이브러리(15)는 상기 대화형 애플리케이션 또는 상기 적어도 하나의 TV 장치(18)의 상기 상태에 대한 정보를 획득하도록 구성되고, 상기 테스트 정의 헬퍼 라이브러리를 대화형 애플리케이션에 통합함으로써 상기 대화형 애플리케이션이 수정되어, 수정된 대화형 애플리케이션이 제공되고, 상기 수정된 대화형 애플리케이션은 상기 적어도 하나의 TV 장치(18)에 제공되도록 구성되고, 상기 정보는 상기 대화형 애플리케이션의 런타임 객체에 대한 정보를 포함하고;
    상기 테스트 드라이버 시스템(14)은 상기 적어도 하나의 TV 장치(18)상에서 상기 일련의 사용자 상호 작용 단계를 불투명하게 수행함으로써 상기 적어도 하나의 테스트 시나리오를 실행하도록 구성되고, 상기 테스트 드라이버 시스템에 의해 불투명하게 수행되는 상기 사용자 상호 작용 단계는, TV 장치의 최종 사용자에 의해 생성된 사용자 상호 작용 단계와 구분할 수 없고;
    상기 테스트 시스템은 또한 상기 테스트 정의 헬퍼 라이브러리에 의해 획득된 상기 대화형 애플리케이션 또는 상기 적어도 하나의 TV 장치(18)의 상기 상태에 대한 상기 정보를 상기 지정한 사용자 상호 작용 단계 이후의 상기 적어도 하나의 목표 상태와 비교하고 테스트 결과를 제공하도록 구성되고,
    상기 테스트 정의 헬퍼 라이브러리(15)에 의해 획득된 정보는 상기 테스트 드라이버 시스템(14)에 전송되고,
    상기 테스트 정의 헬퍼 라이브러리(15)에 의해 획득된 상기 대화형 애플리케이션 또는 상기 적어도 하나의 TV 장치(18)의 상기 상태에 대한 상기 정보를 상기 지정한 사용자 상호 작용 단계 후의 상기 적어도 하나의 목표 상태와 비교하는 단계는 상기 테스트 드라이버 시스템에 의해서 수행되고,
    상기 대화형 애플리케이션은 스마트 TV 애플리케이션 또는 방송 애플리케이션인, 테스트 시스템.
  11. 제10항에 있어서,
    상기 테스트 드라이버 시스템(14)은 상기 대화형 애플리케이션 또는 상기 적어도 하나의 TV 장치의 상기 상태에 대한 정보를 비교하는 것은 수행하도록 구성되는 테스트 시스템.
  12. 제10항에 있어서,
    상기 테스트 드라이버 시스템(14)은 상기 적어도 하나의 테스트 시나리오의 상기 사용자 상호 작용 단계를 상기 적어도 하나의 TV 장치(18) 각각에 적합한 사용자 입력 신호로 변환하도록 구성된 변환 모듈(19)을 포함하는 테스트 시스템.
  13. 제10항에 있어서,
    상기 테스트 드라이버 시스템(14)은 상기 적어도 하나의 TV 장치(18) 각각에 적합한 사용자 입력 신호를 방출하도록 구성된 실행 유닛(20)을 더 포함하고, 상기 실행 유닛(20)은 적외선 이미터, 무선 전파 송신기 및 네트워크 연결 모듈 중 적어도 하나를 포함하는 테스트 시스템.
  14. 제10항에 있어서,
    상기 테스트 드라이버 시스템은 상기 적어도 하나의 TV 장치에 적합한 수동 사용자 입력 신호를 수신하도록 구성된 학습 유닛(22)을 더 포함하고, 상기 테스트 드라이버 시스템은 상기 수동 사용자 입력 신호를 상기 테스트 시나리오의 사용자 상호 작용 단계로 전환하도록 구성된 전환 모듈(23)을 포함하는 테스트 시스템.
  15. 제10항에 있어서,
    상기 테스트 드라이버 시스템(14)은 적어도 하나의 TV 장치(18)상에 상기 수정된 대화형 애플리케이션을 자동으로 설치하거나 제공하도록 구성된 방송 유닛(17)을 포함하고, 상기 대화형 애플리케이션은 방송 애플리케이션이고, 상기 방송 유닛(17)은 상기 적어도 하나의 TV 장치(18)에 텔레비전 신호를 제공하며, 상기 텔레비전 신호는 상기 수정된 대화형 애플리케이션을 상기 적어도 하나의 TV 장치(18)에 제공하도록 구성된 테스트 시스템.
    .
KR1020177035769A 2015-05-12 2016-05-11 소프트웨어 애플리케이션의 테스트 프로세스를 자동화하기 위한 방법 및 시스템 KR102529142B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562160012P 2015-05-12 2015-05-12
US62/160,012 2015-05-12
PCT/EP2016/060586 WO2016180894A1 (en) 2015-05-12 2016-05-11 Method and system for automating the process of testing of software application

Publications (2)

Publication Number Publication Date
KR20180008581A KR20180008581A (ko) 2018-01-24
KR102529142B1 true KR102529142B1 (ko) 2023-05-03

Family

ID=55963374

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177035769A KR102529142B1 (ko) 2015-05-12 2016-05-11 소프트웨어 애플리케이션의 테스트 프로세스를 자동화하기 위한 방법 및 시스템

Country Status (5)

Country Link
US (1) US11023364B2 (ko)
EP (1) EP3295311B1 (ko)
KR (1) KR102529142B1 (ko)
CN (1) CN107924361B (ko)
WO (1) WO2016180894A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597704B (zh) * 2018-06-13 2023-09-26 百度在线网络技术(北京)有限公司 应用程序的压力测试方法、装置、服务器和介质
CN109408314A (zh) * 2018-11-09 2019-03-01 郑州云海信息技术有限公司 一种基于海量存储的目录配额自动化测试方法
CN109508294A (zh) * 2018-11-13 2019-03-22 郑州云海信息技术有限公司 一种文件自精简特性测试方法及装置
CN109408316A (zh) * 2018-11-13 2019-03-01 郑州云海信息技术有限公司 一种文件聚合特性测试方法及装置
CN109597764A (zh) * 2018-12-10 2019-04-09 浪潮(北京)电子信息产业有限公司 一种目录配额的测试方法及相关装置
US11138098B2 (en) * 2019-03-27 2021-10-05 At&T Intellectual Property I, L.P. Disk image selection in virtualized network environments
CN111988200B (zh) * 2020-08-18 2022-03-08 湖南快乐阳光互动娱乐传媒有限公司 基于真实流量的自动回归测试方法及装置
CN112463511B (zh) * 2020-11-09 2022-06-07 武汉迈威通信股份有限公司 一种物联网串口设备自动化测试系统及测试方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150046909A1 (en) * 2013-08-12 2015-02-12 International Business Machines Corporation System, Method, and Apparatus for Automatic Recording and Replaying of Application Executions

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835717A (en) * 1995-12-13 1998-11-10 Silicon Graphics, Inc. System and method for saving state information in an interactive television system
US7634787B1 (en) * 1999-06-15 2009-12-15 Wink Communications, Inc. Automatic control of broadcast and execution of interactive applications to maintain synchronous operation with broadcast programs
AU2004305792B2 (en) * 2003-09-12 2007-10-04 Opentv, Inc. Method and system for controlling recording and playback of interactive applications
US8719419B2 (en) * 2005-04-21 2014-05-06 Qualcomm Incorporated Methods and apparatus for determining aspects of multimedia performance of a wireless device
US8185877B1 (en) 2005-06-22 2012-05-22 Jpmorgan Chase Bank, N.A. System and method for testing applications
US20090307763A1 (en) * 2008-06-05 2009-12-10 Fiberlink Communications Corporation Automated Test Management System and Method
EP2329376A1 (en) * 2008-08-15 2011-06-08 Verum Holding B.V. A method and system for testing complex machine control software
US20100153087A1 (en) * 2008-12-12 2010-06-17 Sergej Kirtkow Techniques for generating a reusable test script for a single user performance test
US20100153780A1 (en) * 2008-12-12 2010-06-17 Sergej Kirtkow Techniques for generating a reusable test script for a multiple user performance test
US20140059521A1 (en) * 2009-01-08 2014-02-27 Adobe Systems Incorporated Systems and Methods for Editing A Computer Application From Within A Runtime Environment
WO2011005312A2 (en) * 2009-07-06 2011-01-13 Appsage, Inc. Software testing
US8549478B2 (en) * 2009-12-02 2013-10-01 Hewlett-Packard Development Company, L.P. Graphical user interface input element identification
US8745491B2 (en) * 2009-12-22 2014-06-03 International Business Machines Corporation Determining event patterns for monitored applications
US9582407B2 (en) * 2011-02-25 2017-02-28 International Business Machines Corporation Security role testing using an embeddable container and properties object
WO2012125157A1 (en) * 2011-03-15 2012-09-20 Hewlett-Packard Development Company, L.P. Usability testing
US9942124B2 (en) * 2011-06-28 2018-04-10 Time Warner Cable Enterprises Llc Apparatus and methods for automated device testing in content distribution network
WO2013142433A2 (en) * 2012-03-19 2013-09-26 Enterpriseweb Llc Declarative software application meta-model and system for self-modification
US9026853B2 (en) * 2012-07-31 2015-05-05 Hewlett-Packard Development Company, L.P. Enhancing test scripts
US9323597B2 (en) * 2012-08-08 2016-04-26 Peach Fuzzer Llc Flow based fault testing
US9015654B2 (en) * 2012-08-13 2015-04-21 Bitbar Technologies Oy System for providing test environments for executing and analysing test routines
US9047413B2 (en) * 2012-10-05 2015-06-02 Software Ag White-box testing systems and/or methods for use in connection with graphical user interfaces
US11774927B2 (en) * 2012-10-08 2023-10-03 Fisher-Rosemount Systems, Inc. Methods and apparatus to provide a role-based user interface
KR20140053542A (ko) * 2012-10-26 2014-05-08 삼성전자주식회사 내장형 소프트웨어의 자동 테스트 장치, 자동 테스트 방법 및 테스트 시나리오 작성방법
KR20140056478A (ko) * 2012-10-26 2014-05-12 삼성전자주식회사 내장형 소프트웨어의 자동 테스트 장치 및 자동 테스트 방법
US9268668B1 (en) * 2012-12-20 2016-02-23 Google Inc. System for testing markup language applications
US10757475B2 (en) * 2012-12-21 2020-08-25 Centurylink Intellectual Property Llc System and method for utilizing set-top box testing in television distribution network
US9274935B1 (en) * 2013-01-15 2016-03-01 Google Inc. Application testing system with application programming interface
US20170147480A1 (en) * 2013-04-23 2017-05-25 Google Inc. Test script generation
US9268670B1 (en) * 2013-08-08 2016-02-23 Google Inc. System for module selection in software application testing including generating a test executable based on an availability of root access
US9836193B2 (en) * 2013-08-16 2017-12-05 International Business Machines Corporation Automatically capturing user interactions and evaluating user interfaces in software programs using field testing
US9830253B2 (en) * 2013-09-27 2017-11-28 International Business Machines Corporation Eliminating redundant interactions when testing computer software applications
US20160179658A1 (en) * 2013-11-27 2016-06-23 Ca, Inc. User interface testing abstraction
US9170921B2 (en) * 2014-01-24 2015-10-27 Bank Of America Corporation Application testing automation
US9189207B2 (en) * 2014-03-11 2015-11-17 Telefonaktiebolaget L M Ericsson (Publ) Methods and systems for dynamic runtime generation of customized applications
US9886374B1 (en) * 2014-03-26 2018-02-06 Amazon Technologies, Inc. Virtual device farm for software testing
US9229846B1 (en) * 2014-08-29 2016-01-05 Business Objects Software, Ltd. Testing application code changes using a state assertion framework
US9720810B2 (en) * 2014-12-09 2017-08-01 Google Inc. Device cloud monitoring and stability
US10621075B2 (en) * 2014-12-30 2020-04-14 Spirent Communications, Inc. Performance testing of a network segment between test appliances
US9910760B2 (en) * 2015-08-07 2018-03-06 Nvidia Corporation Method and apparatus for interception of synchronization objects in graphics application programming interfaces for frame debugging

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150046909A1 (en) * 2013-08-12 2015-02-12 International Business Machines Corporation System, Method, and Apparatus for Automatic Recording and Replaying of Application Executions

Also Published As

Publication number Publication date
EP3295311B1 (en) 2021-08-11
EP3295311A1 (en) 2018-03-21
US11023364B2 (en) 2021-06-01
CN107924361A (zh) 2018-04-17
US20180121340A1 (en) 2018-05-03
CN107924361B (zh) 2021-06-15
KR20180008581A (ko) 2018-01-24
WO2016180894A1 (en) 2016-11-17

Similar Documents

Publication Publication Date Title
KR102529142B1 (ko) 소프트웨어 애플리케이션의 테스트 프로세스를 자동화하기 위한 방법 및 시스템
US11182537B2 (en) Method and system for real-user capable detecting of the visual completeness of browser rendering processes
US11755919B2 (en) Analytics for an automated application testing platform
US9268670B1 (en) System for module selection in software application testing including generating a test executable based on an availability of root access
US9720799B1 (en) Validating applications using object level hierarchy analysis
US9135150B2 (en) Automated execution of functional test scripts on a remote system within a unit testing framework
US20230004481A1 (en) Automated application testing system
US9189378B1 (en) Systems, methods, and apparatuses for testing mobile device applications
CN103927253A (zh) 多浏览器兼容性测试方法及系统
CN110013672B (zh) 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质
US11153376B2 (en) Systems and methods for an internet of things computing shell
CN110716853A (zh) 一种测试脚本录制方法、应用程序测试方法和相关装置
CN107395747B (zh) 一种基于stf平台的高扩展方法
US20220198025A1 (en) Web Attack Simulator
US9792195B2 (en) Terminal data logger
CN107844486B (zh) 一种用于客户端的分析网页问题的方法和系统
KR102044068B1 (ko) 모바일 단말 원격제어 시스템을 활용한 IoT 서비스 애플리케이션 테스트 방법 및 시스템
CN112911283B (zh) 智能电视测试方法及装置
JP2010033509A (ja) 障害解析支援方法、及び装置
Bergersen An Experimental Evaluation of Software Frameworks for the Web-of-Things
KR100904961B1 (ko) 케이블 방송 환경에서 데이터 방송 어플리케이션 동작모니터링 시스템
CN114189718A (zh) 一种iptv启动优化的方法及装置
Nourbakhsh et al. Enhancing assert: making an accurate testbed friendly
Magazine Understanding Advanced JavaScript
van der Kuijl Remote and parallel test automation at the GUI level using a generic adapter

Legal Events

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