KR102343477B1 - 유저 인터페이스 자율 테스트 시스템 및 방법 - Google Patents

유저 인터페이스 자율 테스트 시스템 및 방법 Download PDF

Info

Publication number
KR102343477B1
KR102343477B1 KR1020200184995A KR20200184995A KR102343477B1 KR 102343477 B1 KR102343477 B1 KR 102343477B1 KR 1020200184995 A KR1020200184995 A KR 1020200184995A KR 20200184995 A KR20200184995 A KR 20200184995A KR 102343477 B1 KR102343477 B1 KR 102343477B1
Authority
KR
South Korea
Prior art keywords
test
information
screen
layout
intent
Prior art date
Application number
KR1020200184995A
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 KR1020200184995A priority Critical patent/KR102343477B1/ko
Priority to US17/137,777 priority patent/US11567858B2/en
Application granted granted Critical
Publication of KR102343477B1 publication Critical patent/KR102343477B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • 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/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • 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/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3698Environments for analysis, debugging or testing of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명에서는 웹 사이트 또는 어플리케이션의 유저 인터페이스 에러를 사람의 개입 없이 자동으로 테스트할 수 있는 시스템 및 방법이 개시된다.
일 예로, 어플리케이션 또는 웹 사이트의 유저 인터페이스에 대한 오류를 테스트하는 시스템에 있어서, 상기 어플리케이션 또는 웹 사이트의 화면에 대해 스크린샷을 획득하고, 스크린샷으로부터 UI 구성 및 텍스트 인식 정보를 토대로 레이아웃 및 테스트 동작을 관리하는 테스트 동작 인식부; 및 상기 레이아웃을 전달받고 상기 레이아웃에 해당되는 테스트 시나리오를 선택하고, 상기 테스트 시나리오에 따라 테스트 동작을 수행하는 테스트 동작 생성부를 포함하고, 상기 테스트 동작 인식부는 상기 테스트 시나리오에 따라 각 화면의 레이아웃별로 테스트 진행 여부를 관리하는 유저 인터페이스 시스템이 개시된다.

Description

