KR101513662B1 - Search system and method of executable GUI - Google Patents

Search system and method of executable GUI Download PDF

Info

Publication number
KR101513662B1
KR101513662B1 KR1020140135003A KR20140135003A KR101513662B1 KR 101513662 B1 KR101513662 B1 KR 101513662B1 KR 1020140135003 A KR1020140135003 A KR 1020140135003A KR 20140135003 A KR20140135003 A KR 20140135003A KR 101513662 B1 KR101513662 B1 KR 101513662B1
Authority
KR
South Korea
Prior art keywords
user interface
graphical user
basic information
executable
analyzing
Prior art date
Application number
KR1020140135003A
Other languages
Korean (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 KR1020140135003A priority Critical patent/KR101513662B1/en
Application granted granted Critical
Publication of KR101513662B1 publication Critical patent/KR101513662B1/en

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/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/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
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • 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]

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)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The present invention relates to a search system and method for graphic user interface (GUI) which is executable without sequence dependency. The invention provides a static analysis tool which analyzes basic information about GUI using source code or decompile technique without direct execution, and a dynamic analysis tool which executes each element in consecutive order according to the basic information analyzed in the static analysis; therefore, as a result of using static and dynamic analysis at the same time, erroneous results are not produced and automaticity is increased.

Description

실행 가능한 그래픽 사용자 인터페이스 검색 시스템 및 검색 방법{Search system and method of executable GUI} An executable graphical user interface retrieval system and a retrieval method,

본 발명은 동적으로 순서 의존성 없이 실행 가능한 그래픽 사용자 인터페이스(Graphic User Interface : GUI)를 찾는 시스템 및 방법에 관한 것으로, 특히 정적과 동적 분석을 동시에 사용해서 그래픽 사용자 인터페이스 간의 순서 의존성을 파악할 수 있는 실행 가능한 그래픽 사용자 인터페이스 검색 시스템 및 검색 방법에 관한 것이다.
The present invention relates to a system and method for locating a graphical user interface (GUI) that can be executed dynamically and in a non-sequential manner. More particularly, the present invention relates to an executable A graphical user interface search system, and a search method.

IT 분야에 급속한 기술발전으로 인해 이에 따르는 소프트웨어의 기술 역시 발전되어야만 한다. 이와 같이, 소프트웨어는 컴퓨터 분야 및 통신 분야에 중요한 요소로서 자리하고 있다. 이로 인해, 소프트웨어의 신뢰성은 시스템 운용의 신뢰성과 직결되어 이에 대한 품질관리가 요구되고 있다. 소프트웨어의 품질관리는 그 대표적인 예로서, 소프트웨어 테스팅 기법(software testing)을 가장 많이 사용하고 있다.Rapid technological advances in the IT arena require the development of software technologies that follow. As such, software is an important element in the computer and communications sectors. As a result, the reliability of the software is directly related to the reliability of the system operation, and quality control thereof is required. Software quality control is the most common example of software testing.

소프트웨어 테스팅은 정적 테스팅(Static Testing)과 동적 테스팅(Dynamic Testing)으로 나뉜다. 동적 테스팅은 구현된 소프트웨어를 직접 수행시켜서 그 결과가 원하는 기대 값과 같은지 판단하는 형태의 소프트웨어 테스팅이고, 정적 테스팅은 소프트웨어를 실제로 수행하지 않고 테스팅하는 형태의 소프트웨어 테스팅이다. Software testing is divided into static testing and dynamic testing. Dynamic testing is a type of software testing in which the implemented software is directly executed to determine whether the result is equal to a desired value. Static testing is a type of software testing in which the software is not actually executed.

정적 테스팅은 일반적으로 형상 인스펙션(configuration inspection), 소스 코드 인스펙션(source code inspection), 컴파일-빌드 프로세스(compile-build processor) 등으로 수행된다. Static testing is typically performed by configuration inspection, source code inspection, compile-build processor, and the like.

형상 인스펙션은 설정 값(Configuration value)의 제약사항 위반 여부를 검사하는 것이다. 소프트웨어를 작성할 때, 몇몇 변수는 정확한 값의 입력을 미루는 경우가 있으며, 형상은 설정 변수들을 구체적인 값으로 결정한 것을 나타낸다. 프로그램을 작성할 때, 몇몇 변수나 상수 값을 설정함으로써 프로그램의 컴파일이나 프로그램 실행에 영향을 주도록 할 수 있다. 이렇게 설정된 변수나 상수값을 프로그램의 형상이라고 하는데, 형상이 의도한 대로 되었는지 검사하는 것이 형상 인스펙션이다. A shape inspection checks whether a configuration value violates a constraint. When writing software, some variables may delay the input of correct values, and the shape indicates that the setting variables are determined to be concrete values. When writing a program, you can set some variables or constants to affect program compilation or program execution. The variable or constant value is called the shape of the program, and it is the shape inspection that checks whether the shape is as intended.

소스 코드 인스펙션은 소스 코드의 오류를 점검하는 활동으로 함수 및 메소드(method)의 시그니처(signature)가 명세서대로 작성되었는지 확인하거나 컴파일되기 위한 프로그램 변수 혹은 헤더 파일들이 적절하게 존재하는지 검사하는 것이다.Source code inspection is an activity that checks the source code for errors. It checks that the signature of the function and method is written in the specification, or checks whether the program variables or header files to be compiled are properly present.

컴파일-빌드 프로세스는 컴파일하는 동안에 발생하는 에러에 대해서 보고하고 조치하는 행위이다.The compile-build process is to report and act on errors that occur during compilation.

또한, 안드로이드를 기반으로 하는 스마트폰의 보급률이 상승하고 안드로이드 OS 활용범위가 사회 전반으로 넓어지며, 다양한 기능을 하는 안드로이드 어플리케이션이 하루가 다르게 출시되고 있다.In addition, the penetration rate of smartphones based on Android is rising, and the range of application of Android OS is widening in society as a whole, and various functions of Android applications are being launched one by one.

안드로이드 어플리케이션은 기존의 자바 어플리케이션과는 다른 구조를 가지고 있으며, 모바일 디바이스와 같이 제한된 하드웨어 환경에서 동작하도록 최적화되어 있다. 이러한 안드로이드는 테스팅을 위하여 JUnit, Monkey, MonkeyRunner의 세가지를 기본적으로 제공하고 있다.Android applications are structured differently from traditional Java applications and are optimized to work in a limited hardware environment, such as mobile devices. These Android basically provide three kinds of JUnit, Monkey, and MonkeyRunner for testing.

또한, 단순한 API를 테스트하는 것 외에 Instrumentation based testing 기법을 제공하고 있다. 사용자의 행위에 대한 내용을 코드로 표현하여 기능 테스트를 한다. Monkey는 안드로이드의 무작위 이벤트를 타겟에 보내 에러가 발생하는지 또는 어느 정도의 시간을 버티는지를 테스트하는 스트레스 테스트를 할 수 있다. MonkeyRunner는 액션 좌표값과 액션 이벤트를 Jython으로 스크립트 형태의 코드를 제작하여 기능 테스트를 할 수 있는 도구이다.
In addition to testing simple APIs, it also provides instrumentation based testing techniques. The function test is performed by expressing the contents of the user's behavior in code. Monkey can send a random event from Android to the target to perform a stress test that tests whether an error occurs or how long it takes. MonkeyRunner is a tool that allows you to create scripted code with Jython for action coordinates and action events.

이러한 기술의 일 예가 하기 문헌 1 및 2 등에 개시되어 있다.Examples of such techniques are described in documents 1 and 2 below.

예를 들어, 하기 특허문헌 1에는 도 1에 도시된 바와 같이, 차량용 소프트웨어 시스템의 기본 소프트웨어 모듈(11) 및 실행 환경 모듈(12)로부터 수신된 복수 개의 형상 소스 파일들(configuration source files)에 대한 적합성 검사를 수행하며, 전처리부(pre-processor)(21), 테스트 케이스 저장부(22), 테스팅 제어부(23), 만족가능성 모듈로 이론 처리기(Satisfiability Modulo Theory solver : SMT)(24) 및 코드 실행부(25)를 포함하고, 기본 소프트웨어 모듈(11) 또는 실행 환경 모듈(12)을 구성하는 파일들 중 형상 파일에 대해 소프트웨어 정적 테스팅을 수행하는 소프트웨어 정적 테스팅 장치(20)에 대해 개시되어 있다.For example, as shown in Fig. 1, the following patent document 1 discloses a method for managing a plurality of configuration source files received from a basic software module 11 and an execution environment module 12 of a vehicle software system A test processor 22, a testing control unit 23, a Satisfaction Modulo Theory Solver (SMT) 24 and a code of satisfaction as a satisfactory module. The pre-processor 21, the test case storage unit 22, A software static testing apparatus 20 that includes an execution unit 25 and performs software static testing on a shape file among files constituting the basic software module 11 or the execution environment module 12 has been disclosed .

