KR20220041376A - 네이티브 어플리케이션의 테스트케이스 생성 장치 및 방법 - Google Patents

네이티브 어플리케이션의 테스트케이스 생성 장치 및 방법 Download PDF

Info

Publication number
KR20220041376A
KR20220041376A KR1020200124493A KR20200124493A KR20220041376A KR 20220041376 A KR20220041376 A KR 20220041376A KR 1020200124493 A KR1020200124493 A KR 1020200124493A KR 20200124493 A KR20200124493 A KR 20200124493A KR 20220041376 A KR20220041376 A KR 20220041376A
Authority
KR
South Korea
Prior art keywords
test
generating
elements
test case
path
Prior art date
Application number
KR1020200124493A
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 KR1020200124493A priority Critical patent/KR20220041376A/ko
Publication of KR20220041376A publication Critical patent/KR20220041376A/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/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/3604Software analysis for verifying properties of programs
    • 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/3668Software testing
    • 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/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable

Abstract

네이티브 어플리케이션의 테스트케이스 생성 장치 및 방법을 개시한다. 본 발명은 네이티브 어플리케이션에서의 요소 수집과 각 요소에 따른 동작 패턴을 기반으로 요소들을 구분하고, 사용자의 동작에 따른 경로를 생성하여 테스트케이스를 자동으로 생성한다.

Description