유저 인터페이스 자율 테스트 시스템 및 방법{System And Method For User Interface Autonomous Testing}
본 발명은 웹 사이트 또는 어플리케이션에 대해 유저 인터페이스의 에러 여부를 사람의 개입 없이 자동으로 테스트할 수 있는 시스템 및 방법에 관한 것이다.
IT 서비스를 제공하는 회사들은 모바일 어플리케이션 또는 웹 사이트로 플랫폼(platform)을 서비스하면서 출시 전 또는 기능 업데이트 하기 전에 해당 플랫폼이 포함하고 있는 기능들이 정상적으로 작동하는지 여부를 테스트하고 있다.
종전에는 다수의 사람들이 다양한 시나리오에 따라 개발 버전의 플랫폼을 사용하면서 테스트 작업을 직접 수행하였다. 그러나 IT 분야의 경쟁이 치열해지면서 플랫폼이 포함해야 하는 기능의 종류와 수는 대폭 증가하는데 반해 출시 또는 업데이트에 걸리는 기간은 단축시켜야 했기 때문에 플랫폼에 대한 테스트 작업에 소요되는 인력, 시간 및 비용이 대폭 증가되는 문제가 발생하였다.
이에 따라, IT 회사들은 외부에 위탁하여 사람이 일일이 테스트하도록 하거나, 테스트 프로그램을 별도로 개발하여 자동 테스트를 진행하기도 하였다. 그러나 사람이 테스트하는 것은 숙련도에 따라 정확도, 시간에 편차가 발생할 뿐만 아니라 플랫폼의 기능 및 적용 환경이 복잡해짐에 따라 비용이 기하급수로 증가하는 문제가 있다. 테스트 프로그램을 개발하는 방법은 플랫폼의 변경이 발생할 때마다 테스트 프로그램을 수정해줘야 하기 때문에 개발 기간이 늘어날 뿐만 아니라 테스트 프로그램 자체의 오류나 구현 미흡으로 오류가 아닌 현상을 오류로 보고하는 경우가 많아 실용성이 떨어지는 문제가 있다.
본 발명은 어플리케이션에 또는 웹 사이트에 대해 유저 인터페이스의 에러 여부를 사람의 개입 없이 자동으로 테스트할 수 있는 시스템 및 방법을 제공한다.
본 발명에 따른 유저 인터페이스 자율 테스트 시스템은, 어플리케이션 또는 웹 사이트의 유저 인터페이스에 대한 오류를 테스트하는 시스템에 있어서, 상기 어플리케이션 또는 웹 사이트의 화면에 대해 스크린샷을 획득하고, 스크린샷으로부터 UI 구성 및 텍스트 인식 정보를 토대로 레이아웃을 인식하고, 레이아웃을 테스트 동작으로 전환하는 테스트 동작 인식부; 및 상기 테스트 동작을 전달받고 테스트 동작에 해당되는 테스트 시나리오를 선택하고, 상기 테스트 시나리오에 따라 테스트 동작을 수행하는 테스트 동작 생성부를 포함하고, 테스트 결과를 확인하여 오류를 인식하는 오류 인식기를 포함하여, 외부 시스템에 테스트 동작이 외부 시스템에 정확하게 반영되었는지 검증하는 외부 시스템 연계부를 포함한다.
여기서, 상기 테스트 동작 인식부는 테스트 동작 매니저를 포함하고, 상기 레이아웃은 버튼, 테스트 입력 상자(EditText)와 같은 UI 요소 객체(UI Element Object)들을 단일 어플리케이션 또는 웹 사이트의 화면 간에 공통되는 공통부(header, Footer)와 가변부(Body)로 그룹핑하고 상기 테스트 동작 매니저는 상기 테스트 진행 여부를 테스트 동작들을 나열한 테이블 형태로 관리할 수 있다.
그리고 상기 테스트 동작 매니저는 상기 테이블에 해당 화면의 레이아웃과 필요한 테스트 동작도 함께 저장할 수 있다.
또한, 상기 테스트 동작 인식부는 상기 화면의 UI 요소 객체 및 텍스트 인식 정보와 운영체제가 보내주는 화면의 UI 요소들에 대한 계층 구조 정보((UI Hierarchy)를 조합하여 상기 레이아웃을 인식할 수 있다.
또한, 상기 테스트 동작 인식부는 사전에 머신 러닝을 통해 UI 요소 객체를 인식할 수 있는 모델의 파라미터를 학습하여 저장하고, 상기 파라미터에 기반하여 상기 UI 요소 객체를 검출하는 UI 요소 객체 검출부를 더 포함할 수 있다.
또한, 상기 테스트 동작 생성부는 상기 UI 요소 객체 또는 텍스트 정보를 통해 획득한 정보를 기반으로 화면의 인텐트(의도/Intent)와 개체(Entity)로 구분하여 저장하는 인텐트/개체 검출부를 더 포함할 수 있다.
또한, 상기 테스트 동작 생성부는 사전에 설정된 가상 인물의 정보를 미리 저장하는 테스트 페르소나 저장소를 더 포함할 수 있다.
또한, 상기 테스트 동작 생성부는 상기 UI 요소 객체 또는 텍스트 인식 정보를 통해 획득한 문맥에 따라 상기 테스트 페르소나 저장소로부터 가상 인물 정보에 대해서 설정된 정보 중 부합하는 형태의 데이터를 불러오는 인텐트/개체 매칭부를 더 포함할 수 있다.
또한, 상기 테스트 페르소나 저장소는 실제 테스트에 사용 가능한 이메일, 휴대전화 번호 및 신용카드 정보 등을 갖는 적어도 하나의 가상 인물을 저장할 수 있다.
또한 상기 테스트 이슈 인식기는 시스템의 로그(Log)나 화면의 메시지에서 오류가 발생했는지를 검출할 수 있다.
또한 상기 외부 시스템 연계부는 메일 발송, SNS 댓글 입력과 같이 테스트 대상 시스템에서 동작을 수행하나 결과는 외부 시스템에 반영되는 기능들이 정확히 수행했는지를 검증하여 오류를 검출할 수 있다.
더불어, 본 발명에 따른 유저 인터페이스 자율 테스트 방법은, 어플리케이션 또는 웹 사이트의 유저 인터페이스에 대한 오류를 테스트하는 방법에 있어서, 테스트 동작 생성부가 상기 어플리케이션 또는 웹 사이트의 분류에 따라 미리 인텐트를 기준으로 설정된 테스트 시나리오를 불러오는 단계; 테스트 동작 인식부가 상기 어플리케이션 또는 웹 사이트의 스크린샷을 통해 레이아웃을 인식하는 단계; 상기 테스트 동작 생성부가 레이아웃 정보를 기반으로 테스트 가능한 동작 목록을 검출하는 단계: 상기 테스트 시나리오 및 가능한 테스트 목록 기반으로 상기 테스트 동작을 선택하는 단계; 상기 테스트 동작 생성부가 테스트 데이터를 생성하는 단계; 및 상기 테스트 동작 생성부가 상기 어플리케이션 또는 웹 사이트의 화면에 대해 테스트 동작을 수행하는 단계를 포함할 수 있다.
여기서, 상기 테스트 동작 인식부는 테스트 동작 매니저를 포함하고, 상기 레이아웃은 상기 레이아웃은 단일 어플리케이션 또는 웹 사이트의 화면 간에 공통되는 공통부(header, Footer)와 가변부(Body)로 그룹핑되며, 상기 테스트 동작 매니저는 상기 테스트 진행 여부를 테스트 동작들을 나열한 테이블 형태로 관리할 수 있다. 그리고 상기 테스트 동작 매니저는 상기 테이블에 해당 화면의 레이아웃과 필요한 테스트 동작도 함께 저장할 수 있다.
또한, 상기 테스트 동작 인식부는 상기 화면의 UI 요소 객체(Element 또는 Widget) 및 텍스트 인식 정보와 운영체제가 보내주는 화면의 UI 요소들에 대한 계층 구조 정보((UI Hierarchy)를 조합하여 상기 레이아웃을 인식할 수 있다.
또한, 상기 테스트 동작 인식부는 머신 러닝을 통해 UI 요소 객체를 인식할 수 있는 모델의 파라미터를 학습하여 저장하고, 상기 파라미터에 기반하여 상기 UI 요소 객체를 검출하는 UI 요소 객체 검출부를 더 포함할 수 있다.
또한, 상기 테스트 동작 생성부는 상기 UI 요소 객체 또는 텍스트 정보를 통해 획득한 정보를 기반으로 화면의 의도(Intent)와 개체(Entity)로 구분하여 저장하는 의도(Intent)/개체(Entity) 검출부를 더 포함할 수 있다.
또한, 상기 테스트 동작 생성부는 사전에 설정된 가상 인물의 정보를 미리 저장하는 테스트 페르소나 저장소를 더 포함할 수 있다.
또한, 상기 테스트 동작 생성부는 상기 UI 요소 객체 또는 텍스트 인식 정보를 통해 획득한 문맥에 따라 상기 테스트 페르소나 저장소로부터 가상 인물 정보에 대해서 설정된 정보 중 부합하는 형태의 데이터를 불러오는 인텐트/개체 매칭부를 더 포함할 수 있다.
또한, 상기 테스트 페르소나 저장소는 실제 테스트에 사용 가능한 이메일, 휴대전화 번호 및 신용카드 정보 등을 갖는 적어도 하나의 가상 인물을 저장할 수 있다.
또한, 상기 유저 테스트 동작이 메일 발송과 같이 외부 시스템에 영향을 주는 경우 외부 시스템에 접근하여 테스트 동작이 실제로 발생했는지를 확인하는 외부 서비스 통합부를 더 포함할 수 있다.
본 발명에 의한 유저 인터페이스 자율 테스트 시스템 및 방법은 스크린샷 이미지를 기준으로 테스트가 필요한 UI 요소 객체 및 텍스트를 인식하고 운영체제가 제공하는 UI 계층 정보를 조합하여 화면의 레이아웃을 인식하고 필요한 테스트 동작목록을 파악할 수 있다. 또한, 쇼핑, 뉴스, 메신저와 같은 어플리케이션 또는 웹 사이트의 분류에 따라 미리 인텐트(의도/Intent) 기반으로 추상화하여 설정된 테스트 시나리오를 실시간에 화면의 인텐트를 인식하여 부합하는 테스트를 진행하되 텍스트, 숫자 등의 구체적인 데이터 입력이 필요한 경우 미리 설정한 테스트 페르소나의 정보를 이용하여 자동으로 입력하도록 하도록 함으로써 사람의 개입없이 어플리케이션 또는 웹사이트이 주요한 기능을 자동으로 테스트할 수 있다. 또한 적절한 시나리오가 설정되어 있는 않은 경우에도 화면에서 테스트해야 하는 인텐트와 입력해야 하는 개체 정보를 인식하여 부합되는 테스트 페르소나의 정보를 입력할 수 있으므로 일반적인 임의(Random) 테스트 보다 더 효과적인 탐색 테스트를 수행할 수 있다. 화면을 인텐트와 객체로 추상화한 테스트 동작 목록(테이블)로 관리하므로 작은 디자인 변경이나 콘텐트 변경이 있을 때도 동일 화면으로 인식하여 중복 테스트를 방지하므로 임의 테스트(Random) 테스트 보다 동일한 시간에 더 많은 기능을 테스트할 수 있다.
도 1은 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 구성도이다.
도 2는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 테스트 동작을 설명한 플로우차트이다.
도 3은 예시적인 홈 화면에서 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 테스트 동작 인식부의 세부 구성 및 동작을 설명한 도면이다.
도 4는 예시적인 홈 화면에서 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 UI 계층 정보 어댑터를 도시한 것이다.
도 5는 예시적인 홈 화면에서 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 UI 계층 정보 어댑터에서 UI 레이아웃을 인식한 예시를 도시한 것이다.
도 6a 내지 도 6c는 예시적인 신용카드 정보 입력 화면에서 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 테스트 동작 관리부의 세부 구성 및 동작을 설명한 도면이다.
도 7은 예시적인 홈 화면에서 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 테스트 동작 매니저의 동작을 설명한 플로우차트이다.
도 8은 예시적인 홈 화면에서 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 테스트 동작 매니저의 테스트 동작 테이블을 도시한 것이다.
도 9는 예시적인 신용카드 정보 입력 화면에서 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 테스트 동작 매니저의 테스트 동작 테이블을 도시한 것이다.
도 10은 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템에서 테스트가 진행됨에 따라 다음 테스트 동작을 결정하는 동작을 도시한 플로우차트이다.
도 11a 내지 도 11c는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템에서 사용되는 예시적인 페르소나의 정보를 페르소나 저장소에서 불러오는 동작을 도시한 것이다.
도 12는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템에서 사용되는 인텐트/개체 인식부에서 저장하는 정보를 도시한 것이다.
도 13a 및 도 13b는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템에서 페르소나의 정보를 인텐트/개체 매칭부가 불러오는 과정을 도시한 것이다.
도 14는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템에서 인텐트의 그래프 구조로 저장하고 있는 테스트 시나리오를 도시한 예시이다.
도 15는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 단일 데스크탑이나 서버에서 구현한 예이다.
도 16은 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템을 클라우드 기반으로 구현한 예이다.
본 발명이 속하는 기술분야에 있어서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 바람직한 실시예를 도면을 참조하여 상세하게 설명하면 다음과 같다.
이하에서는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템(10)을 설명하도록 한다.
도 1은 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 구성도이다.
먼저, 도 1을 참조하면, 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템(10)은 테스트 동작 인식부(Testable Action recognizer, 11), 이슈 감지부(Issue Detector, 12), 테스트 동작 생성부(Test Action Generator, 13), 외부 서비스 통합부(External Service Integrator, 14)를 포함할 수 있다.
테스트 동작 인식부(Testable Action recognizer, 11)는 테스트 대상이 되는 어플리케이션이나 웹 사이트를 대상으로 테스트 가능한 동작들을 결정할 수 있다. 이를 위해, 테스트 동작 인식부(11)는 현재 화면에 대해 유저 인터페이스(UI) 요소 객체, 텍스트 및 UI 계층 정보를 조합하여, 현재 화면에서 필요한 테스트 동작을 결정하게 된다. 구체적으로, 테스트 동작 인식부(11)는 UI 요소 객체 검출부(UI Element Detector, 111), 텍스트 인식부(Text Recognizer, 112), UI 계층 정보 어댑터(UI Hierarchy Information Adapter, 113), UI 레이아웃 인식부(114) 및 테스트 동작 매니저(115)를 포함할 수 있다.
UI 요소 객체 검출부(111)는 현재 표시되는 화면의 스크린 샷으로부터 객체 검출(Object detection)을 수행하여 테스트해야 하는 UI 요소들을 인식할 수 있다. 특히, UI 요소 객체 검출부(111)는 머신 러닝, 특히 딥 러닝을 수행할 수 있으며, 학습에 따라 정확도가 높아질 수 있다. 이를 위해, UI 요소 객체 검출부(111)는 사전에 수집된 어플리케이션 또는 웹 사이트의 스크린샷 이미지를 학습하여 객체 검출을 위한 모델 파라미터들을 계산하여 저장할 수 있고, 테스트 대상 화면에 대해 이 학습된 모델 파라미터를 토대로 UI 요소 객체의 종류(Class)와 위치(Bounding Box)를 인식할 수 있다.
텍스트 인식부(112)는 현재 화면의 스크린 샷으로부터 텍스트를 인식하고 추출할 수 있다. 특히, 텍스트 인식부(112)는 텍스트 추출을 위해 광학식 문자 판독(optical character recognition, OCR) 기법을 이용할 수 있다. OCR을 통하면, 텍스트 인식부(112)는 현재 화면으로부터 정보를 표시하고 있는 텍스트를 모두 추출할 수 있고, 후술할 바와 같이 테스트 동작 인식부(11)에서 이 텍스트의 정보를 활용하여, 해당 영역에 입력할 데이터의 값과 형태(Type)를 유추할 수 있다.
UI 계층 정보 어댑터(113)는 운영체제가 제공하는 UI 계층 정보로부터 해당 화면의 레이아웃 정보를 추출할 수 있다. 이 UI 계층 정보는 어플리케이션 또는 웹 사이트 개발자가 UI를 프로그래밍하면서 각 UI 요소들을 컨트롤하기 위해 UI 요소에 부여한 ID 값이나 텍스트 값 그리고 시각 장애인을 위해 입력한 설명 데이터를 운영체제가 수집하여 제공하는 것으로 운영체제(예. Android, iOS), 개발 플랫폼(Web, App) 등에 따라 다른 형식으로 들어온다. 본 발명에서는 UI 계층 정보 어댑터(113)를 두어서 개발 플랫폼 마다 다른 형태로 들어오는 UI 계층 정보를 내부적으로 표준화한 형태로 전환한다. 이를 통해 본 발명에 따른 유저 인터페이스 자동 테스트 시스템을 제 3의 운영체제 또는 개발 플랫폼에 적용할 때 나머지 구성요소의 변경 없이 어댑터 추가만으로 추가가 가능하다. 그러나 이 정보는 개발자가 미리 입력해둔 정보들을 수집해서 보내주는 것이고 백그라운드에서 운영체제가 수행하는 작업이므로 정보의 누락이나 불일치가 자주 발생한다. 예를 들어 개발자가 이미지에 대한 설명 데이터나 텍스트를 설정하지 않았다면 빈 데이터가 들어오게 되고, 화면의 스크린 샷이 찍힌 시간과 운영체제가 UI 계층 정보를 제공한 시점이 다르면 두 정보 사이의 정합성이 맞지 않게 된다. 도 5는 이 사례로 UI 계층 정보에서 받은 레이아웃 정보와 스크린샷의 구성이 아주 상이하다. 따라서 본 발명에서는 운영체제가 주는 UI 계층정보에만 의지하지 않고 스크린샷 이미지를 직접 인식하여 UI 요소 객체의 정보와 텍스트 정보를 얻어와 UI 레이아웃을 인식할 수 있다.
UI 레이아웃 인식부(114)는 UI 요소 객체 검출부(111)에서 검출된 UI 요소 객체, 텍스트 인식부(112)에서 추출된 텍스트 및 UI 계층 정보 어댑터(113)으로부터 파악된 계층 정보를 조합하여, 현재 표시되고 있는 화면의 레이아웃을 판단할 수 있다. 또한, UI 레이아웃 인식부(114)는 해당 화면의 레이아웃을 동일 어플리케이션 또는 웹 사이트의 화면들이 공유하는 공통부(header, Footer)와 가변부(Body) 영역으로 구분하여 공통부가 중복 테스트되는 것을 억제한다. 뿐만 아니라 가변부(Body)에 대해서도 동일한 정보 단위 예를 들어 생일이라면 년, 월, 일을 하나의 그룹으로 구분하여 생일 입력이라는 테스트 동작이 년, 월, 일 3개 UI 요소 객체에 대해서 일괄로 일관성 있는 테스트 데이터 입력을 통해 수행되도록 보장한다.
테스트 동작 매니저(115)는 UI 레이아웃 인식부(114)에서 입력된 레이아웃에 포함된 UI 요소별 종류(Class), 텍스트(Value), 위치(Bounding Box)정보를 기초로, 필요한 테스트 동작을 테이블 형태의 목록으로 정리하고, 후술할 테스트 동작 생성부(13)에서 어떤 테스트 데이터가 생성되어 테스트를 수행했는지를 기록 관리할 수 있다. 테스트 동작 매니저는 화면을 테스트 동작 기준으로 추상화하여 관리함으로서 동일한 화면의 동일한 테스트 동작이 중복 테스트되는 것을 방지할 수 있다. 예를 들어 쇼핑몰 초기 화면의 경우 판매하는 상품이 변경됨에 따라 초기 화면에 접근할 때마다 UI 요소들의 텍스트 값이 변경되어 다른 화면으로 인식되어 동일한 위치의 상품을 선택(예를 들어, 클릭(Click))하는 테스트가 무한 반복될 수 있다. 텍스트 동작 매니저는 매 화면마다 테스트 액션 테이블을 구성한 후 각 UI 요소의 종류를 감안하여 기존에 기록되어 있는 테스트 동작 테이블을 비교하여 동일한 화면에 대한 테스트 동작 테이블이 중복 생성 관리되는 것을 막는다. 예를 들어 동일한 유형의 UI 구성 요소가 목록(List) 또는 격자(Grid) 형태로 배치되어 있는 경우에는 각 UI 요소의 텍스트 정보는 제외하고 배치 형태만으로 비교를 하여 동일한 화면인지를 판정하게 된다. 본 테스트 동작 매니저(114)로 인해 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템(10)은 테스트 동작을 누락하거나 반복하지 않고 테스트를 진행할 수 있다.
이슈 감지부(Issue Detector, 12)는 테스트가 진행되는 디바이스의 로그(Log) 기록, CPU, 메모리, 네트워크 상태 등을 모니터링하여 오류나 성능 문제점을 감지할 수 있다. 예를 들어 화면에 에러 표시가 나타나거나 어플리케이션이 죽는 로그(Log)를 감지하면 이슈 감지부(12)는 개발자에게 에러가 발생한 화면 정보와 그 때 사용한 입력 데이터 그리고 에러 로그 및 메시지 정보를 리포트한다.
테스트 동작 생성부(Test Action Generator, 13)는 앞서 설명한 테스트 동작 인식부(11)로부터 해당 화면의 테스트 동작 목록을 전달받고, 해당 화면을 테스트하기 필요한 입력 데이터를 적절한 형태(Format)에 맞게 생성하여 제공한다. 이를 위해, 테스트 동작 생성부(13)는 인텐트/개체 인식부(131), 인텐트/개체 매칭부(132), 테스트 페르소나 저장소(133), 테스트 시나리오 저장소(134)를 포함할 수 있다.
먼저, 인텐트/개체 인식부(Intent/Entity recognizer, 131)는 해당 화면의 스크린샷으로부터 인식되는 텍스트들을 다시 인텐트와 개체로 인식할 수 있다. 인텐트와 개체는 일반적으로 챗봇(Chatbot)과 같은 대화 시스템을 모델링 할 때 사용하는 기술 용어로 일반적으로 인텐트(Intent)는 말이 한번 오고 가는 대화의 단위 또는 대화를 통해서 전달하려고 하는 화자의 의도로 설명할 수 있고, 개체(Entity)는 사용자의 의도 중 구체적인 요구사항으로 설명할 수 있다. 예를 들어 신용카드 종류를 선택하세요라는 문장에서 인텐트는 선택하세요이고 개체는 신용카드 종류"이다. 인텐트/개체 인식부(131)는 NLP(Natural language processing) 기술에 기반할 수 있다. 예를 들어, 해당 화면에 'A 카드', 'B 카드', 'C 카드'라는 옵션 선택 UI 요소(Radio)가 있을 때 가장 가까운 위치에 있는 텍스트가 '결제 수단 선택'이라면 인텐트/개체 인식부(131)는 인텐트로서 '결제 수단 선택(Select credit card)'을 인식하고, 개체로서 'A 카드', 'B 카드', 'C 카드'를 인식할 수 있다.
인텐트/개체 매칭부(132)는 해당 화면의 테스트 동작들을 인텐트와 개체로 전환하여 테스트 동작 테이블에 저장할 수 있다. 인텐트/개체 매칭부(132)를 사용하면 각 어플리케이션 또는 웹 사이트가 사용하는 특정 용어 체계 대신 추상화된 인텐트를 기준으로 테스트 대상 화면을 정의할 수 있다. 이를 통해 정의된 테스트 시나리오와 현재 테스트 화면이 부합하는지 실시간으로 인텐트 기준으로 인식하면서 테스트를 할 수 있으므로 어플리케이션이나 웹 사이트 단위로 테스트 시나리오를 각각 작성하지않고도 인텐트 기반으로 설계된 일반화된 테스트 시나리오를 가지고 동일한 분류의 어플리케이션이나 웹 사이트를 테스트할 수 있다.
한편, 테스트 동작 생성부(13)는 인텐트/개체 매칭부(132)의 인턴트 기준으로 관리되는 테스트 동작 테이블에 근거하여, 가장 우선 순위가 높은 인텐트를 선택하고, 이를 실행하기 위한 동작을 선택할 수 있다. 예를 들어, 계좌이체를 통한 물품 구매 시나리오가 진행중일 경우 단일 테스트 화면에 '결제 수단 선택(Select credit card)'과 '입금 은행 계좌 입력(input bank account number)'의 2개의 인텐트가 있는 경우, 테스트 동작 생성부(13)는 '결제 수단 선택' 인텐트 대신 '입금 은행 계좌 입력' 인텐트가 선택하고 이 인텐트와 관련된 데이터를 생성한다.
테스트 페르소나 저장소(Tester Persona Repository, 133)는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템(10)이 동작할 때, 일반인들과 같은 조건을 갖는 가상 인물의 정보를 설정하고 저장할 수 있다. 예를 들어, 테스트 페르소나 저장소(133)는 'John Doe'라는 이름을 가진 28세의 사람을 가상으로 생성하고, 직업, 이메일, 주소, 휴대전화 번호, 신용카드 정보, 채팅앱, SNS 등의 정보를 미리 설정해 놓을 수 있다. 특히, 이메일, 휴대전화 번호의 정보는 특정 어플리케이션이나 웹 사이트에서 본인을 인증하는데 사용될 수 있고, 신용카드 정보는 유료 아이템의 구매 과정의 테스트나, 온라인 쇼핑에 대한 테스트에서 요구되는 빈도가 높다. 따라서, 테스트 중 입력 데이터로 인한 오류가 발생되는 것을 방지하기 위해, 테스트 페르소나 저장소(133)는 사전에 가상 인물의 정보를 생성/저장할 때, 이메일, 휴대전화 번호 및/또는 신용카드 정보를 실제 사용가능한 것으로 설정하는 것이 바람직하다. 현대의 대부분의 어플리케이션 또는 웹 사이트는 단독으로 동작하지 않고 여러 외부 시스템과 연계되어 활용되고 있다. 따라서 이런 연계를 테스트하기 위해서는 외부 시스템 계정이 있어야 하고 그 테스트 동작 결과를 해당 시스템에 접속하여 확인할 수 있어야 한다. 본 발명의 테스트 페르소나는 해당 시스템을 테스트하기 위한 데이터뿐만 아니라 이런 외부 시스템 연계를 테스트할 수 있는 정보와 설정을 모두가지고 있는 점이 기존 방법들과 다른 점이다.
테스트 시나리오 저장소(134)는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템(10)을 통해 테스트를 진행할 시나리오, 즉 테스트 경로를 저장할 수 있다. 테스트 시나리오는 어플리케이션이나 웹 사이트의 분류에 따라 설정될 수 있다. 예를 들어, 모든 온라인 쇼핑 어플리케이션은 주요 홈 화면으로부터 물건을 검색, 선택하고, 배송 받을 인적 정보 및 주소를 입력하고, 신용 카드를 통해 결제를 진행하는 일련의 동작(인텐트)들로 테스트 시나리오를 구성할 수 있다. 테스트 대상 어플리케이션 또는 웹 사이트의 분류는 어플리케이션이 앱스토어에 이미 게시된 경우에는 이 사이트 정보를 스크랩하여 가져올 수도 있고 테스트 시작전에 개발자가 직접 지정할 수도 있으며, 초기화면에서 인식되는 인텐트 정보를 통해서 유추할 수도 있다.
외부 서비스 통합부(External Service Integrator, 14)는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템(10)의 테스트 동작이 외부 시스템에서 발생하는 경우 외부 시스템에서 동작이 정상적으로 수행되었는지를 검증할 수 있도록 한다. 예를 들어 화면에 SNS(예. 페이스북)에 '게시하기'라는 버튼이 있을 때 이 테스트 동작을 수행한 후에 테스트 페르소나 소유의 SNS 초기화면에 신규 게시가 생겼는지를 확인하여 게시가 되지 않았을 때는 오류를 리포트 할 수 있다.
상기와 같이, 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템(10)은 테스트를 하기 위한 어플리케이션이나 웹 사이트에 대해, 스크린샷을 기준으로 UI 구성, 텍스트 인식, UI 계층 정보를 조합하여 레이아웃 및 테스트 동작을 파악할 수 있다. 그리고 어플리케이션 또는 웹 사이트의 분류에 따라 인텐트(Intent) 기준으로 미리 정의된 테스트 시나리오에 따라 테스트를 진행하되 단순 클릭, 터치가 아닌 텍스트 등의 데이터 입력이 필요한 경우 테스트 페르소나의 정보를 이용하여 입력할 수 있다. 또한 각 테스트 경로 및 테스트 진행 여부는 화면의 디자인이나 콘텐트 정보가 제거된 추상화된 테스트 동작 테이블로 정리함으로써, 중복 테스트를 최소화하면서 테스트가 정확하고 빠르게 이루어지도록 할 수 있다.
이하에서는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템(10)을 이용한 테스트 방법을 단계적으로 설명하도록 한다.
도 2는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템에 따른 테스트 동작을 설명한 플로우차트이다. 도 2를 참조하면, 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템(10)을 이용한 테스트 방법은 디바이스 셋업(S1), 어플리케이션 설치(S2), 범용 테스트 시나리오 불러오기(S3), 어플리케이션 스크린샷 인식(S4), 동작 선택(S5), 테스트 데이터 생성(S6), 테스트 동작 실행(S7), 테스트 동작 결과 검증(S8)의 단계를 포함할 수 있다. 이하에서는 도 2의 각 단계들을 도 3 내지 도 15를 함께 참조하여 설명하도록 한다.
먼저, 디바이스 셋업(S1) 단계에서, 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템(10)의 동작을 위해, 테스트 디바이스의 테스트 환경이 구성될 수 있다. 구체적으로, 시스템(10) 테스트 디바이스의 운영 체재 버전을 선택하고 해당 어플리케이션과 충돌 가능성이 있거나 먼저 설치되어야 하는 어플리케이션을 설치하는 등의 동작을 사전에 진행할 수 있다. 예를 들어 은행 앱을 테스트하고자 한다면 필수 앱인 백신 앱을 먼저 설치하고 테스트 페르소나가 보유하고 있는 계정으로 페이스북 앱을 설치하고 로그인 시켜서 은행 앱에서 페이스북 연동 테스트가 정상적으로 이루어질 수 있도록 준비한다.
어플리케이션 설치(S2) 단계에서, 테스트 디바이스에 테스트하고자 하는 어플리케이션이 설치될 수 있다. 본 단계에서 테스트를 요청하는 업체의 개발자로부터 어플리케이션 배포 전의 설치 파일을 받아 테스트 디바이스에 설치할 수도 있다. 또한 일반 사용자들이 스마트폰이나 태블릿에서 어플리케이션을 다운받는 앱스토어에 접속하여 설치 파일을 다운로드 받아 설치하는 것도 가능하다. 웹 사이트의 경우에는 액티브엑스(ActiveX)와 같이 웹 사이트에서 사용하고 프로그램이나 공인인증서 등의 웹사이트 구동에 필요한 데이터 파일 설치를 수행한다.
범용 테스트 시나리오 불러오기(S3) 단계에서 테스트 시나리오 저장소(134)에 저장된 테스트 시나리오 중 해당 어플리케이션 또는 웹 사이트에 적절한 것을 선택하고 불러올 수 있다. 상술한 것과 같이, 어플리케이션의 분류가 이미 앱스토어에 게시되어 있는 경우 해당 분류에 적합한 테스트 시나리오가 용이하게 선택될 수 있다. 필요할 경우 개발자로부터 어플리케이션의 세부 내용을 전달받아 적합한 테스트 시나리오를 설정하는 것도 가능하며 어플리케이션 구동 후 초기 화면의 인텐트로부터 분류를 유추한 후 시나리오를 불러오는 것도 가능하다.
어플리케이션 스크린샷 인식(S4) 단계에서 각 어플리케이션이나 웹 사이트의 실행 시 처음에 표시되는 홈 화면부터 시작하여, 테스트 시나리오에 따라 단계적으로 화면의 스크린샷을 획득하고 인식할 수 있다. 본 단계에서 스크린샷은 해당 화면의 UI 계층 정보와 함께 테스트 동작 인식부(11)에 전달될 수 있다.
동작 선택(S5) 단계는 도 3을 참조하여 설명하도록 한다. 도 3에 예시된 쇼핑 어플리케이션의 경우는 단순 콘텐트 선택(Click) 테스트 동작으로 이루어진 화면이다. 상술한 것처럼, UI 요소 객체 검출부(111)는 홈 화면의 스크린샷으로부터 기존 딥 러닝을 기반으로 UI 구성을 검출하고, 텍스트 인식부(112)는 역시 스크린샷으로부터 각 영역들의 텍스트를 인식할 수 있다. 마지막으로 UI 계층 정보 어댑터(113)는 운영체제가 제공하는 UI 계층정보를 이용하여 화면의 레이아웃을 생성한다. 이 3개의 화면 정보는 UI 레이아웃 인식부(114)에 의해서 통합된 후 공통부(Header, Footer)와 가변부(Body)로 구분된다.
테스트 데이터 생성(S6) 단계에서, 테스트 동작 생성부(13)는 테스트 페르소나 저장소(133)로부터 테스트 동작에 적합한 정보를 불러올 수 있다. 상술한 것처럼, 어플리케이션이나 웹 사이트의 특성상 특정 운영 체재 또는 실제 동작하는 이메일, 휴대 전화 번호, 신용카드 정보를 요구하는 경우가 있다. 따라서, 테스트 동작 생성부(13)는 이에 부합하는 정보를 저장소로부터 불러와서, 테스트 시나리오에 따른 입력 데이터를 생성할 수 있다.
테스트 동작 실행(S7) 단계에서, 테스트 동작 생성부(13)는 화면에 데이터를 입력하거나, 클릭하는 등의 동작들을 운영체제에 전달하여 수행할 수 있다.
마지막으로, 테스트 동작 결과 검증(S8) 단계에서, 테스트 동작을 수행하기 전 또는 한 후에 어플리케이션 또는 웹 사이트의 메시지나 시스템 로그를 검증하여 에러 발생 여부를 감지하고 개발자에게 전달할 리포트를 저장한다. 이메일 전송, SNS 댓글 입력 등과 같이 테스트 동작 수행 결과를 외부 시스템에서 확인해야 하는 경우에는 상술한 바와 같이 외부 서비스 통합부(14)를 통해 외부 시스템에 접속하여 검증할 수 있다.
한편, 도 6a 내지 도 6c는 비교적 단순했던 도3의 쇼핑몰 홈 화면 예시와 달리 개인 정보 입력 화면에서 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 테스트 동작 인식부의 세부 구성 및 동작을 설명한 도면이다. 도 6a 를 참조하면, 앞서 설명한 것과 같이, 테스트가 진행됨에 따라 또한, UI 레이아웃 인식부(114)는 인가 받은 UI 요소 개체, 텍스트 및 UI 계층 구조를 조합하여 도 6a와 같이 레이아웃을 형성하고, 레이아웃의 각 구성들을 공통부(Header, Footer)과 가변부(Body)로 1차 그룹핑 한 후 가변부 안의 UI 구성요소들을 다시 정보 완결성 단위로 그룹핑을 할 수 있다. 이 예시에서는 가변부가 다시 카드번호(Card Number), 이름(Name on Card), 유효기간(Expiration date), 동작 버튼(Add your Card)의 4개 그룹으로 구분되었다.
이 때, 인텐트/개체 인식부(131)는 도 6b에 도시된 것과 같이, UI 요소 객체 검출부(111)로부터 검출된 UI 구성과 텍스트 인식부(112)에서 인식된 텍스트에 기초하여, 사전에 학습된 딥러닝 기반의 머신러닝 파라미터에 의거하여 해당 영역의 인텐트와 개체를 인식할 수 있다. 예를 들어, 도 6b와 같이 4개의 텍스트 입력 UI 요소(EditText)가 동일한 수평선 상에 있을 때 이들과 가장 가까이에 있는 텍스트 정보 카드번호(Card Number), Enter your Credit Card Number를 감안하여 인텐트/개체 인식부는 신용카드번호입력이라는 인텐트와 4개의 입력 값으로 이루어진 카드 번호라는 개체의 정의와 형식(Format)을 인식하게 된다.
이를 이용하여 테스트 동작 생성부(13)는 테스트 페르소나 저장부(133)로부터, 도 13의 a와 같이 실제 입력 가능한 카드의 정보를 질의하여 불러올 수 있으며, 13b와 같이 테스트 동작 테이블의 각 UI 요소들에 입력할 카드 번호를 할당하여 테스트가 수행되도록 한다.
이하에서는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템 중, 테스트동작 매니저의 동작을 상세히 설명하도록 한다.
도 7은 예시적인 홈 화면에서 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 테스트 동작 매니저의 동작을 설명한 플로우차트이고, 도 8은 예시적인 홈 화면에서 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 테스트 동작 매니저의 테스트 동작 테이블을 도시한 것이다. 테스트 동작의 실행에서, 테스트 동작 매니저(115)는 도 12에 도시된 것처럼, UI 요소 객체의 종류(Class)와 표시된 값(Value) 정보를 이용하여 테스트 동작 테이블을 추출하고(200), 이 테이블 정보를 기존에 테스트되었던 테스트 동작 테이블과 비교해서 해당 화면에서 이미 테스트된 동작들의 여부를 판단한다(202). 이 때, 별도의 테스트 세션 저장소(201)가 구비되어 있을 수 있으며, 이 경우 테스트 동작 매니저(115)는 테스트 진행 유무를 테스트 세션 저장소(201)를 참조하여 판단할 수 있다. 또한, 해당 화면이 테스트된 것인 경우(Yes), 테스트 동작 매니저(115)는 도 8과 같이, 테스트 동작 테이블에 대해 해당 화면이 테스트되었음(Yes)을 기록할 수 있고, 구체적인 테스트 동작 내용(예를 들어, 터치, 횡방향 스크롤, 종방향 스크롤)을 함께 기록할 수 있다(203). 반면, 해당 화면이 테스트되지 않은 것인 경우(No), 테스트 동작 매니저(115)는 도 8과 같이 테스트 동작 테이블에서 테스트되지 않았음(No)을 기록하여 테스트 동작 생성부(13)에서 활용하도록 할 수 있다. (204).
이와 같이 하여, 테스트 동작 매니저(115)는 테스트 시나리오에 따라 각 화면의 테스트를 진행함에 있어서 테스트 진행 유무를 도 8 또는 도 9와 같은 테이블 형태로 정리하고 매 화면 인식이 끝난 후에 기존에 생성 저장되어 있는 테이블과 비교하여 동일할 경우에는 통합하도록 함으로써 반복적인 테스트가 수행되는 것을 방지할 수 있다.
한편, 도 8은 예시적인 개인 정보 입력 화면에서 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 테스트 동작 매니저의 테스트 동작 테이블을 도시한 것이다. 도 8에서 보듯이 테스트 동작 테이블은 카드 입력이 수반되는 경우, 기존 터치 등의 동작 외에 카드 번호를 입력한 것임을 함께 표시하는 것도 가능하다.
한편, 도 10은 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템에서 테스트가 진행됨에 따라 다음 테스트 동작을 결정하는 과정을 도시한 플로우차트이다. 도 10에 도시된 것과 같이 매 테스트할 인텐트를 결정할 때 테스트 동작 매니저(115)는 해당 화면에서 테스트되지 않은 인텐트가 있는지 여부를 확인할 수 있다(S71). 만약 존재한다면(Yes), 테스트 동작 매니저(115)는 테스트되고 있는 시나리오가 있는지 여부를 확인할 수 있다(S72). 또한, 시나리오가 존재한다면(Yes), 시나리오와 부합하는 인텐트가 있는지 확인(S73)하고, 있는 경우(Yes) 테스트 시나리오에 따라 인텐트를 선택하는 동작을 계속 수행하도록 한다. 다만, 시나리오와 부합하는 인텐트가 없다면, 미리 설정된 테스트 시나리오를 진행할 방법이 없으므로 테스트 시나리오를 진행 중이라는 정보를 초기화(Reset)하고 각 인텐트의 화면 안에서의 위치 정보를 기반으로 다음 테스트할 인텐트를 결정한다. 예를 들어 쇼핑몰에서 결제 시나리오가 신용카드 입력까지 진행된 상태에서 다음 화면에 결제, 배송지 수정 등의 결제 시나리오에서 가능한 인텐트가 발견되지 않은 경우에는 결제 시나리오를 계속 진행할 수 없으므로 시나리오 진행 현황을 모두 초기화하여 결제 시나리오를 처음부터 다시 진행하도록 보장한다.
한편, 테스트되지 않은 인텐트 중에서 테스트 중인 시나리오가 없는 경우, 해당 인텐트로 시작하는 테스트되지 않은 시나리오가 있는지 여부를 확인(S74)할 수 있다. 존재하는 경우(Yes), 해당 인텐트로 시작되는 시나리오를 시작한다. 예를 들어 결제 시나리오가 수행되지 않은 상태에서 화면에 장바구니추가와 같은 인텐트가 발견되면 장바구니 추가를 다음 테스트 동작으로 선택하고 결제 시나리오 테스트가 시작되었음을 표시한다. 적절한 시나리오가 존재하지 않는 경우(No), 역시 화면 내 위치에 기반하여 다른 인텐트를 선택할 수 있다.
한편, 화면 상에 테스트되지 않은 인텐트가 존재하지 않는 경우, 화면 내의 인텐트들로 수행되는 다른 테스트 경로가 있는지 확인하고(S75), 존재한다면(Yes), 해당 인텐트를 다시 선택할 수 있다. 반면, 다른 테스트 경로가 없는 경우(No), 홈 화면인지 확인하고(S76), 홈 화면이 아닌 경우(No) 재시작 하여 홈화면을 돌아가서 테스트를 진행하도록 하고 홈 화면인 경우(Yes)에는 모든 하위 경로에 대한 테스트가 완료된 것이므로 테스트를 종료하게 된다.
이하에서는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템 중, 테스트 페르소나 저장소에 저장된 데이터의 예시와 페르소나 데이터를 효율적으로 확장하는 방법을 설명하도록 한다.
도 11a 내지 도 11c는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템에서 사용되는 예시적인 페르소나의 정보를 페르소나 저장소에서 불러오는 동작을 도시한 것이다.
도 11a에서 보듯이, 테스트 페르소나 저장소(133)에는 예를 들어 'John Doe'라는 이름의 가상 인물이 저장되어 있을 수 있고, 해당 인물에는 직업, 이메일, 주소, 휴대전화 번호, 신용카드 정보, 채팅앱, SNS 등과 같은 정보가 설정될 수 있다. 또한, 테스트 페르소나 저장소(133)에는 이러한 가상 인물들이 적어도 1명 이상, 바람직하게는 다수로 저장될 수 있으며, 필요한 테스트 시나리오에 따라 적절한 가상 인물의 정보가 활용될 수 있다.
도 11b에서 보듯이, 테스트 페르소나 저장소(133)에는 RDF 저장소(RDF Repository, 133a) 및 RDF 추론엔진(RDF Inference Engine, 133b)이 백그라운드에 연결되어 있을 수 있다. 여기서, RDF(Resource Description Framework)는 <주어, 서술어(관계), 목적어>와 같은 3개의 쌍(tuple)으로 정보를 관리하는 방법으로 유사한 정보 관리 방법으로 대체 가능하다. RDF 저장소(RDF Repository, 133a)는 자체적으로 작성한 테스터에 대한 가상 인물 데이터와 외부의 온톨로지(Ontology)를 수집해서 보관하는 저장소를 의미하며, RDF 추론엔진(RDF Inference Engine, 133b)는 RDF를 최종 테스트에 필요한 <Key, Value> 즉 <Name, 'John Doe'>와 같은 형식의 데이터로 변환하는 역할을 수행할 수 있다. 이 과정에서 추론 엔진은 외부 데이터와 내부 데이터를 통합하여 새로운 관계를 생성해내는 정보 추론의 역할과 유의어나 언어 매핑 정보를 이용해서 데이터 변환을 통해 입력된 데이터 및 관계보다 더 많은 정보를 생성해 낼 수 있다. 예를 들어 <'John Doe', 'Company Name', 'Facebook'> 이라는 내부 정보와 <'Facebook', 'address', 'S California Avenue, Palo Alto'>라는 외부 인터넷에서 수집한 정보를 결합하여 <'John Doe', 'Company Address', 'S California Avenue, Palo Alto'>와 같은 정보를 생성할 수 있다.
도 11c에서 보듯이, 테스트 페르소나 저장소(133)는 RFD 추론 엔진(133b)로부터 변환된 데이터를 일종의 테이블의 형태로 저장하게 된다. 따라서, 테스트 시나리오에 따라 필요한 데이터가 해당 테이블의 형태로 테스트 동작 생성부(13)에 제공될 수 있다.
이하에서는 인텐트/개체 인식부의 저장 테이블을 예시적으로 설명하도록 한다.
도 12는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템에서 사용되는 페르소나의 정보를 인텐트/개체 인식부에서 저장하는 테이블을 도시한 것이다.
도 12에 도시된 것처럼, 인텐트/개체 인식부(131)에는 스크린샷으로부터 파악된 UI 구성 또는 OCR 정보를 토대로, 인텐트/개체를 구분할 수 있으며, 테이블로서 정리할 수 있다. 또한, 해당 테이블은 테스트 동작 매니저(115)와 공유될 수도 있어서, 해당 테이블을 통해 인텐트가 테스트되었는지 여부도 함께 기록될 수 있다.
이하에서는 페르소나의 정보를 인텐트/개체 매칭부가 불러오는 과정을 설명하도록 한다.
도 13a 및 도 13b는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템에서 페르소나의 정보를 인텐트/개체 매칭부가 불러오는 과정을 도시한 것이다.
도 13a에서 보듯이, 테스트 시나리오에 따라, 인텐트/개체 매칭부(132)는 테스트 페르소나 저장소(133)와 통신하고, 필요한 형식에 맞는 페르소나의 데이터를 불러올 수 있다. 이 때, 테스트 페르소나 저장소(133)에는 예를 들어 카드 번호의 경우, 카드번호 16개의 숫자와 cvv 3자리 숫자의 조합으로 구성될 수 있으나, 다양한 어플리케이션의 입력 포맷에 맞도록 각각 1자리 블록, 4자리 블록, 2자리 블록, 5자리 블록 등 다양한 형태로서 저장되어 있을 수 있으며, 인텐트/개체 매칭부(132)는 어플리케이션에 맞는 형태의 데이터를 불러오게 된다.
이하에서는 예시적인 테스트 시나리오 관리 방법을 설명하도록 한다.
도 14는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템에서 관리하고 있는 인텐트 기반의 테스트 시나리오를 그래프 구조로 도시한 예시이다.
도 14를 참조하면, 최초 '홈(home)' 화면에서부터 결제 테스트가 완료되는 'review the order' 화면까지 다양한 경로가 있음을 파악할 수 있다. 예를 들어 신용카드로 결제하는 경우에 필요한 테스트 동작은 순차적으로 'View content' -> 'Place an order' -> 'Enter credit card' -> 'Place an Order'이다. 테스트 시나리오 다음 화면으로 전환되기 위해 필요한 인텐트의 연속으로 관리하여 어플리케이션에 독립된 범용의 테스트 시나리오를 정의할 수 있다. 범용 테스트 시나리오는 테스트 중에 실시간에 테스트 대상 화면의 인텐트를 인식하여 부합하는 테스트 시나리오가 결정되고 실행되므로 사람이 개입하여 각 어플리케이션 별로 테스트 시나리오를 작성하지 않아도 자동으로 테스트가 수행될 수 있다.
이하에서는 본 발명의 실시예에 따른 유저 인터페이스 시스템의 구현예를 설명하도록 한다.
도 15는 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 일 구현 예이다. 도 16은 본 발명의 실시예에 따른 유저 인터페이스 자율 테스트 시스템의 다른 구현 예이다.
도 15에서 보듯이, 테스트 디바이스에 별도로 구비되어 결합된 디바이스의 형태로 유저 인터페이스 시스템(10)이 구비될 수 있다. 이 경우, 유저 인터페이스 시스템(10)은 CPU, GPU, 스토리지, 메모리의 구성을 포함할 수 있고, 테스트 디바이스와 연결되기 위한 I/O 디바이스 인터페이스를 포함할 수 있다.
여기서, 로직과 로직이 참고하는 모든 데이터는 스토리지에 저장되어 있을 수 있고, 다만 연산에 필요한 로직들은 다시 메모리에 올라갈 수 있다. 또한, 객체 검출이나, OCR, 개체 인식 등의 연산은 GPU에서 처리될 수 있으나, 경우에 따라 CPU에서 이를 포함한 대부분의 로직을 담당할 수 있다.
한편, 도 16에서 보듯이, 유저 인터페이스 자율 테스트 시스템은 클라우드 형태로 구현될 수도 있다.
도 16에서 보듯이, 구성의 가장 하부에는 어플리케이션 설치할 테스트 디바이스가 존재하나, 실제 디바이스 대신 에뮬레이터(emulator)나 VM으로 대체하는 것도 가능하다.
또한, 클라우드 형태의 구현에서는 디바이스 커넥터를 통해 디바이스에 직접연결되어 테스트를 수행하는 각 에이전트를 테스트봇(Testbot)이라고 부른다. 테스트봇은 어플리케이션을 설치하고 어플리케이션의 스크린 샷, 접근성 정보 등을 수집하여 AI 테스트봇 엔진(TestBot Engine)에게 보낸 후 AI 테스트봇 엔진이 결정한 다음 테스트 동작을 실행하는 역할을 할 수 있다. 또한, 테스트봇 컨트롤러는 사용자의 테스트 요청이 들어오면 테스트봇 컨트롤러가 테스트봇을 할당하고 테스트 수행을 모티터링할 수 있다.
또한, 클라우드 형태에서는 여러 사용자가 디바이스를 공유하므로 보통 동일한 기종이 여러 서버에 분산해서 배치되어 있고, 디바이스 팜 매니저(Device Farm Manager)는 사용자 요청이 왔을 때 해당 디바이스가 연결된 테스트봇 컨트롤러 중에서 가장 부하가 적은 것을 선택해서 테스트 작업을 할당할 수 있다. 이 때, 사용자는 자신이 사용하고 있는 디바이스가 실제로 어디에 연결되어 있는지는 관계없이 기종을 선택하고 테스트를 요청하면 된다.
한편, AI 테스트봇 엔진(AI TestBot Engine)은 각 테스트봇이 보내주는 어플리케이션의 스크린 샷 정보, 로그 정보들을 받아서 다음 테스트 동작을 결정하고 오류를 검출하는 모든 동작을 수행할 수 있다.
이상에서 설명한 것은 본 발명에 의한 유저 인터페이스 자율 테스트 시스템 및 방법을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 바와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.
10; 유저 인터페이스 자율 테스트 시스템 11; 테스트 동작 인식부
111; UI 요소 객체 검출부 112; 텍스트 인식부
113; UI 계층 정보 어댑터 114; UI 레이아웃 인식부
115; 테스트 동작 매니저 12; 이슈 검출부
13; 테스트 동작 생성부 131; 인텐트/개체 인식부
132; 인텐트/개체 매칭부 133; 테스트 페르소나 저장부
134; 테스트 시나리오 저장부 14; 외부 서비스 통합부

Claims (20)

  1. 어플리케이션 또는 웹 사이트의 유저 인터페이스에 대한 오류를 테스트하는 시스템에 있어서,
    상기 어플리케이션 또는 웹 사이트의 화면에 대해 스크린샷을 획득하고, 스크린샷으로부터 UI 요소 객체 및 텍스트 인식 정보를 토대로 레이아웃을 인식하고, 테스트 동작으로 전환하여 관리하는 테스트 동작 인식부; 및
    상기 테스트 동작을 전달받고 상기 테스트 동작의 인텐트에 해당되는 테스트 시나리오를 선택하고, 상기 테스트 시나리오에 따라 테스트 동작을 수행하는 테스트 동작 생성부를 포함하고,
    상기 테스트 동작 인식부는 상기 레이아웃에 대해 상기 어플리케이션 또는 웹 사이트의 화면들이 공유하여 중복되는 공통부(Header, Footer)와 공유하지 않는 가변부(Body)로 그룹핑하되, 상기 테스트 시나리오에 따라 각 화면의 레이아웃별로 테스트 진행 여부를 관리하고,
    상기 테스트 동작 생성부는
    상기 UI 요소 객체 또는 텍스트 인식 정보를 통해 획득한 텍스트를 인텐트와 개체로 구분하여 저장하는 인텐트/개체 검출부;
    실제 테스트에 사용 가능한 이메일, 휴대전화 번호 및 신용카드 정보를 갖는 적어도 하나의 가상 인물을 저장하는 테스트 페르소나 저장소; 및
    상기 UI 요소 객체 또는 텍스트 인식 정보를 통해 획득한 텍스트에 따라, 상기 테스트 페르소나 저장소로부터 부합하는 형태의 데이터가 설정된 가상 인물의 정보를 불러오는 인텐트/개체 매칭부를 더 포함하는 시스템.
  2. 제 1 항에 있어서,
    상기 테스트 동작 인식부는 테스트 동작 매니저를 포함하고,
    상기 테스트 동작 매니저는 상기 테스트 진행 여부를 테이블을 통해 관리하는 시스템.
  3. 제 2 항에 있어서,
    상기 테스트 동작 매니저는 상기 테이블에 해당 레이아웃을 테스트 동작으로 전환하여 함께 저장하는 시스템.
  4. 제 1 항에 있어서,
    상기 테스트 동작 인식부는
    상기 UI 요소 객체 및 텍스트 인식 정보와 운영체제가 제공하는 UI 계층정보를 조합하여 상기 레이아웃을 인식하는 시스템.
  5. 제 1 항에 있어서,
    상기 테스트 동작 인식부는 머신 러닝을 통해 UI 요소 객체를 인식하는 모델 파라미터를 학습하여 저장하고 상기 파라미터에 기반하여 상기 UI 요소 객체를 검출하는 UI 요소 객체 검출부를 더 포함하는 시스템.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 제 1 항에 있어서,
    유저 인터페이스 테스트 동작의 결과를 테스트 페르소나 계정 정보를 이용하여 외부 서비스에 접속하여 검증하고 오류를 탐지하는 시스템.
  11. 어플리케이션 또는 웹 사이트의 유저 인터페이스에 대한 오류를 테스트하는 방법에 있어서,
    테스트 동작 생성부가 상기 어플리케이션 또는 웹 사이트에 대해 테스트 시나리오를 불러오는 단계;
    테스트 동작 인식부가 상기 어플리케이션 또는 웹 사이트의 스크린샷을 통해 레이아웃을 인식하되, 상기 레이아웃에 대해 상기 어플리케이션 또는 웹 사이트의 화면들이 공유하여 중복되는 공통부(Header, Footer)와, 공유하지 않는 가변부(Body)로 그룹핑하는 단계;
    상기 테스트 동작 생성부가 상기 테스트 시나리오 및 레이아웃에 따라 상기 테스트 동작을 선택하는 단계;
    상기 테스트 동작 생성부가 테스트 데이터를 생성하는 단계; 및
    상기 테스트 동작 생성부가 상기 어플리케이션 또는 웹 사이트의 화면에 대해 테스트 동작을 수행하는 단계를 포함하되,
    상기 테스트 동작 생성부는
    UI 요소 객체 또는 텍스트 인식 정보를 통해 획득한 텍스트를 인텐트와 개체로 구분하여 저장하는 인텐트/개체 검출부;
    실제 테스트에 사용 가능한 이메일, 휴대전화 번호 및 신용카드 정보를 갖는 적어도 하나의 가상 인물을 저장하는 테스트 페르소나 저장소; 및
    상기 UI 요소 객체 또는 텍스트 인식 정보를 통해 획득한 텍스트에 따라, 상기 테스트 페르소나 저장소로부터 부합하는 형태의 데이터가 설정된 가상 인물의 정보를 불러오는 인텐트/개체 매칭부를 더 포함하는 방법.
  12. 제 11 항에 있어서,
    상기 테스트 동작 인식부는 테스트 동작 매니저를 포함하고,
    상기 테스트 동작 매니저는 테스트 진행 여부를 테이블을 통해 관리하는 방법.
  13. 제 12 항에 있어서,
    상기 테스트 동작 매니저는 상기 테이블에 해당 레이아웃과 테스트 동작, 인텐트를 함께 저장하고 이 추상화된 테스트 동작 정보를 기반으로 화면의 디자인이나 값에 변경이 있을 때도 중복 테스트를 방지하는 방법.
  14. 제 11 항에 있어서,
    상기 테스트 동작 인식부는
    UI 요소 객체 및 텍스트 인식 정보와 운영체제가 제공하는 UI 계층정보를 조합하여 상기 레이아웃 및 테스트 동작을 인식하는 방법.
  15. 제 11 항에 있어서,
    상기 테스트 동작 인식부는
    머신 러닝을 통해 UI 요소 객체를 인식하는 모델 파라미터를 학습하여 저장하고 상기 파라미터에 기반하여 상기 UI 요소 객체를 검출하는 UI 요소 객체 검출부를 더 포함하는 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 제 11 항에 있어서,
    유저 인터페이스 테스트 동작의 결과를 테스트 페르소나 계정 정보를 이용하여 외부 서비스에 접속하여 검증하고 오류를 탐지하는 방법.
KR1020200184995A 2020-12-28 2020-12-28 유저 인터페이스 자율 테스트 시스템 및 방법 KR102343477B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200184995A KR102343477B1 (ko) 2020-12-28 2020-12-28 유저 인터페이스 자율 테스트 시스템 및 방법
US17/137,777 US11567858B2 (en) 2020-12-28 2020-12-30 System and method for user interface autonomous testing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200184995A KR102343477B1 (ko) 2020-12-28 2020-12-28 유저 인터페이스 자율 테스트 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR102343477B1 true KR102343477B1 (ko) 2021-12-28

Family

ID=79178185

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200184995A KR102343477B1 (ko) 2020-12-28 2020-12-28 유저 인터페이스 자율 테스트 시스템 및 방법

Country Status (2)

Country Link
US (1) US11567858B2 (ko)
KR (1) KR102343477B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102653375B1 (ko) * 2023-03-24 2024-04-02 쿠팡 주식회사 테스트를 관리하는 방법 및 이를 지원하는 전자 장치

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7318704B2 (ja) * 2019-05-13 2023-08-01 日本電信電話株式会社 テスト装置、テスト方法及びプログラム
US12026084B2 (en) 2020-11-10 2024-07-02 T-Mobile Usa, Inc. Automated testing of mobile devices using visual analysis
US20220171510A1 (en) * 2020-11-10 2022-06-02 T-Mobile Usa, Inc. Automated testing of mobile devices using behavioral learning
CN116048682B (zh) * 2022-08-02 2024-09-20 荣耀终端有限公司 一种终端系统界面布局对比方法及电子设备
US11790031B1 (en) * 2022-10-31 2023-10-17 Content Square SAS Website change detection
CN115982018B (zh) * 2022-12-21 2024-03-29 北京水木羽林科技有限公司 一种基于ocr的ui测试方法、系统、计算机设备和存储介质
CN118733433B (zh) * 2024-05-14 2025-01-14 一汽奔腾汽车股份有限公司 一种车机座舱软件多语言的测试方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120040419A (ko) * 2010-10-19 2012-04-27 주식회사 인프라웨어 유저 인터페이스 자동 분석을 통한 테스트 케이스 생성 방법
WO2013145629A1 (ja) * 2012-03-30 2013-10-03 日本電気株式会社 負荷評価を実行する情報処理装置及び負荷評価方法
KR20150069455A (ko) * 2013-12-13 2015-06-23 경북대학교 산학협력단 테스트 시나리오 생성 장치, 그를 포함하는 애플리케이션 테스트 시스템, 테스트 시나리오 생성 방법, 및 그 기록매체
KR20160070410A (ko) * 2014-12-10 2016-06-20 (주)파이온닷컴 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법
KR20180058579A (ko) * 2016-11-24 2018-06-01 경북대학교 산학협력단 액티비티 스택에 기반한 테스트 시나리오 생성 방법
KR102075111B1 (ko) * 2018-08-23 2020-02-07 (주) 넥스트랩 Ui 기능 테스트 시스템 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150100486A1 (en) * 2013-10-04 2015-04-09 Sydney Green System and method for automatically enrollng an item in a virtual wallet
US9424167B2 (en) * 2014-05-21 2016-08-23 Cgi Technologies And Solutions Inc. Automated testing of an application system
US10423709B1 (en) * 2018-08-16 2019-09-24 Audioeye, Inc. Systems, devices, and methods for automated and programmatic creation and deployment of remediations to non-compliant web pages or user interfaces
US11513670B2 (en) * 2020-04-27 2022-11-29 Automation Anywhere, Inc. Learning user interface controls via incremental data synthesis

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120040419A (ko) * 2010-10-19 2012-04-27 주식회사 인프라웨어 유저 인터페이스 자동 분석을 통한 테스트 케이스 생성 방법
WO2013145629A1 (ja) * 2012-03-30 2013-10-03 日本電気株式会社 負荷評価を実行する情報処理装置及び負荷評価方法
KR20150069455A (ko) * 2013-12-13 2015-06-23 경북대학교 산학협력단 테스트 시나리오 생성 장치, 그를 포함하는 애플리케이션 테스트 시스템, 테스트 시나리오 생성 방법, 및 그 기록매체
KR20160070410A (ko) * 2014-12-10 2016-06-20 (주)파이온닷컴 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법
KR20180058579A (ko) * 2016-11-24 2018-06-01 경북대학교 산학협력단 액티비티 스택에 기반한 테스트 시나리오 생성 방법
KR102075111B1 (ko) * 2018-08-23 2020-02-07 (주) 넥스트랩 Ui 기능 테스트 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102653375B1 (ko) * 2023-03-24 2024-04-02 쿠팡 주식회사 테스트를 관리하는 방법 및 이를 지원하는 전자 장치
WO2024204915A1 (ko) * 2023-03-24 2024-10-03 쿠팡 주식회사 테스트를 관리하는 방법 및 이를 지원하는 전자 장치

Also Published As

Publication number Publication date
US20220206931A1 (en) 2022-06-30
US11567858B2 (en) 2023-01-31

Similar Documents

Publication Publication Date Title
KR102343477B1 (ko) 유저 인터페이스 자율 테스트 시스템 및 방법
US11847578B2 (en) Chatbot for defining a machine learning (ML) solution
US20230267374A1 (en) Machine learning (ml) infrastructure techniques
US11556862B2 (en) Techniques for adaptive and context-aware automated service composition for machine learning (ML)
US12118474B2 (en) Techniques for adaptive pipelining composition for machine learning (ML)
AU2016304571B2 (en) Model integration tool
WO2021051031A1 (en) Techniques for adaptive and context-aware automated service composition for machine learning (ml)
US20210065245A1 (en) Using machine learning to discern relationships between individuals from digital transactional data
US11720825B2 (en) Framework for multi-tenant data science experiments at-scale
US20210294976A1 (en) Systems and Methods for Deploying Computerized Conversational Agents
WO2022140650A2 (en) Systems and methods for building and deploying machine learning applications
US20240112229A1 (en) Facilitating responding to multiple product or service reviews associated with multiple sources
CN113886216B (zh) 接口测试和工具配置方法、装置、电子设备和存储介质
US11983747B2 (en) Using machine learning to identify hidden software issues
US20220269744A1 (en) Methods and systems for enabling dynamic filters for software search optimization
US20230026656A1 (en) Machine learning for categorizing text
WO2022145499A1 (ko) 유저 인터페이스 자율 테스트 시스템 및 방법
US20240338306A1 (en) Automatic generation of test scenarios from specification files
US20240177030A1 (en) Identifying unkown decision making factors from communications data
CN119443265A (zh) 一种数据推理方法、装置、电子设备、存储介质
CN118820059A (zh) 生成接口测试用例的方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20201228

PA0201 Request for examination
PA0302 Request for accelerated examination

Patent event date: 20210520

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

Patent event date: 20201228

Patent event code: PA03021R01I

Comment text: Patent Application

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20210622

Patent event code: PE09021S01D

AMND Amendment
PE0601 Decision on rejection of patent

Patent event date: 20210917

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20210622

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

X091 Application refused [patent]
AMND Amendment
PX0901 Re-examination

Patent event code: PX09011S01I

Patent event date: 20210917

Comment text: Decision to Refuse Application

Patent event code: PX09012R01I

Patent event date: 20210823

Comment text: Amendment to Specification, etc.

PX0701 Decision of registration after re-examination

Patent event date: 20211210

Comment text: Decision to Grant Registration

Patent event code: PX07013S01D

Patent event date: 20211116

Comment text: Amendment to Specification, etc.

Patent event code: PX07012R01I

Patent event date: 20210917

Comment text: Decision to Refuse Application

Patent event code: PX07011S01I

Patent event date: 20210823

Comment text: Amendment to Specification, etc.

Patent event code: PX07012R01I

X701 Decision to grant (after re-examination)
GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20211222

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20211223

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20240930

Start annual number: 4

End annual number: 4