또 하기 특허문헌 2에는 안드로이드 어플리케이션의 GUI 테스팅을 위한 시나리오를 작성하기 이전의 단계인, 안드로이드 어플리케이션의 액티비티 기반 상태도를 생성하는 방법으로서, 어플리케이션의 소스에 대한 역공학이 수행되는 단계, 상기의 수행된 역공학의 결과에 대해서, 액티비티를 중심으로 상태도를 생성하는 단계 및 상기의 상태도에 상기 액티비티의 라이프 사이클을 추가하는 단계를 포함하고, 상기 액티비티의 라이프 사이클을 추가하는 단계는, 상기 각각의 액티비티에 대해 피니시(finish) 함수가 존재하는지 여부를 체크하고 이벤트 백을 추가하는 단계를 포함하는 안드로이드 어플리케이션의 액티비티 기반 상태도 생성방법에 대해 개시되어 있다.
Patent Document 2 discloses a method for generating an activity-based state diagram of an Android application, which is a stage prior to creating a scenario for GUI testing of an Android application, wherein reverse engineering of the source of the application is performed, Wherein the step of adding the lifecycle of the activity further comprises the step of adding a lifecycle of the activity to the state diagram, the step of adding the lifecycle of the activity to the activity of each activity And a method for generating an activity-based state diagram of an Android application that includes checking whether a finish function exists for the application and adding an event back.

대한민국 공개특허공보 제2012-0072133호(2012.07.03 공개)Korean Patent Publication No. 2012-0072133 (published on July 23, 2012) 대한민국 등록특허공보 제10-1416065호(2014.07.01 등록)Korean Registered Patent No. 10-1416065 (Registered on July 1, 2014)

앱 마켓을 통해서 공급되는 많은 수의 응용프로그램들은 유용한 기능들을 제공하지만, 검증 과정의 비효율성 때문에 GUI 버그들을 포함하는 것이 많다. 특히, 크래쉬(Crash)를 유발시키는 GUI 버그들은 응용프로그램을 저장 없이 갑작스럽게 중단 시키므로, 매우 치명적이다. 모바일 테스팅 연구는 많이 있지만, 기존의 연구들은 소스코드에 대한 의존도를 가지며 효율성과 자동성 떨어져서 앱 마켓에 있는 광범위한 응용프로그램에 대해서 GUI 테스팅을 수행하기에는 한계가 존재한다. A large number of applications supplied through the app marketplace provide useful functionality, but often contain GUI bugs due to the inefficiency of the verification process. In particular, GUI bugs that cause crashes are very lethal because they cause the application to abruptly stop without saving. Although there are many mobile testing studies, existing studies are dependent on source code, and there is a limit to perform GUI testing for a wide range of applications in the app market, with efficiency and autonomy.

즉, 상술한 바와 같은 종래의 기술에서는 정적으로 소스코드를 분석하거나 역컴파일 기술을 통해서 그래픽 유저 인터페이스들 간의 관계를 파악하므로, 직접 실행을 하는 방법이 아니기 때문에 많은 잘못된 결과를 가져오는 문제가 있었다.That is, in the conventional technique as described above, there is a problem in that it results in a lot of erroneous results because it is not a direct execution method because it statically analyzes the source code or grasps the relationship between graphic user interfaces through the decompile technique.

또 상기와 같은 종래의 기술에서는 자동성을 떨어트려 최종적으로 많은 사람의 노력이 필요하다는 문제점도 있었다.In addition, the above-described conventional techniques have been disadvantageous in that the automaticity is reduced and the efforts of many people are finally required.

본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위해 이루어진 것으로서, 자동으로 소프트웨어를 구성하는 그래픽 사용자 인터페이스 요소들 간의 의존성을 파악해서, 독립적으로 실행 가능한 것을 찾아낼 수 있는 실행 가능한 그래픽 사용자 인터페이스 검색 시스템 및 검색 방법을 제공하는 것이다.It is an object of the present invention to provide an executable graphical user interface search system capable of automatically identifying dependencies between graphical user interface elements constituting software and finding executable functions independently, And a search method.

본 발명의 다른 목적은 독립적으로 실행 가능한 그래픽 사용자인터페이스들은 소프트웨어 테스팅에 사용되어 높은 커버리지를 달성하게 할 수 있는 실행 가능한 그래픽 사용자 인터페이스 검색 시스템 및 검색 방법을 제공하는 것이다.
Another object of the present invention is to provide an executable graphical user interface retrieval system and retrieval method that can be used independently for executable graphical user interfaces to achieve high coverage.

상기 목적을 달성하기 위해 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템은 는 순서에 상관없이 실행 가능한 그래픽 사용자 인터페이스를 찾는 시스템으로서, 소스코드 또는 역컴파일 기술을 이용해서 직접적인 실행 없이 그래픽 사용자 인터페이스에 대한 기초 정보를 분석하는 정적 분석 수단과 상기 정적 분석 수단에서 분석된 기초 정보에 따라 순차적으로 각각의 요소들을 실행하는 동적 분석 수단을 포함하는 것을 특징으로 한다.In order to achieve the above object, an executable graphical user interface search system according to the present invention is a system for searching an executable graphical user interface in any order, And static analysis means for analyzing the basic information and dynamic analysis means for sequentially executing the elements in accordance with the basic information analyzed by the static analysis means.

또 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템에 있어서, 상기 정적 분석 수단은 그래픽 사용자 인터페이스 기초 정보를 읽어내는 기초 정보 분석기와 상기 기초 정보를 저장하는 기초 정보 저장부를 포함하고, 상기 동적 분석 수단은 상기 기초 정보 저장부로부터 기초정보를 읽어와 순차적으로 그래픽 사용자 인터페이스를 표시하는 작업을 생성하고 이를 분석하는 순서 분석 제어기, 상기 순서 분석 제어기에 의해서 할당된 작업을 담당하여 실제적인 그래픽 사용자 인터페이스를 생성하여 표시하는 그래픽 사용자 인터페이스 표시기 및 분석된 그래픽 사용자 인터페이스 요소를 저장하는 사용자 인터페이스 요소 저장부를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided an executable graphical user interface (GUI) search system, wherein the static analysis unit includes a basic information analyzer for reading graphical user interface basic information and a basic information storage unit for storing the basic information, A sequence analysis controller for generating and analyzing tasks for reading basic information from the basic information storage unit and sequentially displaying a graphical user interface, a task manager for taking charge of tasks assigned by the sequence analysis controller to generate an actual graphical user interface And a user interface element storage unit for storing the analyzed graphical user interface elements.

또 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템에 있어서, 상기 동적 분석 수단은 상기 그래픽 사용자 인터페이스 표시기에 의해서 전자기기 상에 실제 표현된 정보가 정상적으로 출력되는지를 판단하는 실행결과 판단부를 더 포함하는 것을 특징으로 한다.Further, in the executable graphical user interface search system according to the present invention, the dynamic analysis means may further include an execution result determination unit that determines whether information actually displayed on the electronic device is normally output by the graphic user interface indicator .

또 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템에 있어서, 상기 기초 정보 분석기는 소프트웨어 명세, 소스코드 및 실행코드로부터 그래픽 사용자 인터페이스를 나타내는 기본 요소들에 대한 정보를 분석하고, 상기 기초 정보 저장부는 상기 기초 정보 분석부와 연결되어, 분석된 그래픽 사용자 인터페이스 기초 정보를 저장하는 것을 특징으로 한다.Further, in the executable graphical user interface search system according to the present invention, the basic information analyzer analyzes information on basic elements representing the graphical user interface from the software specification, the source code, and the executable code, And the basic information analyzing unit is connected to the analyzed graphical user interface basic information.

또 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템에 있어서, 상기 순서 분석 제어기는 상기 기초 정보 저장부와 연결되어, 그래픽 사용자 인터페이스 기초 정보를 순차적으로 읽어와서 정보를 표시하고, 정상적으로 수행되면, 다음 그래픽 사용자 인터페이스 기초 정보를 이용해서 다시 표시 실행을 명령하고, 문제가 있다면 해당 작업을 강제 종료시키고 오류를 처리하는 것을 특징으로 한다.Also, in the executable graphical user interface search system according to the present invention, the order analysis controller is connected to the basic information storage unit to sequentially read the graphical user interface basic information to display information, The user is instructed to execute the display again using the user interface basic information, and if there is a problem, the job is forcibly terminated and the error is processed.