네이티브 어플리케이션의 테스트케이스 생성 장치 및 방법{APPARATUS AND METHOD FOR GENERATING TEST CASES OF NATIVE APPLICATION}
본 발명은 네이티브 어플리케이션의 테스트케이스 생성 장치 및 방법에 관한 발명으로서, 더욱 상세하게는 네이티브 어플리케이션에서의 요소 수집과 각 요소에 따른 동작 패턴을 기반으로 요소들을 구분하고, 사용자의 동작에 따른 경로를 생성하여 테스트케이스를 자동으로 생성하는 네이티브 어플리케이션의 테스트케이스 생성 장치 및 방법에 관한 것이다.
최근 들어, 모바일 단말기의 보급이 급속도로 증가하여 어플, 앱 등으로 불리는 어플리케이션의 개발이 급증하고 있다.
특히, iOS, 안드로이드 등 OS(운영체제)에 따라 개발을 다르게 해야 하는 경우도 있고, 뉴스 어플리케이션과 같이 실시간 웹 정보가 필요한 경우도 있다.
일반적으로 네이티브 어플리케이션(Native Application)은 앱스토어나 구글 플레이스토어에서 다운로드 받아 사용하는 어플리케이션으로 정의되고, 각 OS의 개발 언어를 통해 작성된 플랫폼에서만 작동된다.
이러한 어플리케이션이 사용자 단말에서 정상적으로 동작하는지 여부를 테스트하기 위해 일반적으로 어플리케이션을 사용자 단말에서 실행하고, 실행된 어플리케이션에 대한 입력에 따라 출력되는 화면을 기초로 어플리케이션의 동작여부를 판단한다.
그러나 어플리케이션의 테스트를 수행하는 과정에서 사용자단말의 설정에 따라 어플리케이션의 일부 객체가 화면에 표시되지 않아 상이한 화면으로 판단되는 문제점이 있다.
또한, 안드로이드 어플리케이션의 액티비티(Activity)에서 사용자와 상호 작용 가능한 요소를 접근 가능 요소라고 하고, 모든 접근 가능 요소를 동작 가능한 요소라고 할 수 있다.
또한, 액티비티 상의 클릭 또는 입력할 수 있는 모든 요소를 동작 가능한 요소라고 할 수 있지만, 이들 모든 요소가 어플리케이션의 동작에 영향을 주지 않기 때문에 동작 가능한 요소라 함은 어플리케이션의 동작에 영향을 주는 요소라고 할 수 있다.
여기서, 어플리케이션의 동작에 영향을 주는 요소는 구체적으로 '버튼', '툴바', '텍스트 영역', 스크롤 메뉴' 등이 있고, 이러한 요소들은 액티비티를 구성하고 있는 요소로서 위젯(Widget)이라고 한다.
그러나, 이러한 요소들은 단순히 XML(eXtensible Markup Language) 트리를 정적으로 분석하는 것만으로는 모든 요소의 특성을 찾을 수 없기 때문에 식별이 어려운 문제점이 있다.
또한, 모든 위젯은 클릭 가능할 수 있고, 동작 가능할 수 있지만, 안드로이드 어플리케이션의 액티비티를 구성하는 모든 위젯은 보이지 않거나, 숨겨져 있거나, 비활성화 되어 있거나 또는 팝업 등의 다른 요소들에 의해 막혀 있을 수 있는 문제점이 있다.
또한, 모든 동작 가능한 요소들을 수동을 찾는 것은 많은 시간이 소요되고, 오류의 발생 여지가 많으며, 일부 요소는 사용자가 직접 해당 메뉴를 클릭하기 전까지는 숨겨져 있어서 다른 요소에 의존적인 경우도 있다.
따라서, 어플리케이션의 모든 요소에 대한 동작여부를 판단하고 이를 커버하기 위해서는 많은 수작업과 시간이 요구되며, 테스트케이스의 작성 및 자동화하는 작업은 더욱 어려워서 테스트에 대한 전문 지식이 요구되는 문제점이 있다.
한국 등록특허공보 등록번호 제10-2116395호(발명의 명칭: 애플리케이션 테스트 방법 및 장치)
이러한 문제점을 해결하기 위하여, 본 발명은 네이티브 어플리케이션에서의 요소 수집과 각 요소에 따른 동작 패턴을 기반으로 요소들을 구분하고, 사용자의 동작에 따른 경로를 생성하여 테스트케이스를 자동으로 생성하는 네이티브 어플리케이션의 테스트케이스 생성 장치 및 방법을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위하여 본 발명의 일 실시 예는 테스트케이스 생성 장치로서, 테스트 대상 네이티브 어플리케이션(Native Application)을 호출하여 액티비티(Activity)에 포함된 동작 가능한 위젯(Widget)을 수집하고, 상기 수집된 위젯을 비활성화 상태 또는 위치나 크기가 없는 비가용(Unavailable) 요소, 활성화 상태이고 위치나 크기도 있지만 표시 영역 밖에 위치된 히든(Hidden) 요소, 활성화 상태이고 표시 영역 내에 위치한 가시적(Visible) 요소로 분류하되, 상기 분류된 가시적 요소에 대하여 미리 설정된 테스트 동작을 수행하고, 자동화 프레임 워크를 사용하여 상기 테스트 동작 및 경로를 기록하며, 상기 기록된 테스트 동작 및 경로를 시각화한 그래프를 생성하고, 상기 그래프에 기반한 경로로부터 테스트 스크립트 및 자연어를 포함한 테스트케이스 중 적어도 하나를 생성하는 것을 특징으로 한다.
또한, 상기 실시 예에 따른 수집된 위젯은 액티비티와 XPATH를 조합하여 생성한 고유 아이디가 설정되는 것을 특징으로 한다.
또한, 상기 실시 예에 따른 테스트 동작은 키보드 입력, 클릭 중 적어도 하나인 것을 특징으로 한다.
또한, 상기 실시 예에 따른 테스트케이스 생성 장치는 네이티브 어플리케이션을 호출하여 XML 트리 구조로 이루어진 액티비티에서 동작 가능한 위젯을 수집하고, 상기 수집된 위젯에 액티비티와 XPATH를 조합하여 생성한 고유 아이디를 설정하는 위젯 수집부; 상기 수집된 위젯을 비활성화 상태 또는 위치나 크기가 없는 비가용(Unavailable) 요소, 활성화 상태이고 위치나 크기도 있지만 표시 영역 밖에 위치된 히든(Hidden) 요소, 활성화 상태이고 표시 영역 내에 위치한 가시적(Visible) 요소로 분류하는 위젯 분류부; 상기 분류된 가시적 요소에 대하여 테스트 동작을 할당하고, 자동화 프레임 워크를 사용하여 상기 할당된 테스트 동작과 테스트 동작에 따른 실제 경로를 기록하는 테스트 실행부; 상기 기록된 테스트 동작 및 테스트 동작에 따른 실제 경로를 시각화한 그래프를 생성하는 시각화 생성부; 및 상기 그래프에 기반한 실제 경로로부터 테스트 스크립트 및 자연어를 포함한 테스트케이스를 생성하는 테스트케이스 생성부;를 포함하는 것을 특징으로 한다.
또한, 상기 실시 예에 따른 테스트 실행부는 분류된 가시적 요소에 대하여 키보드 입력 및 클릭을 포함한 테스트 동작을 할당하는 테스트 동작 실행부; 및 자동화 프레임 워크를 사용하여 상기 할당된 테스트 동작과 테스트 동작에 따른 실제 경로를 기록하는 테스트 경로 생성부;를 포함하는 것을 특징으로 한다.
또한, 본 발명의 일 실시 예는 네이티브 어플리케이션의 테스트케이스 생성 방법으로서, a) 테스트케이스 생성 장치가 테스트 대상 네이티브 어플리케이션(Native Application)을 호출하여 액티비티(Activity)에 포함된 동작 가능한 위젯(Widget)을 수집하는 단계; b) 상기 테스트케이스 생성 장치가 수집된 위젯을 비활성화 상태 또는 위치나 크기가 없는 비가용(Unavailable) 요소, 활성화 상태이고 위치나 크기도 있지만 표시 영역 밖에 위치된 히든(Hidden) 요소, 활성화 상태이고 표시 영역 내에 위치한 가시적(Visible) 요소로 분류하는 단계; c) 상기 테스트케이스 생성 장치가 분류된 가시적 요소에 대하여 키보드 입력 및 클릭을 포함한 테스트 동작을 수행하고, 자동화 프레임 워크를 사용하여 상기 테스트 동작 및 경로를 기록하는 단계; d) 상기 테스트케이스 생성 장치가 기록된 테스트 동작 및 경로를 시각화한 그래프를 생성하는 단계; 및 e) 상기 테스트케이스 생성 장치가 그래프에 기반한 경로로부터 테스트 스크립트 및 자연어를 포함한 테스트케이스 중 적어도 하나를 생성하는 단계;를 포함한다.
또한, 상기 실시 예에 따른 a) 단계는 수집된 위젯에 액티비티와 XPATH를 조합하여 생성한 고유 아이디를 설정하는 것을 특징으로 한다.
또한, 상기 실시 예에 따른 e) 단계는 상기 테스트케이스 생성 장치가 가시적 요소에 대한 테스트 동작 수행 결과를 출력하면, 분류된 요소 중에서 히든 요소에 대한 테스트 동작을 수행하고, 상기 히든 요소에 대한 테스트 동작 및 경로를 기록하여 시각화한 그래프를 생성하며, 상기 그래프에 기반하여 히든 요소의 테스트스크립트 및 자연어를 포함한 테스트케이스를 생성하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명은 네이티브 어플리케이션에서의 요소 수집과 각 요소에 따른 동작 패턴을 기반으로 요소들을 구분하고, 사용자의 동작에 따른 경로를 생성하여 테스트케이스를 자동으로 생성할 수 있는 장점이 있다.
또한, 본 발명은 어플리케이션의 실제 경로를 기록하여 그래프에 의한 시각화를 통해 쉽게 확인할 수 있는 장점이 있다.
또한, 본 발명은 숙련되지 않은 검증자(tester)라도 테스트를 쉽게 처리할 수 있는 장점이 있다.
또한, 본 발명은 수동 테스트에 요구되는 시간을 단축시킬 수 있는 장점이 있다.
또한, 본 발명은 개발중인 어플리케이션에 대하여 회귀테스트(regression test)를 수행할 수 있는 장점이 있다.
도1은 본 발명의 일 실시 예에 따른 네이티브 어플리케이션의 테스트케이스 생성 장치를 나타낸 블록도.
도2는 도1의 실시 예에 따른 네이티브 어플리케이션의 테스트케이스 생성 장치의 테스트 실행부 구성을 나타낸 블록도.
도3은 도1의 실시 예에 따른 네이티브 어플리케이션의 테스트케이스 생성 장치의 실제 경로를 기록하여 생성한 그래프.
도4는 도1의 실시 예에 따른 네이티브 어플리케이션의 테스트케이스 생성 장치의 실제 경로를 기록하여 생성한 다른 그래프.
도5는 본 발명의 일 실시 예에 따른 네이티브 어플리케이션의 테스트케이스 생성 방법을 나타낸 흐름도.
이하에서는 본 발명의 바람직한 실시 예 및 첨부하는 도면을 참조하여 본 발명을 상세히 설명하되, 도면의 동일한 참조부호는 동일한 구성요소를 지칭함을 전제하여 설명하기로 한다.
본 발명의 실시를 위한 구체적인 내용을 설명하기에 앞서, 본 발명의 기술적 요지와 직접적 관련이 없는 구성에 대해서는 본 발명의 기술적 요지를 흩뜨리지 않는 범위 내에서 생략하였음에 유의하여야 할 것이다.
또한, 본 명세서 및 청구범위에 사용된 용어 또는 단어는 발명자가 자신의 발명을 최선의 방법으로 설명하기 위해 적절한 용어의 개념을 정의할 수 있다는 원칙에 입각하여 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다.
본 명세서에서 어떤 부분이 어떤 구성요소를 "포함"한다는 표현은 다른 구성요소를 배제하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
또한, "‥부", "‥기", "‥모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는 그 둘의 결합으로 구분될 수 있다.
또한, "적어도 하나의" 라는 용어는 단수 및 복수를 포함하는 용어로 정의되고, 적어도 하나의 라는 용어가 존재하지 않더라도 각 구성요소가 단수 또는 복수로 존재할 수 있고, 단수 또는 복수를 의미할 수 있음은 자명하다 할 것이다.
또한, 각 구성요소가 단수 또는 복수로 구비되는 것은, 실시 예에 따라 변경가능하다 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시 예에 따른 네이티브 어플리케이션의 테스트케이스 생성 장치 및 방법의 바람직한 실시 예를 상세하게 설명한다.
도1은 본 발명의 일 실시 예에 따른 네이티브 어플리케이션의 테스트케이스 생성 장치를 나타낸 블록도이고, 도2는 도1의 실시 예에 따른 네이티브 어플리케이션의 테스트케이스 생성 장치의 테스트 실행부 구성을 나타낸 블록도이다.
도1 및 도2를 참조하면, 본 발명의 일 실시 예에 따른 테스트케이스 생성 장치(100)는 테스트 대상 네이티브 어플리케이션(Native Application)을 호출하여 액티비티(Activity)에 포함된 동작 가능한 위젯(Widget)을 수집하고, 상기 수집된 위젯을 비활성화 상태 또는 위치나 크기가 없는 비가용(Unavailable) 요소, 활성화 상태이고 위치나 크기도 있지만 표시 영역 밖에 위치된 히든(Hidden) 요소, 활성화 상태이고 표시 영역 내에 위치한 가시적(Visible) 요소로 분류한다.
또한, 상기 테스트케이스 생성 장치(100)는 분류된 가시적 요소에 대하여 미리 설정된 테스트 동작을 수행하고, 자동화 프레임 워크를 사용하여 상기 테스트 동작 및 경로를 기록하며, 상기 기록된 테스트 동작 및 경로를 시각화한 그래프를 생성하고, 상기 그래프에 기반한 경로로부터 테스트 스크립트 및 자연어를 포함한 테스트케이스 중 적어도 하나를 생성하는 구성으로서, 위젯 수집부(110)와, 위젯 분류부(120)와, 테스트 실행부(130)와, 시각화 생성부(140)와, 테스트 케이스 생성부(150)를 포함하여 구성된다.
상기 위젯 수집부(110)는 네이티브 어플리케이션을 호출하여 액티비티에서 동작 가능한 위젯을 수집한다.
상기 네이티브 어플리케이션은 다른 외부 서버없이 모바일 단말 안에서 모든 동작이 이루어진다.
또한, 상기 액티비티(Activity)는 사용자에게 UI가 있는 화면을 제공하는 어플리케이션 컴포넌트로서, 예를 들면, 폰 다이어리 화면, 카메라 촬영 화면, 이메일 쓰기 화면, 지도 보기 화면 등과 같이 사용자들과 상호작용을 할 수 있는 화면을 제공한다.
즉, 상기 네이티브 어플리케이션은 여러개의 액티비티로 이루어질 수 있고, 일반적으로 네이티브 어플리케이션은 하나의 메인 액티비티를 갖고 그 액티비티는 다른 액티비티를 실행할 수도 있다.
상기 네이티브 어플리케이션은 레이아웃(Layouts)을 쉽게 구성할 수 있도록 미리 만들어진 뷰(View)들을 포함하고, 'Button', 'EditText', 'CheckBox', 'ImageView', 'ToolBar', 'SearchView' 등과 같이 사용자와 상호작용할 수 있는 동작 가능한 위젯(Widget)을 포함하여 구성된다.
상기 레이아웃은 LinearLayout, GridView, RelativeLayout 등과 같이 자식뷰들을 갖는 뷰로서 ViewGroup 클래스를 상속받아 만들어지고, View클래스나 ViewGroup클래스, 또는 위젯이나 레이아웃 등을 상속받아 그것의 서브클래스를 만들어서 사용할 수도 있도록 구성되어 결과적으로 액티비티는 XML 트리 구조로 이루어진다.
또한, 상기 위젯 수집부(110)는 수집된 위젯에 액티비티와 XPATH를 조합하여 생성한 고유 아이디를 설정한다.
즉, 고유한 아이디를 할당함으로써, 위치와 속성에 관계없이 중복 여부를 검색하거나 위젯을 쉽게 비교할 수 있도록 한다.
또한, 상기 네이티브 어플리케이션은 안드로이드 기반 OS일 수도 있고 iOS 기반의 OS에서 동작할 수 있다.
또한, 본 실시 예에서는 설명의 편의를 위해 네이티브 어플리케이션을 실시 예로 설명하지만, 이에 한정되는 것은 아니고, 웹 어플리케이션(웹 앱) 및 하이브리드 어플리케이션(하이브리드 앱)을 포함할 수 있다.
상기 위젯 분류부(120)는 수집된 위젯을 분석하여 '주석'과 같이 코드에 영향을 주지 않는 비활성화 상태 또는 위치나 크기가 없는 비가용(Unavailable) 요소와, 활성화 상태이고 위치나 크기도 있지만 표시 영역 밖에 위치된 히든(Hidden) 요소와, 활성화 상태이고 표시 영역 내에 위치한 가시적(Visible) 요소로 분류하고, 분류 결과를 반영하여 커버리지 한다.
상기 분류를 통해 구별된 비가용 요소는 테스트 대상이 아니기 때문에 테스트 커버리지에 반영되지 않도록 한다.
상기 테스트 실행부(130)는 분류된 가시적 요소에 대하여 테스트 동작을 할당하고, 자동화 프레임 워크를 사용하여 상기 할당된 테스트 동작과 테스트 동작에 따른 실제 경로를 기록하는 구성으로서, 테스트 동작 실행부(131)와, 테스트 경로 생성부(132)를 포함하여 구성될 수 있다.
상기 테스트 동작 실행부(131)는 위젯 분류부(120)에서 분류된 요소 중에서 가시적 요소에 대하여 테스트 동작, 예를 들어 키보드 입력, 클릭 또는 사용자 입력에 따른 동작을 저장한 자동화 프레임 워크 등의 스크립트가 포함된 테스트 동작을 할당한다.
상기 테스트 경로 생성부(132)는 자동화 프레임 워크(예를 들면, Appium)를 사용하여 테스트 동작 실행부(131)에서 할당된 테스트 동작과, 상기 테스트 동작에 따른 실제 경로를 기록한다.
상기 시각화 생성부(140)는 기록된 테스트 동작 및 테스트 동작에 따른 실제 경로를 시각화한 그래프를 생성하는 구성으로서, 상기 시각화한 그래프는 동작 가능한 위젯과, 상기 위젯에서 수행되는 동작인 에지(Edge)에 기반하여 시각화한다.
즉, 상기 시각화 생성부(140)는 위젯 수집부(110)에서 수집된 위젯들과, 테스트 실행부(130)에서 설정된 개별 위젯의 테스트 동작 및 실제 처리 경로의 기록에 기반하여 각 위젯과 에지를 도3과 같이 시각화한 그래프를 생성하여 표시되도록 한다.
도3을 참조하면, 테스트 대상 네이티브 어플리케이션은 메인 액티비티(S)에서 동작 가능한 위젯 중에서 가시적 요소로 분류된 위젯들, 예를 들어, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'로 분류된 위젯과, 해당 위젯에서의 테스트 동작을 실제 처리 경로의 기록에 기반하여 그래프로 시각화되도록 한다.
또한, 도4를 참조하면, 테스트 대상 네이티브 어플리케이션이 메인 액티비티(S)와 추가 액티비티(S1)로 이루어진 경우, 메인 액티비티(S)에서 동작 가능한 위젯 중에서 가시적 요소로 분류된 위젯들, 예를 들어, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'로 분류된 위젯과, 해당 위젯에서의 테스트 동작 및 실제 처리 경로와 함께, 추가 액티비티(S1)에서 동작 가능한 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'로 분류된 위젯과, 해당 위젯에서의 테스트 동작 및 실제 처리 경로가 그래프로 시각화되도록 구성할 수도 있다.
상기 테스트케이스 생성부(150)는 시각화 생성부(140)에서 생성된 그래프에 기반한 위젯과 실제 경로로부터 테스트 스크립트를 추출하여 출력한다.
또한, 상기 테스트케이스 생성부(150)는 자연어를 포함한 형식으로 변환한 테스트케이스를 생성하여 출력할 수도 있다.
다음은 본 발명의 일 실시 예에 따른 네이티브 어플리케이션의 테스트케이스 생성 방법을 설명한다.
도5는 본 발명의 일 실시 예에 따른 네이티브 어플리케이션의 테스트케이스 생성 방법을 나타낸 흐름도이다.
도1, 및 도5를 참조하면, 테스트케이스 생성 장치(100)가 테스트 대상 네이티브 어플리케이션(Native Application)을 호출하여 액티비티(Activity)에 포함된 동작 가능한 위젯(Widget)을 수집(S100)한다.
상기 액티비티는 사용자에게 UI가 있는 화면을 제공하는 어플리케이션 컴포넌트로서, 예를 들면, 폰 다이어리 화면, 카메라 촬영 화면, 이메일 쓰기 화면, 지도 보기 화면 등과 같이 사용자들과 상호작용을 할 수 있는 화면을 제공한다.
또한 상기 네이티브 어플리케이션은 여러개의 액티비티로 이루어질 수 있고, 레이아웃(Layouts)을 쉽게 구성할 수 있도록 미리 만들어진 'Button', 'EditText', 'CheckBox', 'ImageView', 'ToolBar', 'SearchView' 등의 사용자와 상호작용할 수 있는 동작 가능한 위젯(Widget)을 포함하여 구성된다.
또한, 상기 S100 단계는 수집된 위젯에 액티비티와 XPATH를 조합하여 생성한 고유 아이디가 설정될 수 있고, 고유한 아이디를 할당함으로써 위치와 속성에 관계없이 중복 여부를 검색하거나 위젯을 쉽게 비교할 수 있도록 한다.
계속해서, 상기 테스트케이스 생성 장치(100)는 상기 S100 단계에서 수집된 위젯을 비활성화 상태 또는 위치나 크기가 없는 비가용(Unavailable) 요소, 활성화 상태이고 위치나 크기도 있지만 표시 영역 밖에 위치된 히든(Hidden) 요소, 활성화 상태이고 표시 영역 내에 위치한 가시적(Visible) 요소로 분류(S200)하여 테스트 커버리지에 상기 분류된 비가용 요소가 테스트 대상으로 포함되지 않도록 한다.
상기 S200 단계에서의 분류가 완료되면, 상기 테스트케이스 생성 장치(100)는 분류된 요소 중에서 가시적 요소에 대하여 키보드 입력 및 클릭을 포함한 테스트 동작을 수행(S300)한다.
또한, 상기 테스트케이스 생성 장치(100)는 자동화 프레임 워크(예를 들어, Appium)를 사용하여 상기 테스트 동작 및 경로를 기록(S400)한다.
계속해서, 상기 테스트케이스 생성 장치(100)는 상기 S400 단계에서 기록된 테스트 동작 및 경로를 동작 가능한 위젯과, 상기 위젯에서 수행되는 동작인 에지(Edge)에 기반하여 시각화한 그래프를 생성(S500)한다.
상기 S500 단계를 수행한 다음, 테스트케이스 생성 장치(100)는 S500 단계의 그래프에 기반한 위젯과, 해당 위젯에서 테스트 동작을 수행하기 위한 실제 경로를 이용하여 테스트스크립트를 추출함으로써, 테스트케이스를 생성(S600)한다.
또한, 상기 테스트케이스 생성 장치(100)는 추출된 테스트스크립트로부터 위젯과, 해당 위젯의 이용 가능한 속성에 따라 생성된 실제 경로를 미리 설정된 구문을 사용하여 동작 및 처리 방법을 기술한 형식으로 구성하거나 또는 자연 언어를 포함한 형식으로 구성하여 제공할 수도 있다.
한편, 상기 테스트케이스 생성 장치(100)는 상기 S600 단계의 가시적 요소에 대한 위젯 테스트케이스 생성이 완료되면, 히든 요소로 분류된 위젯에 대하여 테스트를 수행할 수도 있다.
즉, 상기 테스트케이스 생성 장치(100)는 가시적 요소로 분류된 위젯의 테스트 동작 수행 결과를 출력하면, 히든 요소로 분류된 위젯에 대한 테스트 동작을 수행할 수 있다.
이때, 상기 테스트케이스 생성 장치(100)는 히든 요소로 분류된 위젯에 대하여 상기 S300 단계 내지 S600 단계의 동작을 재실행함으로써, 테스트 동작 및 경로를 기록하여 시각화한 그래프 생성과, 상기 그래프에 기반하여 히든 요소로 분류된 위젯의 테스트스크립트 및 자연 언어를 포함한 테스트케이스를 생성하여 출력할 수 있다.
따라서, 네이티브 어플리케이션에서의 요소 수집과 각 요소에 따른 동작 패턴을 기반으로 요소들을 구분하고, 사용자의 동작에 따른 경로를 생성하여 테스트케이스를 자동으로 생성할 수 있다.
또한, 어플리케이션의 실제 경로를 기록하여 그래프에 의한 시각화를 통해 쉽게 확인할 수 있고, 숙련되지 않은 검증자(tester)라도 테스트를 쉽게 처리할 수 있게 된다.
상기와 같이, 본 발명의 바람직한 실시 예를 참조하여 설명하였지만 해당 기술 분야의 숙련된 당업자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
또한, 본 발명의 특허청구범위에 기재된 도면번호는 설명의 명료성과 편의를 위해 기재한 것일 뿐 이에 한정되는 것은 아니며, 실시예를 설명하는 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다.
또한, 상술된 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있으므로, 이러한 용어들에 대한 해석은 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
또한, 명시적으로 도시되거나 설명되지 아니하였다 하여도 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기재사항으로부터 본 발명에 의한 기술적 사상을 포함하는 다양한 형태의 변형을 할 수 있음은 자명하며, 이는 여전히 본 발명의 권리범위에 속한다.
또한, 첨부하는 도면을 참조하여 설명된 상기의 실시예들은 본 발명을 설명하기 위한 목적으로 기술된 것이며 본 발명의 권리범위는 이러한 실시예에 국한되지 아니한다.
100 : 테스트케이스 생성 장치
110 : 위젯 수집부
120 : 위젯 분류부
130 : 테스트 실행부
131 : 테스트 동작 실행부
132 : 테스트 경로 생성부
140 : 시각화 생성부
150 : 테스트케이스 생성부

