KR102105753B1 - 모바일 어플리케이션 환경설정을 시험하기 위한 시험 항목 자동 생성 방법 및 시스템 - Google Patents

모바일 어플리케이션 환경설정을 시험하기 위한 시험 항목 자동 생성 방법 및 시스템 Download PDF

Info

Publication number
KR102105753B1
KR102105753B1 KR1020180035197A KR20180035197A KR102105753B1 KR 102105753 B1 KR102105753 B1 KR 102105753B1 KR 1020180035197 A KR1020180035197 A KR 1020180035197A KR 20180035197 A KR20180035197 A KR 20180035197A KR 102105753 B1 KR102105753 B1 KR 102105753B1
Authority
KR
South Korea
Prior art keywords
event
app
screen
package file
environment setting
Prior art date
Application number
KR1020180035197A
Other languages
English (en)
Other versions
KR20190113050A (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 한국과학기술원
Priority to KR1020180035197A priority Critical patent/KR102105753B1/ko
Publication of KR20190113050A publication Critical patent/KR20190113050A/ko
Application granted granted Critical
Publication of KR102105753B1 publication Critical patent/KR102105753B1/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/3668Software testing
    • G06F11/3696Methods or tools to render software testable

Abstract

환경설정 시험 항목 생성 시스템 및 방법이 개시된다. 일 실시예에 따른 환경설정 시험 항목 생성 시스템에서 수행되는 환경설정 시험 항목 생성 방법은, 앱에 대한 앱 패키지 파일이 입력됨에 따라 상기 앱 패키지 파일을 분석하는 단계; 및 상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 시험 스크립트를 생성하는 단계를 포함할 수 있다.

Description

모바일 어플리케이션 환경설정을 시험하기 위한 시험 항목 자동 생성 방법 및 시스템{METHOD AND SYSTEM FOR AUTOMATIC CONFIGURATION TEST CASE GENERATION OF MOBILE APPLICATION}
아래의 설명은 앱을 시험하는 기법에 관한 것으로, 보다 상세하게는 분석하고자 하는 앱의 설치 파일을 정적으로 분석하여, 앱의 환경설정 기능을 시험하기 위해 필요한 이벤트를 자동으로 실행할 수 있도록 스크립트를 생성하는 방법 및 시스템에 관한 것이다.
스마트 폰에서 동작하는 모바일 어플리케이션(이하, 앱)의 사용이 증가하면서, 다양한 응용 영역에서 앱의 경쟁이 치열하다. 그러나, 앱은 대부분 한정된 예산과 시간에 개발해야 하기 때문에 개발 후 충분히 검증(Validate)하지 못하고 있다. 이 때문에 앱의 기능의 안정성을 충분히 확보하지 못한 상태로 사용자에게 전달되고, 사전에 검출하지 못한 오작동으로 인해 앱에 대한 평가가 악화되는 문제가 발생한다.
앱을 검증하는 방법에는 크게 직접 사용자가 앱을 실행시켜 하는 수동 시험 방법과 녹화, 스크립트나 이벤트 자동 생성 메커니즘에 의해 기계가 앱을 실행시키는 자동 시험 방법이 있다.
수동 시험 방법은 현재 많이 쓰이고 있는 시험 방법으로, 자동 시험 방법이 쉽게 접근하지 못하는 기능을 쉽게 시험할 수 있지만 사람이 앱을 직접 실행시키는데 노력이 들고, 실수나 간과의 문제점이 있다.
자동 시험 방법에서 녹화, 스크립트 방식의 경우, 앱을 실행시키는 과정은 사람의 노력이 들지 않지만, 녹화 내용이나 스크립트를 생성하고 유지보수 하는데 많은 노력이 들어간다. 무작위 이벤트 발생이나 GUI Crawling 등의 이벤트 자동 생성 메커니즘에 의한 자동 시험 방법을 사용하면 스크립트나 이벤트를 자동으로 생성하여 녹화나 스크립트 생성에 드는 노력은 절약할 수 있지만, 이벤트 자동 생성 메커니즘이 인식하지 못하는 앱의 기능은 시험하지 못하는 문제가 있다.
공개특허공보 제10-2015-0038983호는 객체 추출 기반의 어플리케이션 검증 방법 및 그 방법에 관한 것으로, 앱을 직접 기기에 실행시켜 동적으로 UI 객체를 획득한 후, UI 객체에 실행할 수 있는 이벤트를 자동 생성한다. 상기 방법은 앱의 일반적인 행위를 검증하고, 이벤트 생성을 포함하는 전 과정이 자동화 가능하다는 특징이 있으나, UI 객체와 이벤트만을 탐색 기준으로 해서는 환경설정 기능을 체계적으로 시험할 수 없고, 매 실행 시 생성될 이벤트를 동적으로 결정하기 때문에 생성된 이벤트의 경로가 불필요하게 길어진다는 단점이 있다.
공개특허공보 제10-2013-0052246호는 스마트폰 앱 검증 시스템 및 그 방법에 관한 것으로, 앱 설치 파일에서 실행 시나리오를 결정하고, 상기 시나리오를 대상 앱에 실행시켜 앱의 악성 행위를 탐지한다. 하지만, 상기 방법은 악성 행위를 모니터링하기 위해 실행 후 앱의 악성 여부만 저장하기 때문에 개발 중인 앱이 정상 작동하는지 확인하고 디버깅하기 위한 용도로는 적합하지 않다.
이벤트 생성 메커니즘이 자동으로 시험하지 못하는 앱의 기능 중 하나로 대부분의 앱이 가지고 있는 기능에는 '환경설정'이 있다. 이 기능은 사용자가 앱의 기능 중 일부의 행위를 사용자의 선호에 따라 조정할 수 있도록 한다. 기존 자동 시험 방법으로 이 기능이 정상 작동하는지 시험하려면 수동으로 녹화하거나 스크립트를 작성해야 한다.
앱에 대한 앱 패키지 파일이 입력됨에 따라 앱 패키지 파일을 분석하고, 앱 패키지 파일을 분석한 분석 결과에 기초하여 시험 스크립트를 생성하는 환경설정 시험 항목 생성 시스템 및 방법을 제공할 수 있다.
환경설정 시험 항목 생성 시스템에서 수행되는 환경설정 시험 항목 생성 방법은, 앱에 대한 앱 패키지 파일이 입력됨에 따라 상기 앱 패키지 파일을 분석하는 단계; 및 상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 시험 스크립트를 생성하는 단계를 포함할 수 있다.
상기 앱에 대한 앱 패키지 파일이 입력됨에 따라 상기 앱 패키지 파일을 분석하는 단계는, 상기 앱 패키지 파일에 대한 앱 패키지 파일 형식을 준수함에 따라 상기 앱 패키지 파일을 코드, 메타데이터 또는 리소스로 분해하고, 상기 메타데이터로부터 앱의 시작 화면 및 화면 목록을 추출하는 단계를 포함할 수 있다.
상기 앱에 대한 앱 패키지 파일이 입력됨에 따라 상기 앱 패키지 파일을 분석하는 단계는, 상기 앱 패키지 파일의 코드 또는 리소스로부터 상기 화면 목록에 포함된 각각의 화면에 대응하는 코드를 식별하고, 상기 식별된 각각의 화면에 대응하는 코드로부터 상기 각각의 화면에 정의된 이벤트를 추출하고, 상기 추출된 이벤트 중 앱 화면을 전환하는 이벤트를 추출하는 단계를 포함할 수 있다.
상기 앱에 대한 앱 패키지 파일이 입력됨에 따라 상기 앱 패키지 파일을 분석하는 단계는, 상기 앱 패키지 파일의 코드 또는 리소스에 정의된 환경설정을 추출하고, 상기 앱 패키지 파일의 코드에서 상기 추출된 환경설정에 대한 환경설정 값과 관련된 이벤트를 추출하는 단계를 포함할 수 있다.
상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 시험 스크립트를 생성하는 단계는, 상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 화면 또는 화면 상태를 정점(Vertex), 이벤트를 간선(Edge)인 GUI 흐름 그래프를 생성하는 단계를 포함하고, 상기 GUI 흐름 그래프에서 기 저장된 시작 화면과 각 화면별 정의된 이벤트 정보를 사용하여 각 화면과 일반 이벤트, 화면 전환 이벤트를 생성할 수 있다.
상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 시험 스크립트를 생성하는 단계는, 상기 시험 스크립트에서 사용하기 위한 환경설정 값과, 상기 환경설정 값으로 환경설정을 쓰는 이벤트 및 상기 환경설정 값을 읽는 이벤트를 포함하는 목표 이벤트를 선정하는 단계를 포함할 수 있다.
상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 시험 스크립트를 생성하는 단계는, 상기 GUI 흐름 그래프를 통하여 상기 쓰는 이벤트로 도달하기 위한 이벤트의 순서 및 상기 읽는 이벤트로 도달하는 이벤트의 순서를 결정하고, 상기 결정된 이벤트의 순서에 대응하는 환경설정 시험 스크립트를 생성하는 단계를 포함할 수 있다.
환경설정 시험 항목 생성 시스템은, 앱에 대한 앱 패키지 파일이 입력됨에 따라 상기 앱 패키지 파일을 분석하는 앱 패키지 파일 분석부; 상기 앱 패키지 파일을 분석한 분석 결과를 데이터베이스에 저장하는 앱 패키지 파일 분석 결과 저장부; 및 상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 시험 스크립트를 생성하는 시험 스크립트 생성부를 포함할 수 있다.
상기 앱 패키지 파일 분석부는, 상기 앱 패키지 파일에 대한 앱 패키지 파일 형식을 준수함에 따라 상기 앱 패키지 파일을 코드, 메타데이터 또는 리소스로 분해하고, 상기 메타데이터로부터 앱의 시작 화면 및 화면 목록을 추출할 수 있다.
상기 앱 패키지 파일 분석부는, 상기 앱 패키지 파일의 코드 또는 리소스로부터 상기 화면 목록에 포함된 각각의 화면에 대응하는 코드를 식별하고, 상기 식별된 각각의 화면에 대응하는 코드로부터 상기 각각의 화면에 정의된 이벤트를 추출하고, 상기 추출된 이벤트 중 앱 화면을 전환하는 이벤트를 추출할 수 있다.
상기 앱 패키지 파일 분석부는, 상기 앱 패키지 파일의 코드 또는 리소스에 정의된 환경설정을 추출하고, 상기 앱 패키지 파일의 코드에서 상기 추출된 환경설정에 대한 환경설정 값과 관련된 이벤트를 추출할 수 있다.
상기 시험 스크립트 생성부는, 상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 화면 또는 화면 상태를 정점(Vertex), 이벤트를 간선(Edge)인 GUI 흐름 그래프를 생성하는 것을 포함하고, 상기 GUI 흐름 그래프에서 상기 데이터베이스에 저장된 시작 화면과 각 화면별 정의된 이벤트 정보를 사용하여 각 화면과 일반 이벤트, 화면 전환 이벤트를 생성할 수 있다.
상기 시험 스크립트 생성부는, 상기 시험 스크립트에서 사용하기 위한 환경설정 값과, 상기 환경설정 값으로 환경설정을 쓰는 이벤트 및 상기 환경설정 값을 읽는 이벤트를 포함하는 목표 이벤트를 선정할 수 있다.
상기 시험 스크립트 생성부는, 상기 GUI 흐름 그래프를 통하여 상기 쓰는 이벤트로 도달하기 위한 이벤트의 순서 및 상기 읽는 이벤트로 도달하는 이벤트의 순서를 결정하고, 상기 결정된 이벤트의 순서에 대응하는 환경설정 시험 스크립트를 생성할 수 있다.
상기 앱 패키지 파일 분석 결과 저장부는, 상기 앱의 화면 흐름을 추출하고, 특정 이벤트를 실행하기 위한 화면으로 도달하는 이벤트의 순서를 계산하기 위하여 화면을 전화하는 이벤트를 저장하고, 환경설정 시험 스크립트가 실행하고자 하는 이벤트를 식별하기 위해 환경설정 값과 관련된 이벤트, API 호출로 환경설정 값을 접근하는 방식을 저장할 수 있다.
일 실시예에 따른 환경설정 시험 항목 생성 시스템은 환경설정 시험 스크립트를 실행함에 따라 종래의 자동 시험 방법을 통하여 자동으로 시험하기 어려운 앱의 환경설정 기능을 빠짐없이 자동으로 시험할 수 있다. 이에 따라 앱 개발자는 환경설정 기능으로 인하여 발생하는 앱의 오류를 앱 출시 전에 개발자가 직접 앱을 실행시키지 않고 발견할 수 있기 때문에, 출시할 앱의 안정성을 보다 적은 비용으로 향상시킬 수 있다.
도 1은 일 실시예에 따른 환경설정 시험 항목 생성 시스템의 구성을 설명하기 위한 블록도이다.
도 2는 일 실시예에 따른 환경설정 시험 항목 생성 시스템의 환경설정 시험 항목 생성 방법을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따른 환경설정 시험 항목 생성 시스템에서 환경설정 값과 관련된 이벤트의 예를 나타낸 도면이다.
도 4는 일 실시예에 따른 환경설정 시험 항목 생성 시스템에서 앱 패키지 파일을 분석하는 방법을 설명하기 위한 흐름도이다.
도 5는 일 실시예에 따른 환경설정 시험 항목 생성 시스템에서 시험 스크립트를 생성하는 방법을 설명하기 위한 흐름도이다.
도 6은 일 실시예에 따른 환경설정 시험 항목 생성 시스템에서 앱 패키지 파일 분석 결과에 기초하여 GUI 흐름 그래프를 생성하는 것을 나타낸 도면이다.
도 7은 일 실시예에 따른 환경설정 시험 항목 생성 시스템에서 환경설정에 대한 관련 이벤트, 스크립트로 생성해야 하는 환경설정 값 및 목표 이벤트의 조합을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 환경설정 시험 항목 생성 시스템이 적용된 예를 나타낸 도면이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 일 실시예에 따른 환경설정 시험 항목 생성 시스템의 구성을 설명하기 위한 블록도이다.
환경설정 시험 항목 생성 시스템(100)은 앱 패키지 파일과 앱 플랫폼의 규칙을 활용하여, 대상 앱의 환경설정 기능을 자동으로 시험할 수 있도록 환경설정 시험 스크립트를 생성하기 위한 것으로, 앱 패키지 파일 분석부(110), 시험 스크립트 생성부(120) 및 앱 패키지 파일 분석 결과 저장부(130)를 포함할 수 있다.
앱 패키지 파일(101)은 환경설정 시험 항목 생성 시스템(100)에 입력으로 사용될 수 있으며, 실행되는 환경에서 사용하는 경우 앱을 설치하는데 사용할 수 있는 파일이다. 예를 들면, 앱 패키지 파일(101)은 안드로이드(Android) 플랫폼의 Android Package(apk)나 iOS 플랫폼의 iOS Application Archive(ipa)가 있다. 환경설정 시험 항목 생성 시스템(100)에 입력으로 사용되는 앱 패키지 파일(101) 이외에도 코드, 메타데이터, 리소스를 포함하는 파일 집합이 입력으로 사용될 수 있다.
앱 패키지 파일(101)에서 코드는 앱의 행위를 구현하는 구성 또는 논리를 표현할 수 있다. 이때, 코드는 화면의 구성 요소 정의와 이벤트 처리기 정의, API 호출을 포함할 수 있다. 또한, 코드는 이진 코드, Java Virtual Machine(JVM) 바이트코드, 소스 코드가 될 수 있다.
앱 패키지 파일(101)에서 메타데이터는 Extensible Markup Language(XML)과 같은 메타 언어를 사용하여 표현하며, 앱의 식별 정보(예를 들면, 앱의 이름이나 시작 화면 이름 등)를 포함할 수 있는 파일이다. 예를 들면, 메타데이터는 안드로이드 폴랫폼의 AndroidManifest.xml 파일이나 iOS 플랫폼의 info.plist 파일이 있다.
앱 패키지 파일(101)에서 리소스는 앱에서 사용하는 화면 구성 요소의 정의, 환경설정 정의, 텍스트, 서체, 영상이나 음향 자료 등을 포함할 수 있다.
앱 패키지 파일 분석부(110)는 앱 화면 및 이벤트 추출 모듈(111) 및 환경설정 값 접근 API 호출 추출 모듈(112)을 포함할 수 있다. 앱 화면 및 이벤트 추출 모듈(111)은 앱 패키지 파일(101)을 분해하고, 앱의 내부에 저장된 앱 화면과 앱 화면에 포함된 이벤트를 추출할 수 있다. 이때, 앱 화면은 앱에서 GUI(Graphical User Interface) 요소를 포함하고, 적어도 하나 이상의 이벤트에 반응할 수 있는 영상 또는 기능 단위를 의미한다. 이벤트는 클릭, 드래그 등의 사용자의 상호작용이나 전화, SMS, 네트워크 연결, 센서 신호 등 앱 플랫폼 OS에 의해서 발생할 수 있다. 이벤트가 발생하면 앱은 현재 화면에 대응하는 코드에 정의된 이벤트 처리기의 논리에 따라 현재 화면에 있는 GUI 요소의 상태를 변화시키거나 앱 화면을 전환할 수 있다.
환경설정 값 접근 API 호출 추출 모듈(112)은 플랫폼에 정의된 규칙을 사용하여 환경설정 값에 접근하는 API 호출, 환경설정과 관련된 이벤트를 추출할 수 있다. 이때, 앱 패키지 파일 분석부(110)에서 앱 패키지 파일을 분석함에 따른 분석 결과가 앱 패키지 파일 분석 결과 저장부(130)에 저장될 수 있다. 예를 들면, 환경설정 값 접근 API 호출 추출 모듈(112)은 환경설정 값에 접근하는 API와 환경설정과 관련된 이벤트를 추출하기 위해 코드 분석 프레임워크를 포함할 수 있다. 여기서, 환경설정 값에 접근하는 API는 직접적으로 환경설정 값에 접근하는 API 또는 API를 간접적으로 호출하는 또 다른 API가 될 수 있다.
도 3을 참고하면, 환경설정 값과 관련된 이벤트의 예를 나타낸 것으로, 이벤트 처리기 코드에서 직접 환경설정 값을 쓰는 API를 호출하는 경우와 이벤트 처리기 코드에서 환경설정 값을 읽는 API를 통하여 변수를 읽는 경우를 나타낸 것이다. 환경설정 값과 관련된 이벤트는 해당 이벤트에 대응하는 이벤트 처리기 코드에서 직접 환경설정 값에 접근하는 API를 직접 호출하는 경우 또는 API를 사용하여 환경설정 값을 읽어 저장하거나 수정한 변수를 읽는 경우를 포함할 수 있다.
환경설정 값에 접근하는 API를 직접 호출하는 경우, 환경설정 값과 관련된 이벤트를 환경설정 값을 쓰는 이벤트로 식별할 수 있다. 예를 들면, 도 3의 좌측 도면에서, 이벤트 처리기 Button1_OnClick() 내에서 WriteConfiguration API를 호출하여 환경설정 값을 썼으므로, Button1의 클릭 이벤트를 환경설정 값을 쓰는 이벤트로 식별할 수 있다.
API를 사용하여 환경설정 값을 읽어 저장하거나 수정한 변수를 읽는 경우, 환경설정 값과 관련된 이벤트를 환경설정 값을 읽는 이벤트로 식별할 수 있다. 예를 들면, 도 3의 우측 도면에서 config2_value 변수는 ReadConfiguration API 호출로 정의되었고, 이벤트 처리기는 Button2_OnClick()에서 config2_value 변수를 if 구문에서 사용하기 때문에 Button2의 클릭 이벤트는 환경설정 값을 읽는 이벤트로 식별할 수 있다.
시험 스크립트 생성부(120)는 환경설정 값 접근 조합 결정 모듈(121) 및 이벤트 순서 결정 모듈(122)을 포함할 수 있다. 환경설정 값 접근 조합 결정 모듈(121)은 앱 패키지 파일 분석 결과를 기반으로 식별한 모든 환경설정 값의 접근 조합을 생성하고, 아직 시험 스크립트가 생성되지 않은 환경설정 값 접근 이벤트의 조합을 선택할 수 있다.
이벤트 순서 결정 모듈(122)은 앱 패키지 파일 분석 결과에 기반하여 시험 대상 앱의 화면 흐름을 나타내는 모델을 구성하고, 구성된 모델을 사용하여 환경설정 값 접근 이벤트의 조합을 실행하기 위해 필요한 이벤트의 순서를 계산할 수 있다. 이때, 앱의 화면 흐름은, 앱의 전반적인 행위를 파악하기 위한 것으로, 시작 화면으로부터 시작하여 이벤트로 인해 화면이 어떻게 달라지는지 표현한다. 앱의 화면 흐름은 그래프로, 각 정점(Vertex)은 화면 상태를, 각 간선(Edge)은 이벤트를 통해 나타낼 수 있다.
앱 패키지 파일 분석 결과 저장부(130)는 앱 화면-이벤트 연관 데이터베이스(131) 및 이벤트-앱 환경설정 연관 데이터베이스(132)를 포함할 수 있다. 앱 화면-이벤트 연관 데이터베이스(131)는 화면을 전환하는 이벤트를 저장하여, 앱의 화면 흐름을 추출하고, 특정 이벤트를 실행하기 위한 화면으로 도달하는 이벤트의 순서를 계산하기 위하여 사용할 수 있다. 앱 화면-이벤트 연관 데이터베이스(131)의 레코드는 <이전 화면 ID, 이벤트 ID, 다음 화면 ID>의 순서쌍을 포함할 수 있다.
이벤트-앱 환경설정 연관 데이터베이스(132)는 환경설정 값과 관련된 이벤트, API 호출로 환경설정 값을 접근하는 방식을 저장하여 환경설정 시험 스크립트가 실행하고자 하는 이벤트를 식별하기 위해 사용할 수 있다. 이벤트-앱 환경설정 연관 데이터베이스(132)의 레코드는 <이벤트 ID, 환경설정 ID, 환경설정 값 읽기/쓰기 여부, 허용 환경설정 값의 자료형, 쓰는 환경설정 값>의 순서쌍을 포함할 수 있다.
환경설정 시험 항목 생성 시스템(100)이 최종적으로 출력하는 환경설정 시험 스크립트(102)는 앱을 자동으로 시험하기 위한 스크립트의 일종으로 하나의 스크립트가 하나의 환경설정 기능 시험 항목을 나타낸다. 하나의 환경설정 기능 시험 항목은 환경설정 값을 쓰는 이벤트를 실행하기까지의 이벤트의 연속(Sequence)과 환경설정 값을 읽는 이벤트를 실행하기까지의 이벤트의 연속을 포함할 수 있다. 이때, 환경설정 기능 시험 항목은 한가지 환경설정에서 유효한 하나의 환경설정 값을 사용하여, 해당 환경설정 값을 사용하는 기능이 정상적으로 동작하는지 검사하는 것을 목표로 한다. 예를 들면, 팝업 기능을 포함하는 앱을 시험할 때, 환경설정 시험 스크립트는 팝업 환경설정 옵션을 온(On) 상태에서 실제 팝업이 나타나는지 검사할 수 있다. 환경설정 시험 스크립트(102)는 복수의 플랫폼을 지원하는 Appium이나 안드로이드 플랫폼의 Espresso 또는 Robotium, iOS 플랫폼의 XCTest 스크립트가 될 수 있다. 실시예에서 환경설정 시험 스크립트(102)는 앱 시험을 자동화할 수 있는 스크립트라면 특정 스크립트의 형식에 한정되지 않고 적용할 수 있다.
도 2는 일 실시예에 따른 환경설정 시험 항목 생성 시스템의 환경설정 시험 항목 생성 방법을 설명하기 위한 흐름도이다.
단계(210)에서 환경설정 시험 항목 생성 시스템은 앱 패키지 파일을 분석할 수 있다. 단계(220)에서 환경설정 시험 항목 생성 시스템은 앱 패키지 파일을 분석함에 따른 분석 결과를 데이터베이스에 저장할 수 있다(220). 단계(230)에서 환경설정 시험 항목 생성 시스템은 데이터베이스에 저장된 분석 결과에 기반하여 시험 스크립트를 생성할 수 있다. 이에 대한 각각의 단계에 대한 보다 상세한 설명을 도 4 및 도 5에서 설명하기로 한다. 이해의 편의를 돕기 위해 앱 패키지 파일 분석 결과와의 입출력 관계를 생략하고, 흐름도를 뒷받침하는 설명을 기술하기로 한다.
도 4를 참고하면, 앱 패키지 파일을 분석하는 방법을 설명하기 위한 흐름도이다. 도 4의 각각의 단계는 앱 패키지 파일을 정적으로 분석하여 환경설정 기능 시험 항목을 생성하는데 필요한 정보를 추출하기 위한 목적으로 수행될 수 있다. 이때, 앱 패키지 파일을 분석하는 방법에서 단계(410) 내지 단계(450)는 환경설정 시험 항목 생성 시스템의 앱 화면 및 이벤트 추출 모듈, 단계(460) 내지 단계(480)는 환경설정 시험 항목 생성 시스템의 환경설정 값 접근 API 호출 추출 모듈에서 처리될 수 있다.
단계(410)에서 앱 화면 및 이벤트 추출 모듈은 입력받은 앱 패키지 파일이 앱 패키지 파일 형식을 준수하는지 여부를 검사할 수 있다. 환경설정 시험 항목 생성 시스템에 앱 패키지 파일 형식의 준수 여부를 검사하기 위한 기준이 설정되어 있을 수 있다. 환경설정 시험 항목 생성 시스템은 기 설정된 기준에 기초하여 입력받은 앱 패키지 파일이 앱 패키지 파일 형식을 준수하는지 여부를 검사함에 따라 준수할 경우, 단계(420)을 수행할 수 있고, 준수하지 않을 경우, 프로세스를 종료할 수 있다. 이와 같이, 단계(410)에서 환경설정 시험 항목 생성 시스템은 앱 패키지 파일을 앱 분석에 필요한 부분들로 분해하여 분석을 수행할 수 있는지 여부를 검사할 수 있다.
단계(420)에서 앱 화면 및 이벤트 추출 모듈은 검사를 완료한 앱 패키지 파일을 코드, 메타데이터 및/또는 리소스를 분해할 수 있다. 이를 통하여 앱 화면 및 이벤트 추출 모듈은 단일 패키지 파일에서 환경설정 기능 시험 항목을 생성하는데 필요한 정보를 추출하는데 필요한 자료를 보다 쉽게 식별할 수 있다.
단계(430)에서 앱 화면 및 이벤트 추출 모듈은 메타데이터로부터 앱의 시작 화면 및 화면 목록을 추출할 수 있다. 이때, 추출된 앱의 시작 화면은 앱 화면-이벤트 연관 데이터베이스에 <null, '앱 시작', 시작 화면>의 형태로 추가할 수 있다. 추출된 화면 목록은 단계(440)에서 화면에 해당하는 코드를 식별하기 위하여 사용될 수 있다.
단계(440)에서 앱 화면 및 이벤트 추출 모듈은 앱 전체의 코드로부터 단계(430)에서 추출된 화면 목록의 각 화면에 대응하는 코드를 식별할 수 있다. 이때, 식별된 각 화면에 대응하는 코드로부터 각각의 화면에 정의된 이벤트가 추출될 수 있다. 화면에 정의된 이벤트는, 이벤트 처리기 코드 또는 플랫폼이 이벤트를 자동으로 생성하는 규칙을 활용하여 추출할 수 있다. 또한, 추출된 이벤트는 앱 화면-이벤트 연관 데이터베이스에 이벤트 ID를 제외한 나머지 속성을 공란(null)으로 하여 저장될 수 있다.
단계(450)에서 앱 화면 및 이벤트 추출 모듈은 단계(440)에서 추출된 이벤트 중 앱 화면을 전환하는 이벤트를 추출할 수 있다. 각 이벤트에 대응하는 이벤트 처리기 코드에서, 앱 화면을 전환하는 API 호출이 존재하는 이벤트 앱 화면을 전환하는 이벤트로 식별할 수 있다. 이때, 이벤트 처리기 코드가 위치한 앱 화면의 코드에 대응하는 앱 화면을 이전 화면, 앱 화면을 전환하는 API 호출에서 인자로 사용한 대상 앱 화면을 다음 화면으로 식별할 수 있다. 이와 같이 추출된 이벤트, 이전 화면, 다음 화면의 순서쌍은 앱 화면-이벤트 연관 데이터베이스에 저장된 이벤트에 이전 화면과 다음 화면에 대한 값을 추가하는데 사용될 수 있다. 앱 화면-이벤트 연관 데이터베이스는 앱 화면을 전환하는 이벤트를 <이전 화면 ID, 이벤트 ID, 다음 화면 ID>의 순서쌍을 포함한 형태로 저장하고, 앱 화면을 전환하지 않는 이벤트는 <이전(이벤트가 정의된) 화면 ID, 이벤트 ID, null>의 순서쌍을 포함한 형태로 저장할 수 있다. 이에 따라 앱 화면-이벤트 연관 데이터베이스는 앱 화면의 흐름을 파악하고, 각 화면에 어떤 이벤트가 정의되어 있는지에 대한 정보를 제공할 수 있다.
단계(460)에서 환경설정 값 접근 API 호출 추출 모듈은 코드나 리소스에서 정의된 환경설정을 추출할 수 있다. 환경설정은 앱 플랫폼의 규칙에 따른 관련 API 호출이나 리소스 형식을 식별하여 추출할 수 있다. 추출된 환경설정은 환경설정의 이름, 해당 환경설정이 허용하는 값으로 나머지 속성은 공란으로 비워둔 상태로 이벤트-앱 환경설정 연관 데이터베이스에 저장될 수 있다. 환경설정이 허용하는 값은 일정 범위를 가지는 정수형, 실수형 자료형 또는 문자열 등 환경설정 값으로 사용할 수 있는 자료형을 모두 포함할 수 있다.
단계(470)에서 환경설정 값 접근 API 호출 추출 모듈은 단계(460)에서 추출된 환경설정이 존재하는지 여부를 판단할 수 있다. 환경설정 값 접근 API 호출 추출 모듈은 환경설정이 존재한다면, 단계(480)를 수행할 수 있고, 환경설정이 존재하지 않을 경우 프로세스를 종료할 수 있다. 이때, 추출된 환경설정이 존재하지 않는 앱은 환경설정 기능이 존재하지 않는 것이므로, 환경설정 기능을 시험할 필요가 없게 된다.
단계(480)에서 환경설정 값 접근 API 호출 추출 모듈은 코드로부터 환경설정 값과 관련된 이벤트를 추출할 수 있다. 단계(440)에서 앱 화면-이벤트 연관 데이터베이스에 저장된 각 이벤트에 대응하는 이벤트 처리기 코드로부터 이벤트를 식별할 수 있다. 식별된 이벤트 처리기에 대응하는 이벤트 이름, 이벤트 처리기와 관련된 환경설정 API 호출의 인자 값을 추출하여 이를 이벤트-앱 환경설정 연관 데이터베이스에 저장된 이벤트 항목에 추가할 수 있다. 단계(480)에서 추출된 이벤트는 환경설정 기능이 정상적으로 동작하는지 시험하려면 반드시 실행해야 하기 때문에 후출한 시험 스크립트 생성 단계(220)에서 스크립트가 실행하고자 하는 목표 이벤트가 된다.
단계(480)을 수행함에 따라 이벤트-앱 환경설정 연관 데이터베이스는 환경설정 값을 쓰는 이벤트에 대해서 <이벤트 ID, 환경설정 ID, '쓰기', 허용 환경설정 값의 자료형, 쓰는 환경설정 값>의 순서쌍을 포함한 형태로 저장하고, 환경설정 값을 읽는 이벤트에 대해서 <이벤트 ID, 환경설정 ID, '읽기', 허용 환경설정 값의 자료형, null>의 순서쌍을 포함한 형태로 저장할 수 있다. 만약, 단계(460)에서 식별된 환경설정일지라도 단계(480)에서 관련된 이벤트가 존재하지 않는 경우, <null, 환경설정 ID, 허용 환경설정 값의 자료형, null>의 순서쌍을 포함한 형태로 저장할 수 있다. 이에 따라, 이벤트 앱-환경설정 연관 데이터베이스는 앱에서 어떤 환경설정이 정의되어 있고, 어떤 이벤트가 환경설정에 어떻게 접근하는지에 관한 정보를 제공할 수 있다.
도 5를 참고하면, 시험 스크립트를 생성하는 방법을 설명하기 위한 흐름도이다. 환경설정 시험 항목 시스템의 이벤트 순서 결정 모듈에서 앱 패키지 파일 분석 결과를 사용하여 GUI 흐름 그래프를 구축하고, 추출된 모든 환경설정 값의 읽기, 쓰기가 발생하는 이벤트를 실행할 수 있도록 환경설정 시험 스크립트를 생성할 수 있다.
단계(510)에서 이벤트 순서 결정 모듈은 앱 패키지 파일 분석 결과를 바탕으로 GUI 흐름 그래프를 생성할 수 있다. GUI 흐름 그래프는 도 6을 참고하면, 앱 화면 또는 화면 상태를 정점, 이벤트를 간선인 그래프로 나타낼 수 있다. GUI 흐름 그래프에서 각 화면과 일반 이벤트, 화면 전환 이벤트는 앱 화면-이벤트 연관 데이터베이스에 저장된 시작 화면과 각 화면별 정의된 이벤트 정보를 사용하여 생성할 수 있다. 이벤트 중 환경설정을 읽거나 쓰는 이벤트는 이벤트-앱 환경설정 연관 데이터베이스를 사용하여 어떤 환경설정을 읽거나 쓰는지 표기할 수 있다. GUI 흐름 그래프를 생성하면 앱의 화면 흐름과 이벤트와 환경설정 간의 관계를 식별할 수 있다. 이에 따라 환경설정 기능을 시험하기 위해 어떤 순서로 이벤트를 실행해야 하는지 결정할 수 있게 된다.
단계(520)에서 이벤트 순서 결정 모듈은 하나의 환경설정 시험 스크립트에서 사용할 환경설정 값과 목표 이벤트를 선정할 수 있다. 이때, 목표 이벤트는 환경설정 값으로 환경설정을 쓰는 이벤트, 환경설정 값을 읽는 이벤트를 포함할 수 있다. 단계(520)에서 아직 스크립트를 생성하지 않은 환경설정 값, 이벤트의 조합을 임의의 순서로 선정할 수 있다. 조합을 선정하는 방법은, 환경설정 값을 선정하면, GUI 흐름 그래프에서 선정한 환경설정 값을 쓰는 이벤트와 선정된 환경설정 값을 읽는 이벤트가 선정될 수 있다. 예를 들면, 도 6에서 환경설정 값으로 '팝업 표시'의 Boolean 값을 '온(On)'으로 선정하면, 목표 이벤트는 '팝업 표시' 환경설정 값을 쓰는 이벤트와 읽는 이벤트가 될 수 있다. 또한, 도 7을 참고하면, 하나의 환경설정에 대한 관련 이벤트, 스크립트로 생성해야 하는 환경설정 값, 목표 이벤트의 조합의 예를 나타낸 것이다. 도 7과 같이, 한 가지의 환경설정은 두 가지 이상의 이벤트에서 읽고 쓸 수 있다.
단계(530)에서 이벤트 순서 결정 모듈은 기본 환경설정 값으로 환경설정 값에 영향을 받는 기능을 시험할 것인지를 판단할 수 있다. 단계(530)에서 이벤트 순서 결정 모듈은 기본 환경설정 값으로 시험할 것이라면, 단계(540)을 생략하고 단계(550)을 수행할 수 있고, 기본 환경설정 값으로 시험할 것이 아니라면, 단계(540)을 수행할 수 있다. 이때, 목표 이벤트 중 환경설정 값을 쓰는 이벤트가 선정되지 않아 기본 환경설정 상태에서 앱의 환경설정 기능을 시험하는 경우(다시 말해서, 앱의 기본 환경설정이 올바르게 설정되었고, 의도한대로 작동하는지 확인하려는 경우), 단계(540)에서 결정된 쓰는 이벤트를 실행할 필요가 없기 때문이다.
단계(540)에서 이벤트 순서 결정 모듈은 목표 이벤트 중 환경설정 값을 쓰는 이벤트로 도달하기 위한 이벤트의 순서를 결정할 수 있다. 이벤트의 순서를 결정하기 위하여 GUI 흐름 그래프로부터 시작 화면에서 환경설정 값을 쓰는 이벤트가 정의된 화면으로의 이벤트 경로를 계산할 수 있다. 그리고 나서, 계산한 경로에 목표로 하는 환경설정 값을 쓰는 이벤트를 추가할 수 있다. 마지막으로, 쓰는 이벤트를 포함하는 환경설정 값이 제대로 작동하는지 확인할 수 있도록 시작 화면으로 돌아가는 이벤트 경로를 계산하여 기존의 경로에 추가할 수 있다. 세 가지의 경로를 연결한 것을 예로 들어, 도 6의 해당하는 앱의 '환경설정' 화면에서 '팝업 표시' 환경설정을 오프(Off)로 변경하는 것을 목표 이벤트라고 가정하자. 이 경우, 목표 이벤트로의 경로는 시작 화면에서 '환경 설정' 메뉴를 클릭하는 이벤트로 시작할 수 있으며, 이어서, '환경설정' 화면에서 '팝업 표시' 환경설정 항목의 스위치 버튼을 클릭하는 이벤트를 선정할 수 있다. 마지막으로, '환경설정' 화면에서 시작 화면으로 되돌아가는 이벤트를 선정할 수 있다.
단계(550)에서 이벤트 순서 결정 모듈은 목표 이벤트 중 환경설정 값을 읽는 이벤트로 도달하기 위한 이벤트의 순서를 계산할 수 있다. 이벤트의 순서를 결정하기 위해, GUI 흐름 그래프로부터 시작 화면에서 환경설정 값을 읽는 이벤트가 정의된 화면으로부터 이벤트 경로를 계산할 수 있다. 그 후, 계산된 경로에 목표로 하는 환경설정 값을 읽는 이벤트를 추가할 수 있다. 이때, 단계(540)과는 달리, 순서의 마지막에 시작 화면으로 되돌아가는 경로에 해당하는 순서를 생략한다. 환경설정 값을 읽는 이벤트를 실행하는 것이 환경설정 시험 스크립트의 목적을 달성하기 때문이다.
단계(560)에서 이벤트 순서 결정 모듈은 단계(540) 및 단계(550)에서 결정한 이벤트의 순서대로 연결한 이벤트의 연속을 사용하여, 하나의 환경설정 시험 스크립트를 생성할 수 있다. 환경설정 시험 스크립트는 생성하고자 하는 시험 스크립트의 양식에 기초하여 자동으로 생성될 수 있다. 예를 들면, 안드로이드 플랫폼의 시험 스크립트를 생성하고자 하는 경우, 이벤트의 연속에 대응하는 Espresso 스크립트의 형식에 적합하게 생성될 수 있다.
단계(570)에서 이벤트 순서 결정 모듈은 이벤트-앱 환경설정 연관 데이터베이스에 저장된 모든 환경설정 값을 쓰는 이벤트를 실행하고, 모든 환경설정 값에 대해서 스크립트가 생성되었는지 여부를 판단할 수 있다. 이벤트 순서 결정 모듈은 추출한 모들 환경설정에 대해 시험 스크립트가 생성되었다면, 프로세스를 종료할 수 있고, 시험 스크립트가 생성되지 않은 경우, 단계(520) 내지 단계(570)을 재수행할 수 있다.
도 8은 일 실시예에 따른 환경설정 시험 항목 생성 시스템이 적용된 예를 나타낸 도면이다.
환경설정 시험 항목 생성 시스템은 단일 소프트웨어로 구현될 수 있으며, 안드로이드 애플리케이션(앱)의 환경설정 시험항목을 자동으로 생성하는데 사용할 수 있다. 일례로, 대상 앱이 선택될 수 있다. 대상 앱이 선택됨에 따라 안드로이드 앱의 시험 항목을 생성하는지 여부를 질의하는 유저 인터페이스가 제공될 수 있다. 이때, 시험 항목을 생성하는 것에 대한 명령이 입력됨에 응답하여 시험항목이 생성될 수 있다. 또한, 시험항목이 생성되는 과정이 표시될 수 있다. 시험항목이 생성됨에 따라 획득된 시험 스크립트는 IDE나 스크립트 실행 환경에서 환경설정 기능을 자동으로 시험하기 위해 사용될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (15)

  1. 환경설정 시험 항목 생성 시스템에서 수행되는 환경설정 시험 항목 생성 방법에 있어서,
    앱에 대한 앱 패키지 파일이 입력됨에 따라 상기 앱 패키지 파일을 분석하는 단계; 및
    상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 시험 스크립트를 생성하는 단계
    를 포함하고,
    상기 앱 패키지 파일을 분석한 분석 결과를 데이터베이스에 저장하는 단계
    를 더 포함하고,
    상기 앱에 대한 앱 패키지 파일이 입력됨에 따라 상기 앱 패키지 파일을 분석하는 단계는,
    상기 앱 패키지 파일에 대한 앱 패키지 파일 형식을 준수함에 따라 상기 앱 패키지 파일을 코드, 메타데이터 또는 리소스로 분해하고, 상기 메타데이터로부터 앱의 시작 화면 및 화면 목록을 추출하고, 상기 앱 패키지 파일의 코드 또는 리소스로부터 상기 화면 목록에 포함된 각각의 화면에 대응하는 코드를 식별하고, 상기 식별된 각각의 화면에 대응하는 코드로부터 상기 각각의 화면에 정의된 이벤트를 추출하고, 상기 추출된 이벤트 중 앱 화면을 전환하는 이벤트를 추출하고, 상기 앱 패키지 파일의 코드 또는 리소스에 정의된 환경설정을 추출하고, 상기 추출된 환경설정이 존재하는지 여부를 판단하고, 상기 환경설정이 존재한다면, 상기 앱 패키지 파일의 코드에서 상기 추출된 환경설정에 대한 환경설정 값과 관련된 이벤트를 추출하는 단계
    를 포함하고,
    상기 앱 패키지 파일을 분석한 분석 결과를 데이터베이스에 저장하는 단계는,
    상기 환경설정의 값을 쓰는 이벤트에 대하여 <이벤트 ID, 환경설정 ID, '쓰기', 허용 환경설정 값의 자료형, 쓰는 환경설정 값>의 순서쌍을 포함한 형태로 저장하고,
    환경설정 값을 읽는 이벤트에 대하여 <이벤트 ID, 환경설정 ID, '읽기', 허용 환경설정 값의 자료형, null>의 순서쌍을 포함한 형태로 저장하고,
    상기 환경설정이 추출되었지만 환경설정 값과 관련된 이벤트가 존재하지 않는 경우에 <null, 환경설정 ID, 허용 환경설정 값의 자료형, null>의 순서쌍을 포함한 형태로 저장하는 단계
    를 포함하고,
    상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 시험 스크립트를 생성하는 단계는,
    상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 화면 또는 화면 상태를 정점(Vertex), 이벤트를 간선(Edge)인 GUI 흐름 그래프를 생성하여 상기 추출된 환경설정 값의 읽기, 쓰기가 발생하는 이벤트를 실행할 수 있도록 환경설정 시험 스크립트를 생성하는 단계
    를 포함하는 환경설정 시험 항목 생성 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 GUI 흐름 그래프에서 기 저장된 시작 화면과 각 화면별 정의된 이벤트 정보를 사용하여 각 화면과 일반 이벤트, 화면 전환 이벤트를 생성하는
    환경설정 시험 항목 생성 방법.
  6. 제1항에 있어서,
    상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 시험 스크립트를 생성하는 단계는,
    상기 시험 스크립트에서 사용하기 위한 환경설정 값과, 상기 환경설정 값으로 환경설정을 쓰는 이벤트 및 상기 환경설정 값을 읽는 이벤트를 포함하는 목표 이벤트를 선정하는 단계
    를 포함하는 환경설정 시험 항목 생성 방법.
  7. 제1항에 있어서,
    상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 시험 스크립트를 생성하는 단계는,
    상기 GUI 흐름 그래프를 통하여 상기 쓰는 이벤트로 도달하기 위한 이벤트의 순서 및 상기 읽는 이벤트로 도달하는 이벤트의 순서를 결정하고, 상기 결정된 이벤트의 순서에 대응하는 환경설정 시험 스크립트를 생성하는 단계
    를 포함하는 환경설정 시험 항목 생성 방법.
  8. 환경설정 시험 항목 생성 시스템에 있어서,
    앱에 대한 앱 패키지 파일이 입력됨에 따라 상기 앱 패키지 파일을 분석하는 앱 패키지 파일 분석부;
    상기 앱 패키지 파일을 분석한 분석 결과를 데이터베이스에 저장하는 앱 패키지 파일 분석 결과 저장부; 및
    상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 시험 스크립트를 생성하는 시험 스크립트 생성부
    를 포함하고,
    상기 앱 패키지 파일 분석부는,
    상기 앱 패키지 파일에 대한 앱 패키지 파일 형식을 준수함에 따라 상기 앱 패키지 파일을 코드, 메타데이터 또는 리소스로 분해하고, 상기 메타데이터로부터 앱의 시작 화면 및 화면 목록을 추출하고, 상기 앱 패키지 파일의 코드 또는 리소스로부터 상기 화면 목록에 포함된 각각의 화면에 대응하는 코드를 식별하고, 상기 식별된 각각의 화면에 대응하는 코드로부터 상기 각각의 화면에 정의된 이벤트를 추출하고, 상기 추출된 이벤트 중 앱 화면을 전환하는 이벤트를 추출하고, 상기 앱 패키지 파일의 코드 또는 리소스에 정의된 환경설정을 추출하고, 상기 추출된 환경설정이 존재하는지 여부를 판단하고, 상기 환경설정이 존재한다면, 상기 앱 패키지 파일의 코드에서 상기 추출된 환경설정에 대한 환경설정 값과 관련된 이벤트를 추출하는 것을 포함하고,
    상기 앱 패키지 파일 분석 결과 저장부는,
    상기 환경설정의 값을 쓰는 이벤트에 대하여 <이벤트 ID, 환경설정 ID, '쓰기', 허용 환경설정 값의 자료형, 쓰는 환경설정 값>의 순서쌍을 포함한 형태로 저장하고,
    환경설정 값을 읽는 이벤트에 대하여 <이벤트 ID, 환경설정 ID, '읽기', 허용 환경설정 값의 자료형, null>의 순서쌍을 포함한 형태로 저장하고,
    상기 환경설정이 추출되었지만 환경설정 값과 관련된 이벤트가 존재하지 않는 경우에 <null, 환경설정 ID, 허용 환경설정 값의 자료형, null>의 순서쌍을 포함한 형태로 저장하는 것을 포함하고,
    상기 시험 스크립트 생성부는,
    상기 앱 패키지 파일을 분석한 분석 결과에 기초하여 화면 또는 화면 상태를 정점(Vertex), 이벤트를 간선(Edge)인 GUI 흐름 그래프를 생성하여 상기 추출된 환경설정 값의 읽기, 쓰기가 발생하는 이벤트를 실행할 수 있도록 환경설정 시험 스크립트를 생성하는
    환경설정 시험 항목 생성 시스템.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 제8항에 있어서,
    상기 GUI 흐름 그래프에서 상기 데이터베이스에 저장된 시작 화면과 각 화면별 정의된 이벤트 정보를 사용하여 각 화면과 일반 이벤트, 화면 전환 이벤트를 생성하는
    환경설정 시험 항목 생성 시스템.
  13. 제8항에 있어서,
    상기 시험 스크립트 생성부는,
    상기 시험 스크립트에서 사용하기 위한 환경설정 값과, 상기 환경설정 값으로 환경설정을 쓰는 이벤트 및 상기 환경설정 값을 읽는 이벤트를 포함하는 목표 이벤트를 선정하는
    것을 특징으로 하는 환경설정 시험 항목 생성 시스템.
  14. 제8항에 있어서,
    상기 시험 스크립트 생성부는,
    상기 GUI 흐름 그래프를 통하여 상기 쓰는 이벤트로 도달하기 위한 이벤트의 순서 및 상기 읽는 이벤트로 도달하는 이벤트의 순서를 결정하고, 상기 결정된 이벤트의 순서에 대응하는 환경설정 시험 스크립트를 생성하는
    것을 특징으로 하는 환경설정 시험 항목 생성 시스템.
  15. 제8항에 있어서,
    상기 앱 패키지 파일 분석 결과 저장부는,
    상기 앱의 화면 흐름을 추출하고, 특정 이벤트를 실행하기 위한 화면으로 도달하는 이벤트의 순서를 계산하기 위하여 화면을 전화하는 이벤트를 저장하고, 환경설정 시험 스크립트가 실행하고자 하는 이벤트를 식별하기 위해 환경설정 값과 관련된 이벤트, API 호출로 환경설정 값을 접근하는 방식을 저장하는
    것을 특징으로 하는 환경설정 시험 항목 생성 시스템.
KR1020180035197A 2018-03-27 2018-03-27 모바일 어플리케이션 환경설정을 시험하기 위한 시험 항목 자동 생성 방법 및 시스템 KR102105753B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180035197A KR102105753B1 (ko) 2018-03-27 2018-03-27 모바일 어플리케이션 환경설정을 시험하기 위한 시험 항목 자동 생성 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180035197A KR102105753B1 (ko) 2018-03-27 2018-03-27 모바일 어플리케이션 환경설정을 시험하기 위한 시험 항목 자동 생성 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20190113050A KR20190113050A (ko) 2019-10-08
KR102105753B1 true KR102105753B1 (ko) 2020-04-29

Family

ID=68209043

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180035197A KR102105753B1 (ko) 2018-03-27 2018-03-27 모바일 어플리케이션 환경설정을 시험하기 위한 시험 항목 자동 생성 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102105753B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111181790B (zh) * 2019-12-31 2022-11-01 京信网络系统股份有限公司 自动化测试脚本快速生成方法、装置、设备和存储介质
CN112084786A (zh) * 2020-08-03 2020-12-15 东北大学 基于dsl的网络配置文件测试方法
CN111782553B (zh) * 2020-08-08 2022-09-23 中国人民解放军国防科技大学 一种基于故障注入的软件反应缺陷分析方法
CN112799951B (zh) * 2021-02-04 2023-03-31 上海云轴信息科技有限公司 用于计费系统的生成自动测试用例的方法与设备
CN113806222A (zh) * 2021-08-30 2021-12-17 浙江吉利控股集团有限公司 接口测试脚本生成方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120121950A (ko) * 2011-04-28 2012-11-07 (주)아이엔에스랩 애플리케이션 그래픽 유저인터페이스 테스트 자동화 시스템 및 그 방법
KR20140004495A (ko) * 2012-07-03 2014-01-13 삼성전자주식회사 응용프로그램의 자동 테스트 방법 및 그 전자 장치

Also Published As

Publication number Publication date
KR20190113050A (ko) 2019-10-08

Similar Documents

Publication Publication Date Title
KR102105753B1 (ko) 모바일 어플리케이션 환경설정을 시험하기 위한 시험 항목 자동 생성 방법 및 시스템
US9720799B1 (en) Validating applications using object level hierarchy analysis
US10303590B2 (en) Testing functional correctness and idempotence of software automation scripts
Zheng et al. Smartdroid: an automatic system for revealing ui-based trigger conditions in android applications
US9268672B1 (en) Automated test case generation for applications
US8769553B2 (en) Deploy anywhere framework for heterogeneous mobile application development
US9336023B2 (en) Visual generation of mobile applications based on data models
Vidas et al. A5: Automated analysis of adversarial android applications
US20150332043A1 (en) Application analysis system for electronic devices
US20140237451A1 (en) Exposing method related data calls during testing in an event driven, multichannel architecture
US9679090B1 (en) Systematically exploring programs during testing
US20130311827A1 (en) METHOD and APPARATUS for automatic testing of automation software
KR101325954B1 (ko) 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법, 및 이를 위한 안드로이드 어플 자동실행 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
US20150317234A1 (en) System, method, apparatus and computer program for automatic evaluation of user interfaces in software programs
KR102052605B1 (ko) 모바일 어플리케이션을 통한 바탕화면에 바로가기 설치 방법 및 그 시스템
US10078510B1 (en) Late-stage software feature reduction tool for security and performance
KR101900047B1 (ko) 애플리케이션이 필요로 하는 권한을 진단하는 방법 및 장치
US10705858B2 (en) Automatic import of third party analytics
US20160077831A1 (en) Accurate and performant code design using memoization
JP2014191830A (ja) アプリケーションの自動的な特徴駆動型のテスト及び品質チェックの方法、システム及び製品
CN108121650B (zh) 一种对于页面用户界面的测试方法及装置
US10318731B2 (en) Detection system and detection method
Usman et al. TEGDroid: Test case generation approach for android apps considering context and GUI events
US9886367B2 (en) Unified processing test structure
Usman et al. Test case generation from android mobile applications focusing on context events

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