또 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템에 있어서, 상기 사용자 인터페이스 요소 저장부는 상기 실행결과 판단부와 연결되어, 분석된 그래픽 사용자 인터페이스 요소를 저장하는 것을 특징으로 한다.In the executable graphical user interface search system according to the present invention, the user interface element storage unit is connected to the execution result determination unit and stores analyzed graphical user interface elements.

또 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템에 있어서, 상기 기초 정보는 버튼, 텍스트 박스의 그래픽 사용자 인터페이스 요소들의 종류와 크기, 배치, 색 중의 적어도 어느 하나인 것을 특징으로 한다.In an executable graphical user interface search system according to the present invention, the basic information is at least one of a type, a size, a layout, and a color of graphic user interface elements of a button and a text box.

또 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템에 있어서, 상기 실행결과 판단부는 상기 그래픽 사용자 인터페이스 표시기에 정상적으로 표시가 되었다면 해당 그래픽 사용자 인터페이스 요소를 순서에 상관없이 실행 가능하다고 판단하여 상기 사용자 인터페이스 요소 저장부로 보내고, 정상적인 표시가 아닌 경우, 상기 순서 분석 제어기로 정상적인 표시가 아닌 결과를 통지하는 것을 특징으로 한다.If the execution result determining unit determines that the graphical user interface element is normally displayed, the execution result determining unit determines that the graphical user interface element is executable regardless of the order, And notifies the order analyzing controller of a result that is not a normal display when the normal display is not performed.

또한, 상기 목적을 달성하기 위해 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 방법은 순서에 상관없이 실행 가능한 그래픽 사용자 인터페이스를 찾는 방법으로서, (a) 소프트웨어 명세, 소스코드 및 실행코드로부터 그래픽 사용자 인터페이스를 나타내는 기본 요소들에 대한 정보를 기초 정보 분석기에서 분석하는 단계, (b) 상기 단계 (a)에서 분석된 그래픽 사용자 인터페이스 기초 정보를 기초 정보 저장부에 저장하는 단계, (c) 상기 단계 (b)에서 저장된 기초정보를 순서 분석 제어기에서 읽어와 순차적으로 그래픽 사용자 인터페이스를 표시하는 작업을 생성하고 이를 분석하는 단계, (d) 상기 순서 분석 제어기에 의해서 할당된 작업을 담당하여 실제적인 그래픽 사용자 인터페이스를 생성하여 표시하는 단계, (e) 상기 단계 (d)에 의해서 전자기기 상에 실제 표현된 정보가 정상적으로 출력되는지를 실행결과 판단부에서 판단하는 단계, (f) 상기 단계 (e)에서 정상으로 판단되는 경우, 순서에 상관없이 실행 가능한 그래픽 사용자 인터페이스 요소를 사용자 인터페이스 요소 저장부에 저장하는 단계를 포함하는 것을 특징으로 한다.In order to achieve the above object, an executable graphical user interface search method according to the present invention is a method for searching an executable graphical user interface in any order, including: (a) extracting a graphical user interface from a software specification, (B) storing the graphical user interface basic information analyzed in the step (a) in a basic information storage unit; (c) (B) generating a graphical user interface (GUI) by sequentially reading the stored basic information from the sequence analysis controller and analyzing the generated graphical user interface; (d) (E) repeating the step (d) Determining whether the information actually displayed on the electronic device is normally output by the execution result determination unit; (f) if it is determined to be normal in the step (e), transmitting the executable graphical user interface element to the user interface And storing it in the element storage unit.

또 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 방법에 있어서, 상기 단계 (d)에서 정상이 아닌 것으로 판단되면, 강제 종료하고 상기 단계 (c)로 진행하여 상기 단계 (b)에서 저장된 다른 기초 정보에 대해 분석을 실행하는 것을 특징으로 한다.If it is judged that the graphical user interface is not normal in the step (d), the executable graphical user interface searching method according to the present invention is forcibly terminated and the process proceeds to the step (c) And the analysis is performed.

또 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 방법에 있어서, 상기 단계 (e)에서 정상으로 판단되지 않은 경우, 순서 분석 제어기로 통지하고, 상기 단계 (c)로 진행하여 상기 단계 (b)에서 저장된 다른 기초 정보에 대해 분석을 실행하는 것을 특징으로 한다.
In the graphical user interface searching method according to the present invention, if it is determined in step (e) that it is not determined to be normal, the sequence analyzing controller is notified, and the process proceeds to step (c) And performs analysis on other basic information.

상술한 바와 같이, 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템 및 검색 방법에 의하면, 정적과 동적 분석을 동시에 사용하므로 잘못된 결과를 발생시키지 않으며, 자동성을 높이게 될 수 있다는 효과가 얻어진다.As described above, according to the graphical user interface search system and the search method according to the present invention, both static and dynamic analysis are simultaneously used, so that an erroneous result is not generated and automaticness is enhanced.

즉, 본 발명에 따르면, 기존 방법들과 다르게 그래픽 사용자 인터페이스들 간의 순서 의존성을 파악하기 위해서 동적 방법을 이용하므로, 직접적인 실행을 이용한 동적 방법을 이용할 경우 잘못된 결과를 만들어 내지 않으며, 사람의 개입을 필요로 하지 않은 완벽한 자동성을 제공할 수 있다.That is, according to the present invention, a dynamic method is used to grasp order dependency between graphical user interfaces differently from existing methods. Therefore, when a dynamic method using direct execution is used, it does not produce a wrong result and requires human intervention It is possible to provide perfect automatism.

또, 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템 및 검색 방법에 의하면, 분석한 순서에 상관없이 실행 가능한 그래픽 사용자 인터페이스 요소들은 소프트웨어 테스팅에 활용되어 더 높은 커버리지를 달성할 수 있다는 효과도 얻어진다.
Further, according to the graphical user interface search system and the search method according to the present invention, graphical user interface elements that can be executed regardless of the analyzed order can be utilized in software testing to achieve higher coverage.

도 1은 종래의 소프트웨어 정적 테스팅 장치의 구성을 도시한 도면,
도 2는 본 발명에 적용되는 자동화된 블랙박스 테스팅 구조를 나타내는 도면,
도 3은 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템의 구성도,
도 4는 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 방법을 설명하기 위한 흐름도.
1 shows a configuration of a conventional software static testing apparatus,
Figure 2 shows an automated black box testing architecture applied to the present invention,
3 is a block diagram of an executable graphical user interface retrieval system according to the present invention;
4 is a flowchart illustrating an executable graphical user interface retrieval method according to the present invention.

본 발명의 상기 및 그 밖의 목적과 새로운 특징은 본 명세서의 기술 및 첨부 도면에 의해 더욱 명확하게 될 것이다.These and other objects and novel features of the present invention will become more apparent from the description of the present specification and the accompanying drawings.

먼저 본 발명에 따른 특징에 대해 기술한다.First, features according to the present invention will be described.

본 발명은 소프트웨어 검증 분야에 활용될 수 있는 것으로서, 특히 구체적인 내부 정보 없이 검증해야하는 블랙박스 검증 기법에 활용되어 높은 커버리지를 달성 수 있다. 그래픽 사용자 인터페이스 간의 순서 의존성을 파악해서 의존성이 없는 독립적인 그래픽 사용자 인터페이스가 발견되면, 이러한 정보는 각각의 테스팅 시작점으로 활용될 수 있다. 기존의 단일 시작 지점의 그래픽 사용자 인터페이스를 활용한 블랙박스 테스팅과 다르게 분석된 다수의 의존성이 없는 그래픽 사용자 인터페이스를 이용할 경우 더 높은 커버리지를 달성할 수 있다.The present invention can be utilized in the field of software verification, and can be utilized in a black box verification technique to be verified without specific internal information, thus achieving high coverage. If an independent graphical user interface is found that does not depend on the order dependency of the graphical user interface, this information can be used as a starting point for each test. Higher coverage can be achieved by using a graphical user interface with many dependencies that is different from black box testing using an existing single-point graphical user interface.

또한, 기존의 기술은 사람의 개입을 필요로 한다. 따라서 현재 급증하고 있는 앱 마켓 시장을 포용할 수 없다. 현재 앱 마켓에 등록된 소프트웨어의 수는 100만개 이상이며, 이러한 소프트웨어를 모두 검증하기 위해서는 높은 커버리지를 보장하며 자동화를 지원하는 기술이 필요하다. 본 발명은 이러한 두 가지 측면을 모두 충족하기 때문에 현재의 모바일 시장에 매우 적합하다.In addition, existing techniques require human intervention. Therefore, we can not embrace the rapidly growing app market. Currently, there are more than one million registered applications in the app market. To validate all of these software, high coverage and automation support technologies are required. The present invention is well suited to the current mobile market because it meets both of these aspects.