Claims (8)

  1. 테스트케이스 생성 장치(100)로서,
    테스트 대상 네이티브 어플리케이션(Native Application)을 호출하여 액티비티(Activity)에 포함된 동작 가능한 위젯(Widget)을 수집하고,
    상기 수집된 위젯을 비활성화 상태 또는 위치나 크기가 없는 비가용(Unavailable) 요소, 활성화 상태이고 위치나 크기도 있지만 표시 영역 밖에 위치된 히든(Hidden) 요소, 활성화 상태이고 표시 영역 내에 위치한 가시적(Visible) 요소로 분류하되,
    상기 분류된 가시적 요소에 대하여 미리 설정된 테스트 동작을 수행하고,
    자동화 프레임 워크를 사용하여 상기 테스트 동작 및 경로를 기록하며,
    상기 기록된 테스트 동작 및 경로를 시각화한 그래프를 생성하고,
    상기 그래프에 기반한 경로로부터 테스트 스크립트 및 자연어를 포함한 테스트케이스 중 적어도 하나를 생성하는 것을 특징으로 하는 네이티브 어플리케이션의 테스트케이스 생성 장치.
  2. 제 1 항에 있어서,
    상기 수집된 위젯은 액티비티와 XPATH를 조합하여 생성한 고유 아이디가 설정되는 것을 특징으로 하는 네이티브 어플리케이션의 테스트케이스 생성 장치.
  3. 제 1 항에 있어서,
    상기 테스트 동작은 키보드 입력, 클릭 중 적어도 하나인 것을 특징으로 하는 네이티브 어플리케이션의 테스트케이스 생성 장치.
  4. 제 1 항에 있어서,
    상기 테스트케이스 생성 장치(100)는 네이티브 어플리케이션을 호출하여 XML 트리 구조로 이루어진 액티비티에서 동작 가능한 위젯을 수집하고, 상기 수집된 위젯에 액티비티와 XPATH를 조합하여 생성한 고유 아이디를 설정하는 위젯 수집부(110);
    상기 수집된 위젯을 비활성화 상태 또는 위치나 크기가 없는 비가용(Unavailable) 요소, 활성화 상태이고 위치나 크기도 있지만 표시 영역 밖에 위치된 히든(Hidden) 요소, 활성화 상태이고 표시 영역 내에 위치한 가시적(Visible) 요소로 분류하는 위젯 분류부(120);
    상기 분류된 가시적 요소에 대하여 테스트 동작을 할당하고, 자동화 프레임 워크를 사용하여 상기 할당된 테스트 동작과 테스트 동작에 따른 실제 경로를 기록하는 테스트 실행부(130);
    상기 기록된 테스트 동작 및 테스트 동작에 따른 실제 경로를 시각화한 그래프를 생성하는 시각화 생성부(140); 및
    상기 그래프에 기반한 실제 경로로부터 테스트 스크립트 및 자연어를 포함한 테스트케이스를 생성하는 테스트케이스 생성부(150);를 포함하는 것을 특징으로 하는 네이티브 어플리케이션의 테스트케이스 생성 장치.
  5. 제 1 항에 있어서,
    상기 테스트 실행부(130)는 분류된 가시적 요소에 대하여 키보드 입력 및 클릭을 포함한 테스트 동작을 할당하는 테스트 동작 실행부(131); 및
    자동화 프레임 워크를 사용하여 상기 할당된 테스트 동작과 테스트 동작에 따른 실제 경로를 기록하는 테스트 경로 생성부(132);를 포함하는 것을 특징으로 하는 네이티브 어플리케이션의 테스트케이스 생성 장치.
  6. a) 테스트케이스 생성 장치(100)가 테스트 대상 네이티브 어플리케이션(Native Application)을 호출하여 액티비티(Activity)에 포함된 동작 가능한 위젯(Widget)을 수집하는 단계;
    b) 상기 테스트케이스 생성 장치(100)가 수집된 위젯을 비활성화 상태 또는 위치나 크기가 없는 비가용(Unavailable) 요소, 활성화 상태이고 위치나 크기도 있지만 표시 영역 밖에 위치된 히든(Hidden) 요소, 활성화 상태이고 표시 영역 내에 위치한 가시적(Visible) 요소로 분류하는 단계;
    c) 상기 테스트케이스 생성 장치(100)가 분류된 가시적 요소에 대하여 키보드 입력 및 클릭을 포함한 테스트 동작을 수행하고, 자동화 프레임 워크를 사용하여 상기 테스트 동작 및 경로를 기록하는 단계;
    d) 상기 테스트케이스 생성 장치(100)가 기록된 테스트 동작 및 경로를 시각화한 그래프를 생성하는 단계; 및
    e) 상기 테스트케이스 생성 장치(100)가 그래프에 기반한 경로로부터 테스트 스크립트 및 자연어를 포함한 테스트케이스 중 적어도 하나를 생성하는 단계;를 포함하는 네이티브 어플리케이션의 테스트케이스 생성 방법.
  7. 제 6 항에 있어서,
    상기 a)단계는 수집된 위젯에 액티비티와 XPATH를 조합하여 생성한 고유 아이디를 설정하는 것을 특징으로 하는 네이티브 어플리케이션의 테스트케이스 생성 방법.
  8. 제 6 항에 있어서,
    상기 e) 단계는 상기 테스트케이스 생성 장치(100)가 가시적 요소에 대한 테스트 동작 수행 결과를 출력하면, 분류된 요소 중에서 히든 요소에 대한 테스트 동작을 수행하고,
    상기 히든 요소에 대한 테스트 동작 및 경로를 기록하여 시각화한 그래프를 생성하며,
    상기 그래프에 기반하여 히든 요소의 테스트스크립트 및 자연어를 포함한 테스트케이스를 생성하는 단계;를 더 포함하는 것을 특징으로 하는 네이티브 어플리케이션의 테스트케이스 생성 방법.