기존 소프트웨어 테스팅 시작은 크게 화이트 박스와 블랙박스 부분으로 나누어진다. 본 발명은 순서에 상관없이 실행 가능한 그래픽 사용자 인터페이스를 자동으로 분석하기 때문에 블랙박스 테스팅 분야에 적극적으로 사용될 수 있다. 또 소프트웨어의 신뢰성을 보장하기 위해서는 테스팅 기술이 필수적이며, 현재의 앱 스토어 같이 엄청난 테스팅을 필요로 하는 시장을 고려해 볼 때 자동 테스팅은 매우 중요한 기술이다. 따라서 본 발명은 자동성을 제공하며 블랙박스 테스팅에 활용될 수 있다는 점에서 매우 경제성이 높은 기술이다. Existing software testing is largely divided into white box and black box parts. The present invention can be actively used in the field of black box testing because it automatically analyzes an executable graphical user interface in any order. In addition, testing techniques are essential to ensure the reliability of software, and auto-testing is a very important technology when it comes to markets that require massive testing, such as the current App Store. Therefore, the present invention is highly economical in that it provides automability and can be utilized in black box testing.

다음에, 도 2에 따라 본 발명에 사용되는 블랙박스 테스팅 구조에 대해 기술한다. 도 2는 본 발명에 적용되는 자동화된 블랙박스 테스팅 구조를 나타내는 도면이다.Next, the black box testing structure used in the present invention will be described with reference to FIG. 2 is a diagram showing an automated black box testing structure applied to the present invention.

도 2에 도시된 바와 같이, 본 발명에서 제안한 방법은 호스트 부분과 타겟 두 부분으로 나눠진다. 호스트 부분은 자동 테스팅을 위해서 설치파일 리버싱, 액티비티 순서 분석, 이벤트 발생, 로거 모듈들로 구성된다. 각각의 모듈들은 파이썬(Python)으로 개발되었다. 타겟 부분은 자동 테스팅을 위해서 사용한 안드로이드 컴포넌트들을 나타낸다. 해당 안드로이드 컴포넌트들은 자동 테스팅을 위해서 약간 수정하였다. 수정을 위해서 시아노겐 모드(Cyanogen-mod-7)의 넥서스원(Nexus-one)버전을 사용했다.As shown in FIG. 2, the method proposed by the present invention is divided into a host portion and a target portion. The host part consists of installation file reversing, activity sequence analysis, event generation, and logger modules for automated testing. Each module was developed in Python. The target part represents the Android components used for automated testing. The corresponding Android components have been slightly modified for automated testing. We used the Nexus-one version of Cyanogen-mod-7 for modification.

전체적인 자동 테스팅 진행 과정은 다음과 같다. 안드로이드 설치파일인(.apk) 파일로부터 액티비티 정보들을 추출한 다음, 자동으로 각각의 액티비티들에 대한 순서 의존성을 파악한다. 그 후에, 순서에 상관없이 실행 가능한 각각의 액티비티들에 대해서 무작위 이벤트를 이용한 GUI 테스팅을 수행하고 실시간으로 테스팅 결과를 기록한다. 마지막으로 테스팅 결과를 요약해서 보여주게 된다. 각 모듈에 대한 상세한 설명과 구현 내용은 다음과 같다.The overall process of auto-testing is as follows. It extracts the activity information from the Android installation file (.apk) file and automatically grasps the order dependency of each activity. After that, GUI testing using random events is performed for each of the executable activities in any order, and the test results are recorded in real time. Finally, the test results are summarized. The detailed description and implementation details of each module are as follows.

설치파일 리버싱 모듈: 응용프로그램의 설치파일에서 중요한 내부 정보를 담고 있는 매니페스트(Manifest.xml)파일을 역패키징 기술을 이용해서 얻어낸다. 이 파일을 파싱해서 응용프로그램의 패키지 이름, 버전, 액티비티, 퍼미션 정보 등을 알아내며, 응용프로그램을 타겟에 설치한다.Setup File Reversing Module: Obtains a manifest (Manifest.xml) file containing important internal information from the application's installation files using reverse packaging techniques. This file is parsed to determine the package name, version, activity, and permission information of the application, and installs the application on the target.

액티비티 순서 분석 모듈: 안드로이드 GUI를 구성하는 기본단위는 액티비티며, 응용프로그램은 메인 액티비티로부터 시작해서 이벤트에 따라서 다른 종류의 액티비티로 넘어가게 된다. 응용프로그램의 액티비티들은 액티비티 관리자(Activity Manager)에 의해서 등록되고 관리된다. 해당 모듈에서는 응용프로그램의 액티비티 정보와 액티비티 관리자를 이용해서 순서에 상관없이 실행 가능한 액티비티들을 자동으로 분석하는 작업을 하며, 방법은 다음과 같다. 액티비티 실행을 담당할 새로운 프로세스를 생성한다. 생성한 프로세스는 응용프로그램에 정의된 액티비티들 중 분석되지 않은 것을 한 개 가져온다. 그 다음 액티비티 관리자에게 그것을 실행하게 하는 명령을 내린다. 액티비티 관리자는 의존성이 없는 액티비티의 경우 정상적으로 실행결과를 호스트로 응답하게 된다. 이 경우에는 순서에 상관없이 실행 가능한 액티비티로 판단하고 결과를 저장한다. 하지만, 데이터베이스 정보와 같은 특정 파라미터를 필요로 해서, 순서에 의존적인 액티비티일 경우 결과가 반환되지 않으며, GUI 크래쉬가 발생 된다. 이 경우에는 액티비티 실행을 담당하는 생성한 프로세스를 시그널을 이용해서 종료시킨다. 그리고 액티비티 관리자를 이용해서 해당 응용프로그램을 강제 종료 시킨다. 의존성을 파악할 액티비티가 남아있으면, 위의 과정을 반복하게 된다.Activity Sequence Analysis Module: The basic unit that composes the Android GUI is activity, and the application starts from the main activity and goes to different kinds of activities according to the event. The activities of the application are registered and managed by the Activity Manager. In this module, the activity information of the application program and the activity manager are used to automatically analyze the executable activities regardless of the order, and the method is as follows. Create a new process to run the activity. The generated process gets one of the activities defined in the application that has not been analyzed. Then give the activity manager a command to run it. The activity manager normally responds to the host with the execution results in case of an activity that has no dependency. In this case, it is judged to be an executable activity regardless of the order, and the result is stored. However, it requires certain parameters such as database information, and if the activity is sequence-dependent, no results are returned and a GUI crash occurs. In this case, the created process that is responsible for executing the activity is terminated using the signal. Then use the Activity Manager to kill the application. If there are still activities to identify dependencies, the above process is repeated.

이벤트 발생 모듈: 기존의 몽키의 테스팅 시작은 항상 메인 액티비티였던 것과 다르게, 본 발명의 방법은 분석을 통해 알아낸 순서에 상관없이 실행 가능한 액티비티들에 대해서 무작위 이벤트 생성을 통한 GUI 테스팅을 수행한다. 이를 위해서 안드로이드 플랫폼의 몽키 서버(Monkey Server) 부분을 수정하여, 지정된 액티비티에 대해서 테스팅이 가능하도록 했다.Event Generation Module: Unlike conventional Monkey testing start is always the main activity, the method of the present invention performs GUI testing through random event generation for executable activities irrespective of the order of analysis through the analysis. To do this, we modified the Monkey Server part of the Android platform so that we can test for the specified activity.

로거 모듈: 테스팅의 모든 과정에 대한 결과를 각각의 응용프로그램에 맞추어서 파일에 저장 한다. 테스팅 결과는 설치와 제거에 대한 성공 여부, 액티비티 커버리지 정보, GUI 크래쉬 발생 수와 상세한 에러 메시지 정보로 구성된다.
LOGGER MODULE: Store the results of all the tests in a file for each application. The test results consist of success and failure of installation and removal, activity coverage information, number of GUI crashes, and detailed error message information.

이하, 본 발명의 특징적인 구성을 도 3에 따라서 설명한다.Hereinafter, the characteristic configuration of the present invention will be described with reference to FIG.

도 3은 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템의 구성도로서, 도 3은 그래픽 사용자 인터페이스 요소들 중에서 순서에 상관없이 실행 가능한 것들을 찾는 시스템을 나타낸다.FIG. 3 is a block diagram of an executable graphical user interface retrieval system according to the present invention, wherein FIG. 3 illustrates a system for finding executable graphical user interface elements in any order.

도 3에 도시된 바와 같이, 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템은 순서 없이 실행 가능한 그래픽 사용자 인터페이스를 찾는 시스템으로서, 소스코드 또는 역컴파일 기술을 이용해서 직접적인 실행 없이 그래픽 사용자 인터페이스에 대한 기초 정보를 분석하는 정적 분석 수단(100)과 상기 정적 분석 수단(100)에서 분석된 기초 정보에 따라 순차적으로 각각의 요소들을 실행하는 동적 분석 수단(200)을 포함한다. As shown in Figure 3, an executable graphical user interface retrieval system according to the present invention is a system for finding a graphical user interface that can be executed in an orderless manner, A static analyzing means 100 for analyzing information and a dynamic analyzing means 200 for sequentially executing the respective elements according to the basic information analyzed by the static analyzing means 100.

상기 정적 분석 수단(100)과 동적 분석 수단(200)은 프로세서와 메모리를 구비한 PC, 노트북, 넷북, PDA, 모바일, 스마트폰에 의해 실행되거나 프로그램에 의해 실행될 수 있다.The static analysis means 100 and the dynamic analysis means 200 may be executed by a PC, a notebook, a netbook, a PDA, a mobile phone, a smart phone, or a program having a processor and a memory.

상기 동적 분석 수단(200)은 상기 정적 분석 수단(100)에서 분석된 기초 정보를 이용해서 순차적으로 각각의 요소들을 실행하고, 실행 결과를 분석하여 해당 그래픽 사용자 인터페이스가 순서에 상관없이 실행 가능한지를 최종적으로 검색한다.The dynamic analyzing means 200 sequentially executes the respective elements using the analyzed basic information and analyzes the execution results to determine whether the corresponding graphical user interface can be executed in any order .

상기 정적 분석 수단(100)은 그래픽 사용자 인터페이스 기초 정보를 읽어내는 기초 정보 분석기(110)와 상기 기초 정보를 저장하는 기초 정보 저장부(120)를 포함한다.The static analysis unit 100 includes a basic information analyzer 110 that reads basic information of the graphic user interface and a basic information storage unit 120 that stores the basic information.

상기 기초 정보 분석기(110)는 그래픽 사용자 인터페이스의 기초 정보 분석기로써 요소들의 종류, 크기, 배치, 색 등과 같은 실제 표현을 위한 정보를 알아낸다. 이러한 정보들은 소스 코드 또는 이진 코드로부터 알아낼 수 있다. 즉, 상기 기초 정보 분석기(110)는 소스코드나, 역컴파일 기술을 이용해서 직접적인 실행 없이 그래픽 사용자 인터페이스에 대한 기초 정보를 알아낸다. 구체적으로 버튼, 텍스트 박스 등과 같은 각각의 그래픽 사용자 인터페이스 요소들의 종류와 크기, 배치, 색 등을 추출하여 분석한다. The basic information analyzer 110 is a basic information analyzer of a graphical user interface, and obtains information for an actual expression such as type, size, layout, color, and the like of elements. This information can be obtained from source code or from binary code. That is, the basic information analyzer 110 obtains basic information about the graphical user interface without directly executing it using the source code or the decompiling technique. Specifically, the type, size, arrangement, and color of each graphic user interface element such as a button, a text box, and the like are extracted and analyzed.

상기 기초 정보 저장부(120)는 상기 기초 정보 분석기(110)에 의해서 분석된 그래픽 사용자 인터페이스에 대한 정보를 저장하고, 저장된 정보를 이용해서 실제 그래픽 인터페이스 요소들을 그리며, 이를 동적 분석 수단(200)으로 전달한다.The basic information storage unit 120 stores information on the graphical user interface analyzed by the basic information analyzer 110, draws actual graphical interface elements using the stored information, and outputs the graphical user interface information to the dynamic analysis unit 200 .

상기 동적 분석 수단(200)은 상기 기초 정보 저장부(120)로부터 기초정보를 읽어와 순차적으로 그래픽 사용자 인터페이스를 표시하는 작업을 생성하고 이를 분석하는 순서 분석 제어기(210), 상기 순서 분석 제어기(210)에 의해서 할당된 작업을 담당하여 실제적인 그래픽 사용자 인터페이스를 생성하여 표시하는 그래픽 사용자 인터페이스 표시기(220), 상기 그래픽 사용자 인터페이스 표시기(220)에 의해서 전자기기 상에 실제 표현된 정보가 정상적으로 출력되는지를 판단하는 실행결과 판단부(230) 및 분석된 그래픽 사용자 인터페이스 요소를 저장하는 사용자 인터페이스 요소 저장부(240)를 포함한다.The dynamic analysis unit 200 includes a sequence analysis controller 210 for generating a task for sequentially reading basic information from the basic information storage unit 120 and sequentially displaying a graphical user interface, A graphical user interface (GUI) indicator 220 for generating and displaying an actual graphical user interface in charge of a task assigned by the graphic user interface controller 220, and a display unit 220 for displaying whether the information actually displayed on the electronic device is normally output And a user interface element storage unit 240 for storing analyzed graphical user interface elements.

상기 순서 분석 제어기(210)는 순서에 상관없이 실행 가능한 그래픽 사용자 인터페이스를 분석하기 위해서 직접적인 실행을 이용한다. 이때 각각의 실행을 제어하는 기능을 담당한다. 상기 순서 분석 제어기(210)는 상기 기초 정보 저장부(120)로부터 순차적으로 그래픽 사용자 인터페이스의 기초정보를 읽어 와서 정보를 표시하는 기능을 담당하는 그래픽 사용자 인터페이스 표시기(220)로 해당 정보를 보내고 결과를 기다린다. 그래픽 사용자 인터페이스 표시기(220)에서의 결과에 따라 정상적으로 수행되었다면, 다음 그래픽 사용자 인터페이스 기초 정보를 이용해서 다시 표시 실행을 명령하고, 그래픽 사용자 인터페이스 표시기(220)에서 문제가 있다면, 해당 작업을 강제 종료시키고 오류를 처리하게 한다. 본 발명에서는 이와 같은 처리를 통해서 안정적으로 작업자의 개입 없이도 분석을 계속 할 수 있다.The sequence analysis controller 210 uses direct execution to analyze an executable graphical user interface in any order. At this time, it is responsible for controlling each execution. The sequence analysis controller 210 reads the basic information of the graphical user interface sequentially from the basic information storage unit 120 and sends the information to the graphical user interface indicator 220 which is responsible for displaying information, waiting. If it is normally performed according to the result of the graphical user interface indicator 220, the execution of the display is instructed again using the next graphical user interface basic information. If there is a problem in the graphical user interface indicator 220, the corresponding operation is forcibly terminated Have the error handled. According to the present invention, the analysis can be continued without intervention of the operator stably through such processing.

상기 그래픽 사용자 인터페이스 표시기(220)는 기초 정보를 이용해서 실행을 통한 직접적인 표현을 수행한다. 이때 해당 그래픽 사용자 인터페이스가 특정 사전 데이터에 의존적이라면 표시도중 오류가 발생한다. 상기 그래픽 사용자 인터페이스 표시기(220)는 일반적인 그래픽 사용자 인터페이스를 표시하는 기능을 하며 사전 데이터 의존성 같은 어떠한 분석도 수행하지 않고, 단순히 기초정보를 이용해서 표시하는 기능을 담당한다.The graphical user interface indicator 220 performs direct representation through execution using basic information. At this time, if the corresponding graphical user interface is dependent on specific dictionary data, an error occurs during display. The graphical user interface indicator 220 functions to display a general graphical user interface and does not perform any analysis such as dictionary data dependency, but merely displays the graphical user interface using the basic information.

상기 실행결과 판단부(230)는 상기 그래픽 사용자 인터페이스 표시기(220)에 의해서 표시된 그래픽 사용자 인터페이스가 정상적으로 표시되었는지를 판단한다.즉, 오류 메시지, 콜 스택 정보 등을 이용해서 정상적으로 표시 가능한 그래픽 사용자 인터페이스 요소인지를 분석하고, 정상적으로 표시가 되었다면 해당 그래픽 사용자 인터페이스 요소는 순서에 상관없이 실행 가능하다고 판단하여 사용자 인터페이스 요소 저장부(240)로 보내고, 아니라면, 순서 분석 제어기(210)로 이러한 결과를 통지한다.The execution result determination unit 230 determines whether the graphical user interface displayed by the graphical user interface indicator 220 is normally displayed. That is, the execution result determination unit 230 determines whether the graphical user interface is displayed normally, using an error message, call stack information, If it is normally displayed, the corresponding graphical user interface element is determined to be executable regardless of the order and sent to the user interface element storage unit 240, otherwise, the result is notified to the order analysis controller 210.