KR1020200124493A 2020-09-25 2020-09-25 네이티브 어플리케이션의 테스트케이스 생성 장치 및 방법 KR20220041376A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200124493A KR20220041376A (ko) 2020-09-25 2020-09-25 네이티브 어플리케이션의 테스트케이스 생성 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200124493A KR20220041376A (ko) 2020-09-25 2020-09-25 네이티브 어플리케이션의 테스트케이스 생성 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20220041376A true KR20220041376A (ko) 2022-04-01

Family

ID=81183338

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200124493A KR20220041376A (ko) 2020-09-25 2020-09-25 네이티브 어플리케이션의 테스트케이스 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20220041376A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102644170B1 (ko) * 2024-01-19 2024-03-06 주식회사 넷스루 화면 구성 요소에 대한 선택과 좌표 정보 수집을 지원하는 방법
KR102651294B1 (ko) * 2023-12-15 2024-03-26 주식회사 넷스루 화면 구성 요소에 대한 정보 수집을 지원하는 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102116395B1 (ko) 2018-03-05 2020-05-29 어니컴 주식회사 애플리케이션 테스트 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102116395B1 (ko) 2018-03-05 2020-05-29 어니컴 주식회사 애플리케이션 테스트 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102651294B1 (ko) * 2023-12-15 2024-03-26 주식회사 넷스루 화면 구성 요소에 대한 정보 수집을 지원하는 방법
KR102644170B1 (ko) * 2024-01-19 2024-03-06 주식회사 넷스루 화면 구성 요소에 대한 선택과 좌표 정보 수집을 지원하는 방법