상기 사용자 인터페이스 요소 저장부(240)는 최종적으로 순서에 상관없이 실행 가능한 그래픽 사용자 인터페이스 요소를 저장하고, 이러한 정보는 다양한 소프트웨어 테스팅 기법에 활용된다.The user interface element storage unit 240 finally stores executable graphical user interface elements regardless of the order, and this information is utilized in various software testing techniques.

다음에 도 4에 따라 본 발명의 실행 가능한 그래픽 사용자 인터페이스 검색 방법을 설명한다.Next, an executable graphical user interface retrieval method of the present invention will be described with reference to FIG.

도 4는 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating an executable graphical user interface searching method according to the present invention.

본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색은 순서 없이 실행 가능한 그래픽 사용자 인터페이스를 찾는 방법으로서, 먼저 소프트웨어 명세, 소스코드 및 실행코드로부터 그래픽 사용자 인터페이스를 나타내는 기본 요소들에 대한 정보를 기초 정보 분석기(110)에서 분석한다(S10). 이와 같은 분석에 의해 요소들의 종류, 크기, 배치, 색 등과 같은 실제 표현을 위한 정보를 알아낼 수 있다.An executable graphical user interface search according to the present invention is a method for finding a graphical user interface that can be executed in an orderly manner. First, information on basic elements representing a graphical user interface from a software specification, source code, ) (S10). By such an analysis, information for actual expression such as kind, size, arrangement, color, etc. of elements can be obtained.

상기 단계 S10에서 분석된 그래픽 사용자 인터페이스 기초 정보를 기초 정보 저장부(120)에 저장되고(S20), 순서 분석 제어기(210)로 전송된다. The graphic user interface basic information analyzed in step S10 is stored in the basic information storage unit 120 (S20) and transmitted to the sequence analysis controller 210. [

상기 단계 S20에서 저장된 기초정보를 순서 분석 제어기(210)에서 읽어와 순차적으로 그래픽 사용자 인터페이스를 표시하는 작업을 생성하고 이를 분석하고(S30), 정상인기 아닌가를 판단한다(S40). The basic information stored in step S20 is read by the order analysis controller 210, and a job of sequentially displaying a graphical user interface is created and analyzed (S30), and it is determined whether the user is normal or not (S40).

상기 단계 S40에서 정상인 것으로 판단되면, 상기 순서 분석 제어기(210)에 의해서 할당된 작업을 담당하여 실제적인 그래픽 사용자 인터페이스를 생성하여 그래픽 사용자 인터페이스 표시기(220)에 표시하게 한다(S50).If it is determined in step S40 that the operation is normal, the sequence analyzing controller 210 takes charge of the tasks assigned to the sequence analyzing controller 210 to generate an actual graphical user interface and display the graphical user interface on the graphical user interface indicator 220 in operation S50.

한편, 상기 단계 S40에서 정상이 아닌 것으로 판단되면, 강제 종료하고(S60), 상기 단계 S30으로 진행하여 상기 단계 S20에서 저장된 다른 기초 정보에 대해 계속하여 분석을 실행한다.On the other hand, if it is determined in step S40 that it is not normal, the process is forcibly terminated (S60), and the process proceeds to step S30 where the analysis is continuously performed on the other basic information stored in step S20.

다음에 상기 단계 S50에 의해서 전자기기 상에 실제 표현된 정보가 정상적으로 출력되는지를 실행결과 판단부(230)에서 판단한다(S70).Next, in step S70, the execution result determination unit 230 determines whether the information actually displayed on the electronic device is normally output in step S50.

상기 단계 S70에서 정상으로 판단되는 경우, 순서에 상관없이 실행 가능한 그래픽 사용자 인터페이스 요소를 사용자 인터페이스 요소 저장부(240)에 저장하고(S80), 상기 단계 S30으로 진행하여 상술한 과정을 반복한다.If it is determined in step S70 that it is normal, the executable graphical user interface element is stored in the UI element storage unit 240 regardless of the order (S80), and the above-described process is repeated by proceeding to step S30.

한편, 상기 단계S70에서 정상으로 판단되지 않은 경우, 순서 분석 제어기(210)로 통지하고, 상기 단계 S30으로 진행하여 상기 단계 S20에서 저장된 다른 기초 정보에 대해 분석을 계속 실행한다.
On the other hand, if it is not determined to be normal in the step S70, the sequence analysis controller 210 is notified, and the process proceeds to the step S30 and continues to analyze the other basic information stored in the step S20.

상술한 바와 같이 본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 방법에 의한 실험 결과는 하기와 같다.As described above, the experimental results of the executable graphical user interface searching method according to the present invention are as follows.

본 발명에서 자동성과 효율성을 검증하기 위해 수행한 두 가지 실험에 대해서 설명한다. 두 실험 모두 제안한 방법과 기존 몽키를 이용해서 수행한 다음 결과를 비교했다. 첫 번째는 오픈소스 응용프로그램인 워드프레스(WordPress)에 대해서 코드 커버리지를 측정하고 알려진 GUI 버그의 검출률을 보이는 실험이다. 두 번째는 앱 마켓에서 선별한 20개에 대해서 액티비티 커버리지를 측정하고 GUI 크래쉬를 검출하는 실험이다.In the present invention, two experiments performed to verify the automaticity and the efficiency will be described. Both experiments compared the results obtained using the proposed method and the existing Monkey. The first is an experiment that measures code coverage for the open source application WordPress and shows the detection rate of known GUI bugs. The second is an experiment that measures activity coverage and detects GUI crashes for the 20 selected app markets.

먼저, 오픈소스 응용프로그램의 커버리지 측정을 실험하였다.First, we measured the coverage of open source applications.

즉, 본 발명의 방법의 효율성을 검증하기 위해서 코드 커버리지와 알려진 버그들을 검출하는 실험을 했다. 코드 커버리지 측정을 위해서 오픈 소스 응용프로그램인 워드프레스를 이용했으며, 넥서스원에서 실험했다. 워드프레스는 블로그 활동 지원을 위한 응용으로, 4년간의 변경 이력을 확인할 수 있다. 선택한 버전은 깃 커밋 해시(Git commit hash) 66846425이다. 워드프레스에 두 개의 계정을 연동시키고 각각의 블로그에는 멀티미디어 데이터를 포함한 여러 포스트들을 추가했다. 코드 커버리지를 측정하기 위해서 추가로 안드로이드 인스트루먼테이션 클래스(Android Instrumentation Class)와 몽키 라이브러리 그리고 엠마(EMMA)를 이용했다.In other words, in order to verify the efficiency of the method of the present invention, an experiment was conducted to detect code coverage and known bugs. We used WordPress, an open source application for code coverage measurements, and experimented on the Nexus One. WordPress is an application to support blogging activities, so you can check the change history for 4 years. The version you chose is Git commit hash 66846425. I linked two accounts to WordPress and added several posts to each blog, including multimedia data. To measure code coverage, we also used the Android Instrumentation Class, the Monkey Library, and Emma (EMMA).

실험을 위한 테스팅 시나리오는 다음과 같다. 구현된 도구를 이용해서 무작위 이벤트 2,000개를 자동으로 분석한 독립적인 액티비티에 대해서 테스팅 하도록 했다. 독립적인 액티비티는 14개가 있었고, 총 28,000개의 무작위 이벤트를 이용한 테스팅이 수행되었다. 같은 조건으로 테스팅 하기 위해서 기존 몽키를 이용한 테스팅의 경우 2,000개의 무작위 이벤트를 이용해서 메인 액티비티를 시작으로 14번 테스팅을 했다.The testing scenario for the experiment is as follows. We used the implemented tools to test for an independent activity that automatically analyzed 2,000 random events. There were 14 independent activities and a total of 28,000 random events were tested. For testing with the same conditions, we tested 14 times starting with the main activity using 2,000 random events in the case of traditional Monkey testing.

두 방법을 이용한 실험 결과, 본 발명에 따른 방법은 구문과 함수 커버리지를 각각 32%와 34%를 달성했으며, 액티비티 커버리지는 59.2%를 달성했다. 이러한 결과는 같은 조건에서 몽키를 이용해서 테스팅 했을 때보다 구문 커버리지가 15% 높은 수치이다. 또한, 종래의 몽키를 이용해서 4.46시간 동안 45,000개의 무작위 이벤트로 테스팅 했을 때 달성한 25.27%의 구문 커버리지 보다 높은 수치이었다.As a result of the experiment using the two methods, the method according to the present invention achieved syntax and function coverage of 32% and 34%, respectively, and activity coverage achieved 59.2%. These results are 15% higher in syntax coverage than when tested using Monkey under the same conditions. It was also higher than the 25.27% syntactic coverage achieved when testing with 45,000 random events over 4.46 hours using conventional Monkey.

다음에 마켓 응용프로그램들의 커버리지 측정을 실험하였다.Next, we measured the coverage of market applications.

본 발명의 효율성을 실제 마켓 응용프로그램들에 대해서도 입증하기 위해서 실험을 했다. 실험에 사용한 20개의 응용프로그램들은 다양한 카테고리와 평점 그리고 누적 다운로드를 가진다. 실험은 응용프로그램의 설치파일만을 가지고 수행했기 때문에, 블랙박스 수준의 결과만을 얻어냈다. 우선, 액티비티 커버리지에 대한 실험 결과는 본 발명에 따른 방법의 평균 액티비티 커버리지는 64%를 나타냈으며, 기존의 몽키의 경우 22%를 나타냈다. 퍼팩트 뷰어(PerfectViewer) 응용프로그램의 경우 본 발명의 방법으로 100% 액티비티 커버리지를 달성했다. 또한 몇몇 응용프로그램의 경우 기존 몽키보다 3배 이상 높은 액티비티 커버리지를 달성했다. 20개의 응용프로그램에 대해서 크래쉬를 분석한 결과, 본 발명의 방법의 경우 9개의 응용프로그램들에 대해서 크래쉬를 검출할 수 있었다. 반면에, 기존 몽키의 경우에는 4개의 응용프로그램들에 대해서만 크래쉬가 검출되었다. 또한 각각의 응용프로그램에 대해서 최대 4배 이상 많은 크래쉬를 검출하였다. 이러한 결과는, 크래쉬의 검출 면에서도 본 발명이 우수하다는 것을 보여 준다.
Experiments were conducted to demonstrate the effectiveness of the present invention for real market applications. The 20 applications used in the experiment have different categories, ratings and cumulative downloads. Because the experiment was carried out with only the installation files of the application, we only got the results at the black box level. First, the results of the activity coverage test showed that the average activity coverage of the method according to the present invention was 64% and that of the conventional Monkey was 22%. For the PerfectViewer application, 100% activity coverage was achieved with the method of the present invention. In addition, some applications have achieved activity coverage three times higher than existing Monkeys. As a result of analyzing the crashes for 20 application programs, the method of the present invention was able to detect crashes in 9 application programs. On the other hand, in the case of the existing Monkey, only four application programs were found to have a crash. In addition, we detected a maximum of four times more crashes for each application. These results show that the present invention is also excellent in terms of detecting a crash.

이상 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
Although the present invention has been described in detail with reference to the above embodiments, it is needless to say that the present invention is not limited to the above-described embodiments, and various modifications may be made without departing from the spirit of the present invention.

본 발명에 따른 실행 가능한 그래픽 사용자 인터페이스 검색 시스템 및 검색 방법을 사용하는 것에 의해 기존의 몽키를 이용한 테스팅 방법보다 높은 코드 커버리지와 GUI 버그의 검출을 나타내므로, 안드로이드 마켓에 있는 GUI 버그를 포함하는 응용프로그램들을 걸러낼 수 있을 것이다.
The present invention can provide a high coverage of code coverage and detection of GUI bugs by using an executable graphical user interface search system and a search method according to the present invention. Therefore, it is possible to provide an application program including a GUI bug in the Android Market You will be able to filter out them.

100 : 정적 분석 수단
110 : 기초 정보 분석기
120 : 기초 정보 저장부
200 : 동적 분석 수단
210 : 순서 분석 제어기
220 : 그래픽 사용자 인터페이스 표시기
230 : 실행결과 판단부
240 : 사용자 인터페이스 요소 저장부
100: static analysis means
110: Basic information analyzer
120: Basic information storage unit
200: Dynamic analysis means
210: Sequence Analysis Controller
220: Graphical user interface indicator
230: execution result judgment unit
240: User interface element storage unit

Claims (11)

순서에 상관없이 실행 가능한 그래픽 사용자 인터페이스를 찾는 시스템으로서,
소스코드 또는 역컴파일 기술을 이용해서 직접적인 실행 없이 그래픽 사용자 인터페이스에 대한 기초 정보를 분석하는 정적 분석 수단과
상기 정적 분석 수단에서 분석된 기초 정보에 따라 순차적으로 각각의 요소들을 실행하는 동적 분석 수단을 포함하고,
상기 동적 분석 수단은 상기 기초 정보 저장부로부터 기초정보를 읽어와 순차적으로 그래픽 사용자 인터페이스를 표시하는 작업을 생성하고 이를 분석하는 순서 분석 제어기, 상기 순서 분석 제어기에 의해서 할당된 작업을 담당하여 실제적인 그래픽 사용자 인터페이스를 생성하여 표시하는 그래픽 사용자 인터페이스 표시기 및 분석된 그래픽 사용자 인터페이스 요소를 저장하는 사용자 인터페이스 요소 저장부를 포함하는 것을 특징으로 하는 실행 가능한 그래픽 사용자 인터페이스 검색 시스템.
A system for finding an executable graphical user interface in any order,
Static analysis means for analyzing basic information about the graphical user interface without direct execution using source code or decompile technology;
And dynamic analysis means for sequentially executing the respective elements according to the basic information analyzed by the static analysis means,
Wherein the dynamic analyzing means comprises: a sequence analyzing controller for generating a task for reading basic information from the basic information storing portion and sequentially displaying a graphical user interface, and analyzing the generated task; A graphical user interface indicator for generating and displaying a user interface, and a user interface element storage for storing analyzed graphical user interface elements.
제1항에 있어서,
상기 정적 분석 수단은 그래픽 사용자 인터페이스 기초 정보를 읽어내는 기초 정보 분석기와 상기 기초 정보를 저장하는 기초 정보 저장부를 포함하는 것을 특징으로 하는 실행 가능한 그래픽 사용자 인터페이스 검색 시스템.
The method according to claim 1,
Wherein the static analysis means includes a basic information analyzer for reading the basic information of the graphic user interface and a basic information storage for storing the basic information.
제2항에 있어서,
상기 동적 분석 수단은 상기 그래픽 사용자 인터페이스 표시기에 의해서 전자기기 상에 실제 표현된 정보가 정상적으로 출력되는지를 판단하는 실행결과 판단부를 더 포함하는 것을 특징으로 하는 실행 가능한 그래픽 사용자 인터페이스 검색 시스템.
3. The method of claim 2,
Wherein the dynamic analysis unit further comprises an execution result determination unit that determines whether information actually displayed on the electronic device is normally output by the graphic user interface indicator.
제2항에 있어서,
상기 기초 정보 분석기는 소프트웨어 명세, 소스코드 및 실행코드로부터 그래픽 사용자 인터페이스를 나타내는 기본 요소들에 대한 정보를 분석하고,
상기 기초 정보 저장부는 상기 기초 정보 분석부와 연결되어, 분석된 그래픽 사용자 인터페이스 기초 정보를 저장하는 것을 특징으로 하는 실행 가능한 그래픽 사용자 인터페이스 검색 시스템.
3. The method of claim 2,
The basic information analyzer analyzes information on basic elements representing a graphical user interface from a software specification, a source code, and an execution code,
Wherein the basic information storage unit is connected to the basic information analysis unit and stores the analyzed basic information of the graphical user interface.
제2항에 있어서,
상기 순서 분석 제어기는 상기 기초 정보 저장부와 연결되어, 그래픽 사용자 인터페이스 기초 정보를 순차적으로 읽어와서 정보를 표시하고, 정상적으로 수행되면, 다음 그래픽 사용자 인터페이스 기초 정보를 이용해서 다시 표시 실행을 명령하고, 문제가 있다면 해당 작업을 강제 종료시키고 오류를 처리하는 것을 특징으로 하는 실행 가능한 그래픽 사용자 인터페이스 검색 시스템.
3. The method of claim 2,
The sequence analyzing controller is connected to the basic information storage unit to sequentially read the graphical user interface basic information to display information, and when executed normally commands the display execution again using the next graphical user interface basic information, If it exists, forcibly terminates the job and processes the error.
제3항에 있어서,
상기 사용자 인터페이스 요소 저장부는 상기 실행결과 판단부와 연결되어, 분석된 그래픽 사용자 인터페이스 요소를 저장하는 것을 특징으로 하는 실행 가능한 그래픽 사용자 인터페이스 검색 시스템.
The method of claim 3,
Wherein the user interface element storage unit is connected to the execution result determination unit and stores the analyzed graphical user interface element.
제3항에 있어서,
상기 기초 정보는 버튼, 텍스트 박스의 그래픽 사용자 인터페이스 요소들의 종류와 크기, 배치, 색 중의 적어도 어느 하나인 것을 특징으로 하는 실행 가능한 그래픽 사용자 인터페이스 검색 시스템.
The method of claim 3,
Wherein the basic information is at least one of a type, a size, a layout, and a color of graphic user interface elements of a button and a text box.
제3항에 있어서,
상기 실행결과 판단부는 상기 그래픽 사용자 인터페이스 표시기에 정상적으로 표시가 되었다면 해당 그래픽 사용자 인터페이스 요소를 순서에 상관없이 실행 가능하다고 판단하여 상기 사용자 인터페이스 요소 저장부로 보내고, 정상적인 표시가 아닌 경우, 상기 순서 분석 제어기로 정상적인 표시가 아닌 결과를 통지하는 것을 특징으로 하는 실행 가능한 그래픽 사용자 인터페이스 검색 시스템.
The method of claim 3,
The execution result determination unit determines that the graphical user interface element is executable regardless of the order if it is normally displayed in the graphical user interface indicator, and sends the graphical user interface element to the user interface element storage unit. If the normal graphical user interface element is not displayed normally, And notifies a result that is not a display.
순서에 상관없이 실행 가능한 그래픽 사용자 인터페이스를 찾는 방법으로서,
(a) 소프트웨어 명세, 소스코드 및 실행코드로부터 그래픽 사용자 인터페이스를 나타내는 기본 요소들에 대한 정보를 기초 정보 분석기에서 분석하는 단계,
(b) 상기 단계 (a)에서 분석된 그래픽 사용자 인터페이스 기초 정보를 기초 정보 저장부에 저장하는 단계,
(c) 상기 단계 (b)에서 저장된 기초정보를 순서 분석 제어기에서 읽어와 순차적으로 그래픽 사용자 인터페이스를 표시하는 작업을 생성하고 이를 분석하는 단계,
(d) 상기 순서 분석 제어기에 의해서 할당된 작업을 담당하여 실제적인 그래픽 사용자 인터페이스를 생성하여 표시하는 단계,
(e) 상기 단계 (d)에 의해서 전자기기 상에 실제 표현된 정보가 정상적으로 출력되는지를 실행결과 판단부에서 판단하는 단계,
(f) 상기 단계 (e)에서 정상으로 판단되는 경우, 순서에 상관없이 실행 가능한 그래픽 사용자 인터페이스 요소를 사용자 인터페이스 요소 저장부에 저장하는 단계를 포함하는 것을 특징으로 하는 실행 가능한 그래픽 사용자 인터페이스 검색 방법.
A method for locating an executable graphical user interface in any order,
(a) analyzing in a basic information analyzer information about basic elements representing a graphical user interface from a software specification, a source code and an execution code,
(b) storing the graphical user interface basic information analyzed in the step (a) in a basic information storage unit,
(c) generating and analyzing a task of sequentially reading the basic information stored in the step (b) from the sequence analysis controller and sequentially displaying a graphical user interface,
(d) generating and displaying an actual graphical user interface by taking charge of the tasks assigned by the order analysis controller,
(e) determining, by the execution result determination unit, whether the information actually displayed on the electronic device is normally output by the step (d)
(f) storing an executable graphical user interface element in the user interface element storage, regardless of the order, if it is determined to be normal in the step (e).
제9항에 있어서,
상기 단계 (d)에서 정상이 아닌 것으로 판단되면, 강제 종료하고 상기 단계 (c)로 진행하여 상기 단계 (b)에서 저장된 다른 기초 정보에 대해 분석을 실행하는 것을 특징으로 하는 실행 가능한 그래픽 사용자 인터페이스 검색 방법.
10. The method of claim 9,
And if it is determined in step (d) that it is not normal, execution is terminated and analysis is performed on the other basic information stored in step (b) by proceeding to step (c) Way.
제9항에 있어서,
상기 단계 (e)에서 정상으로 판단되지 않은 경우, 순서 분석 제어기로 통지하고, 상기 단계 (c)로 진행하여 상기 단계 (b)에서 저장된 다른 기초 정보에 대해 분석을 실행하는 것을 특징으로 하는 실행 가능한 그래픽 사용자 인터페이스 검색 방법.
10. The method of claim 9,
And notifies the order analysis controller of the fact that it is not normal in the step (e), and proceeds to the step (c) and analyzes the other basic information stored in the step (b) Graphical user interface search method.
KR1020140135003A 2014-10-07 2014-10-07 Search system and method of executable GUI KR101513662B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140135003A KR101513662B1 (en) 2014-10-07 2014-10-07 Search system and method of executable GUI

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140135003A KR101513662B1 (en) 2014-10-07 2014-10-07 Search system and method of executable GUI

Publications (1)

Publication Number Publication Date
KR101513662B1 true KR101513662B1 (en) 2015-04-20

Family

ID=53053656

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140135003A KR101513662B1 (en) 2014-10-07 2014-10-07 Search system and method of executable GUI

Country Status (1)

Country Link
KR (1) KR101513662B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117369865A (en) * 2023-12-07 2024-01-09 麒麟软件有限公司 GNU linux universal application program packaging method and graphical application packer

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000031939A (en) * 1998-11-11 2000-06-05 이계철 Graphic user interface apparatus for development environment centered on design and method thereof
KR20060004921A (en) * 2003-03-24 2006-01-16 티엔에프 인포마 유케이 리미티드 Improvements relating to graphical user interfaces
KR20140033580A (en) * 2012-09-06 2014-03-19 주식회사 퓨전소프트 Method for generating activity based state diagram of android applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000031939A (en) * 1998-11-11 2000-06-05 이계철 Graphic user interface apparatus for development environment centered on design and method thereof
KR20060004921A (en) * 2003-03-24 2006-01-16 티엔에프 인포마 유케이 리미티드 Improvements relating to graphical user interfaces
KR20140033580A (en) * 2012-09-06 2014-03-19 주식회사 퓨전소프트 Method for generating activity based state diagram of android applications

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117369865A (en) * 2023-12-07 2024-01-09 麒麟软件有限公司 GNU linux universal application program packaging method and graphical application packer
CN117369865B (en) * 2023-12-07 2024-04-05 麒麟软件有限公司 GNU linux universal application program packaging method and graphical application packer

Similar Documents

Publication Publication Date Title
US9940225B2 (en) Automated error checking system for a software application and method therefor
Arcuri et al. Black-box system testing of real-time embedded systems using random and search-based testing
US8756460B2 (en) Test selection based on an N-wise combinations coverage
US8839203B2 (en) Code coverage-based taint perimeter detection
US20080028378A1 (en) Utilizing prior usage data for software build optimization
US7895575B2 (en) Apparatus and method for generating test driver
US9274930B2 (en) Debugging system using static analysis
CN106776338B (en) Test method, test device and server
JP6142705B2 (en) Iterative generation of symbolic test drivers for object-oriented languages
CN111459495A (en) Unit test code file generation method, electronic device and storage medium
US20170075789A1 (en) Method and apparatus for generating, capturing, storing, and loading debug information for failed tests scripts
CN111897727A (en) Software testing method and device, computer equipment and storage medium
CN111859380A (en) Zero false alarm detection method for Android App vulnerability
Usman et al. TEGDroid: Test case generation approach for android apps considering context and GUI events
CN112419057A (en) Method, device, equipment and storage medium for generating and storing logs of intelligent contracts
CN108572892B (en) PowerPC multi-core processor-based offline test method and device
US10592703B1 (en) Method and system for processing verification tests for testing a design under test
CN103365772B (en) Software test automatic evaluation device and method
Peters et al. How does migrating to kotlin impact the run-time efficiency of android apps?
US9176846B1 (en) Validating correctness of expression evaluation within a debugger
KR20140088963A (en) System and method for testing runtime error
KR101513662B1 (en) Search system and method of executable GUI
US20070061781A1 (en) Stochastic testing directed by static test automation
US9710360B2 (en) Optimizing error parsing in an integrated development environment
CN107844703B (en) Client security detection method and device based on Android platform Unity3D game

Legal Events

Date Code Title Description
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180406

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 5