Similar Documents

Publication Publication Date Title
Kieslich et al. Mousetrap: An integrated, open-source mouse-tracking package
US8392886B2 (en) System, program product, and methods to enable visual recording and editing of test automation scenarios for web application
US20190188119A1 (en) System and a method for providing automated performance detection of application programming interfaces
US8595702B2 (en) Simultaneously displaying multiple call stacks in an interactive debugger
Johnson et al. Why don't software developers use static analysis tools to find bugs?
US9182981B2 (en) Systems and methods for implementing pixel-based reverse engineering of interface structure
US8769553B2 (en) Deploy anywhere framework for heterogeneous mobile application development
US20140359573A1 (en) Troubleshooting visuals and transient expressions in executing applications
CN105740144B (zh) 一种Android移动终端的自动化测试方法及系统
US20200301679A1 (en) System for creating mobile and web applications from a graphical workflow specification
KR20220041376A (ko) 네이티브 어플리케이션의 테스트케이스 생성 장치 및 방법
Almeida et al. Testing tools for Android context-aware applications: a systematic mapping
US20200327043A1 (en) System and a method for automated script generation for application testing
US11647250B2 (en) Methods and systems for remote streaming of a user-customized user interface
CN111033465B (zh) 终端装置、ui扩展方法和记录介质
EP3113016A1 (en) Tracing dependencies between development artifacts in a development project
CN113760266B (zh) 一种功能模块文件的创建方法、创建装置和电子设备
CN114185874A (zh) 一种基于大数据的建模方法、装置、开发框架及设备
CN111104123A (zh) 应用程序的自动部署
US20230266970A1 (en) Systems and methods for modernizing legacy applications
US11379194B2 (en) Systems and methods for automatic code generation
Salgado Towards a Live Refactoring Recommender Based on Code Smells and Quality Metrics
JP4925514B2 (ja) 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体
KR102422972B1 (ko) 프로그램 유지 보수 방법 및 이를 지원하는 컴퓨팅 장치
Silva et al. Core Values for a Mixed Reality Software Development Kit: A Qualitative Study Among Main SDK Tools for XR Development

Legal Events

Date Code Title Description
E601 Decision to refuse application