KR101637371B1 - 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법 - Google Patents

스마트기기용 어플리케이션의 테스트 시스템 및 그 방법 Download PDF

Info

Publication number
KR101637371B1
KR101637371B1 KR1020140177311A KR20140177311A KR101637371B1 KR 101637371 B1 KR101637371 B1 KR 101637371B1 KR 1020140177311 A KR1020140177311 A KR 1020140177311A KR 20140177311 A KR20140177311 A KR 20140177311A KR 101637371 B1 KR101637371 B1 KR 101637371B1
Authority
KR
South Korea
Prior art keywords
application
scene
information
test
event
Prior art date
Application number
KR1020140177311A
Other languages
English (en)
Other versions
KR20160070410A (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 KR1020140177311A priority Critical patent/KR101637371B1/ko
Publication of KR20160070410A publication Critical patent/KR20160070410A/ko
Application granted granted Critical
Publication of KR101637371B1 publication Critical patent/KR101637371B1/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
    • 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/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 스마트기기용 어플리케이션 프로그램의 테스트 방법 및 그 시스템에 관한 것으로서, 보다 상세하게는, 통신망을 통하여 접속한 사용자단말기에서 실행되는 어플리케이션의 문서객체모델정보를 추출하고 추출된 문서객체모델 정보에 기초하여 해당 어플리케이션의 이벤트 정보를 수집하고 이를 데이터베이스에 저장하는 문서객체모델 추출부와, 수집된 이벤트 정보에 기초하여 이벤트 실행시의 장면 이미지들을 트리 구조로 표시하는 시나리오 생성부와, 상기 트리 구조로 표시된 이벤트 실행시의 장면 이미지들을 선택하여 어플리케이션의 테스트를 위한 시나리오를 생성하고 생성된 시나리오에 따라서 어플리케이션의 테스트를 수행하는 테스트 수행부와, 사용자가 선택할 수 있도록 기 설정된 테스트 시나리오를 사용자에게 자동적으로 제공하는 룰 기반 엔진(rule-based engine)이 수행되는 테스트 관리부와, 상기 테스트 수행부에 의하여 수행된 테스트의 결과를 생성하여 사용자단말기에 표시하는 결과 생성부를 포함하여 구성되는 어플리케이션의 테스트 시스템 및 그 방법에 관한 것이다.

Description

스마트기기용 어플리케이션의 테스트 시스템 및 그 방법{System for testing an application use for a smart device and method therefor}
본 발명은 스마트기기용 어플리케이션 프로그램의 테스트 시스템 및 그 방법에 관한 것으로서, 보다 상세하게는, 통신망을 통하여 접속한 사용자단말기에서 실행되는 어플리케이션의 문서객체모델정보를 추출하고 추출된 문서객체모델 정보에 기초하여 해당 어플리케이션의 이벤트 정보를 수집하고 이를 데이터베이스에 저장하는 문서객체모델 추출부와, 수집된 이벤트 정보에 기초하여 이벤트 실행시의 장면 이미지들을 트리 구조로 표시하는 시나리오 생성부와, 상기 트리 구조로 표시된 이벤트 실행시의 장면 이미지들을 선택하여 어플리케이션의 테스트를 위한 시나리오를 생성하고 생성된 시나리오에 따라서 어플리케이션의 테스트를 수행하는 테스트 수행부를 포함하여 구성되는 스마트기기용 어플리케이션의 테스트 시스템과 이를 사용하여 스마트기기용 어플리케이션을 테스트하는 방법에 관한 것이다.
일반적으로, 스마트폰(smart phone), 테블릿PC(tablet PC), PDA(Personal Digital Assistant, 개인휴대단말) 등의 스마트기기(smart device)는 특정한 목적과 기능을 가진 어플리케이션 프로그램(application program, 응용프로그램, 이하, 본 발명 명세서에서 '어플리케이션'으로 약칭함)을 기기에 인스톨하여 실행시킬 수 있는 것이 특징이다.
그런데, 어플리케이션을 개발하여 그 성능을 테스트할 경우, 종래에는 단말별 또는 OS(Operating System) 별로 수십대의 단말에 대하여 성능을 테스트하는 것은 물론, 해당 어플리케이션이 구동할 수 있는 많은 시나리오들을 하나씩 일일히 테스트하여야 하는 과정을 거쳐야 하기 때문에 어플리케이션의 테스트에 시간과 비용이 크게 소요되는 문제점이 있었다.
또한, 어플리케이션의 테스트를 자동적으로 수행할 수 있는 툴(tool)의 개발도 쉽지 않은 실정인데 그 이유는 테스트를 위한 스크립트(script) 작성이 어려울 뿐만 아니라 테스트를 위하여 모든 시나리오에 대하여 개별적인 스크립트를 일일히 작성하여야 하는 제약사항 때문이다.
또한, 테스트를 위한 개별적인 스크립트는 발생 가능한 모든 유형의 예외 처리가 반영되어 있지 않고, 사용자가 원하는 반복 테스트를 위해서는 추가적인 스크립트를 작성하여야 하는 문제점이 있다.
또한, 어플리케이션의 특성상 출시후에도 지속적으로 업데이트가 이루어지기 때문에 그때마다 스크립트를 수정해가면서 테스트를 수행하기가 쉽지 않다.
또한, 모든 예외사항이 반영되어 있지 않기 때문에 어플리케이션에 예상치 못한 오류가 있을 경우 테스트가 중단되고, 이 경우 스크립트를 다시 수정해가면서 테스트를 진행해야 하므로 테스트 시간이 많이 소요되는 단점이 있다.
나아가, 모든 시나리오에 대해 개별적으로 스크립트를 작성해야 하기 때문에 테스트의 품질이 스크립트 개발자의 역량에 의존하는 경향이 있으며, 테스트 개발자 이외에 다른 사용자는 스크립트 수정이 용이하지 않다는 문제점도 있다.
한편, 상기와 같이 어플리케이션의 테스트를 위한 선행기술로서 대한민국특허공개 제 2014-2815 호의 안드로이드 애플리케이션 지유아이 테스트 자동화 방법, 대한민국특허공개 제 2012-40419 호의 유저인터페이스 자동 분석을 통한 테스트 케이스 생성 방법이 공지되어 있다.
본 발명에서는 어플리케이션의 문서객체모델의 정보를 이용하여 어플리케이션의 모든 이벤트들의 장면 이미지가 트리 구조로 표시되며 사용자가 트리 구조화된 이벤트들의 장면 이미지들을 선택 및 편집하여 테스트를 위한 시나리오를 작성할 수 있기 때문에, 모든 발생가능한 시나리오에 대하여 일일히 스크립트를 작성하지 않고도 사용자가 용이하게 테스트 시나리오를 작성하고 테스트를 수행할 수 있도록 하는 어플리케이션 테스트 시스템 및 그 방법을 제공한다.
상기와 같은 기술적 과제를 달성하기 위한 본 발명은 일 측면에서 스마트기기용 어플리케이션의 테스트 시스템으로, 본 발명의 시스템에 접속한 사용자단말에서 실행되는 어플리케이션의 문서객체모델 정보를 추출하고 추출된 문서객체모델 정보에 기초하여 해당 어플리케이션의 이벤트 정보를 수집하고 이를 데이터베이스에 저장하는 문서객체모델 추출부와, 수집된 이벤트 정보에 기초하여 이벤트 실행시의 장면 이미지들을 트리(tree) 구조로 표시하는 시나리오 생성부와, 상기 트리 구조로 표시된 이벤트 실행시의 장면 이미지들에 대한 사용자의 입력을 수신하여 어플리케이션의 테스트를 위한 시나리오를 생성하고 생성된 시나리오에 따라서 어플리케이션의 테스트를 수행하는 테스트 수행부와, 상기 테스트 수행부에 의하여 수행된 테스트의 결과를 생성하여 사용자단말에 표시하는 결과 생성부를 포함하여 구성되는 것을 특징으로 한다.
바람직하게는 상기 문서객체모델추출부는, 어플리케이션에 새로운 장면이 추가되거나 어플리케이션의 실행시 표시되는 각 장면의 이미지가 새로운 이미지로 변경되면, 이러한 변경에 따라서 스크립트도 자동적으로 생성 및 변경되는 즉시 반응형 스크립트에 의하여 구현된다.
또한, 바람직하게는 상기 테스트 수행부는, 상기 트리 구조로 표시된 이벤트 실행시의 장면 이미지들의 선택시 드래그 앤 드롭(drag & drop) 방식으로 장면 이미지를 선택하도록 하여 사용자의 선택을 입력받아 처리한다.
나아가, 바람직하게는 상기 테스트 수행부는, 사용자가 해당 이벤트의 시작 장면과 종료 장면만 선택하는 경우, 사용자가 선택한 시작 장면과 종료 장면 사이의 테스트 가능한 모든 시나리오가 조회될 수 있도록 한다.
아울러, 상기 테스트 수행부는, 사용자가 해당 이벤트의 시작 장면, 중간 장면, 종료 장면을 선택하는 경우, 시작 장면에 해당하는 이벤트 장면의 앞과 뒤 장면이 점멸 표시되게 함으로써 해당 시작 장면과 다른 장면과의 연결을 직관적으로 확인할 수 있도록 한다
여기서, 사용자가 선택할 수 있도록 기 설정된 테스트 시나리오를 사용자에게 자동적으로 제공하는 룰 기반 엔진(rule-based engine)이 작동되는 테스트 관리부를 더 포함하여, 상기 테스트 관리부의 롤 기반 엔진은, 어플리케이션의 이벤트 정보를 생성하는 이벤트정보추출기; 상기 이벤트정보추출기를 통하여 이를 통하여 수집된 이벤트 정보에 기초하여 해당 어플리케이션의 선택가능한 기 설정된 테스트 시나리오를 제공하는 테스트 시나리오 생성기; 상기 이벤트의 정보를 토대로 테스트 시나리오 생성시 시나리오에 알맞은 어플리케이션의 이벤트 장면을 찾아서 상기 테스트시나리오생성기로 제공하는 장면상황정보제공자;를 포함하여 구성된다.
다른 측면에서 본 발명은, 통신망(200)을 통하여 어플리케이션 테스트 서버에 접속한 사용자단말(100)에서 실행되는 어플리케이션의 테스트 방법으로, 상기 어플리케이션 테스트 서버가 사용자단말(100)에서 실행되는 어플리케이션의 문서객체모델 정보를 추출하는 단계(S 300); 추출된 문서객체모델 정보에 따라서 해당 어플리케이션의 이벤트 정보를 수집하고 이를 데이터베이스에 저장하는 단계(S 301); 수집된 이벤트 정보에 기초하여 이벤트 실행시의 장면 이미지들을 트리 구조로 표시하는 단계(S 302); 상기 트리 구조로 표시된 이벤트 실행시의 장면 이미지들을 선택하여 어플리케이션의 테스트를 위한 테스트 시나리오를 생성하는 단계(S 303); 생성된 테스트 시나리오에 따라서 어플리케이션의 테스트를 수행하는 단계(S 304); 상기 어플리케이션의 테스트 수행 결과를 상기 사용자 단말기(100)에 표시하는 단계(S 305); 를 포함하는 것을 특징으로 한다.
상기와 같은 구성을 가지는 본 발명의 어플리케이션 테스트 시스템 및 그 방법은 다음과 같은 효과를 발현한다,
첫째, 본 발명의 문서객체모델 추출기와 데이터베이스를 이용하여 사전에 시나리오 및 스크립트를 자동적으로 생성할 수 있기 때문에, 스크립트 작성 시간을 획기적으로 단축시킬 수 있으며, 스크립트 작성에 개발자가 필요하지 않기 때문에 개발 인력에 투입되는 비용을 감소시킬 수 있다.
둘째, 종래 어플리케이션의 업데이트시마다 개발자가 스크립트를 수정하여야 하지만, 본 발명은 문서객체모델 추출기가 주기적으로 변경 정보를 자동적으로 수집하여 시나리오를 변경하기 때문에, 별도의 스크립트 변경 없이 재테스트가 가능하고 이에 따른 유지보수 비용도 최소화시킬 수 있다.
셋째, 데이터베이스에 어플리케이션 실행시 발생 가능한 다양한 패턴과 속성들이 저장되어 있기 때문에 장시간동안 안정적인 테스트가 가능한 효과가 있다.
넷째, 스크립트의 작성이 개발자에 의하여 이루어지지 않고 사용자에 의하여시나리오가 작성된 즉시 어플리케이션의 테스트가 가능하기 때문에 원격에서 자기진단(self-test)이 가능하여지는 효과가 발현될 수 있는 매우 진보한 발명인 것이다.
도 1 은 본 발명 어플리케이션 테스트 시스템의 블럭다이어그램,
도 2 는 본 발명 어플리케이션 테스트 시스템의 문서객체모델 추출부의 제어의 플로우챠트,
도 3 은 본 발명 어플리케이션 테스트 시스템의 테스트 시나리오 생성기의 실행화면의 일례를 나타내는 도면,
도 4 는 본 발명 어플리케이션 테스트 시스템의 테스트 관리부의 구성도,
도 5 는 본 발명의 테스트 관리부의 롤 기반 엔진의 제어의 플로우챠트,
도 6 은 본 발명의 어플리케이션 테스트 방법의 순서도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 또한 상세한 설명을 생략하여도 본 기술분야의 당업자가 쉽게 이해할 수 있는 부분의 설명은 생략하였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
이하, 첨부 도면에 의거하여 본 발명 어플리케이션 테스트 시스템 및 그 방법의 구성을 상세하게 설명한다.
도 1 은 본 발명 어플리케이션 테스트 시스템의 블럭다이어그램이다.
도면을 참조하면, 본 발명의 어플리케이션 테스트 시스템(1)은, 통신망(200)을 통하여 본 발명의 시스템(1)에 접속한 사용자단말(100)에서 실행되는 어플리케이션의 문서객체모델(Document Object Model, DOM) 정보를 추출하고 추출된 문서객체모델 정보에 기초하여 해당 어플리케이션의 이벤트 정보를 수집하고 이를 데이터베이스(50)에 저장하는 문서객체모델 추출부(10)와, 수집된 이벤트 정보에 기초하여 이벤트 실행시의 장면 이미지들을 트리(tree) 구조로 표시하는 시나리오 생성부(20)와, 상기 트리 구조로 표시된 이벤트 실행시의 장면 이미지들에 대한 사용자의 입력을 수신하여 어플리케이션의 테스트를 위한 시나리오를 생성하고 생성된 시나리오에 따라서 어플리케이션의 테스트를 수행하는 테스트 수행부(30)와, 상기 테스트 수행부(30)에 의하여 수행된 테스트의 결과를 생성하여 사용자단말(100)에 표시하는 결과 생성부(60)를 포함하여 구성된다.
또한 이에 부가하여, 사용자가 선택할 수 있도록 기 설정된 테스트 시나리오를 사용자에게 자동적으로 제공하는 룰 기반 엔진(rule-based engine)(41)이 구동되는 테스트 관리부(40)를 더 포함하여 구성될 수도 있다.
여기서, 상기 사용자단말(100)은 어플리케이션의 테스트를 소망하는 사용자가 가진 스마트폰(smart phone), 테블릿PC(tablet PC), PDA(Personal Digital Assistant, 개인휴대단말) 등의 스마트기기(smart device)이다.
이하, 상기와 같이 이루어지는 본 발명의 어플리케이션 테스트 시스템의 구성을 보다 상세하게 개조식으로 설명한다.
1) 문서객체모델(Document Object Model) 추출부(10)
어플리케이션의 문서객체모델(Document Object Model, DOM) 정보를 추출하고, 추출된 문서객체모델 정보로부터 이벤트 정보를 수집하고 이를 데이터베이스(50)에 저장하는 부분이다.
상기의 문서객체모델이란 프로그램의 모든 요소들을 자바(JAVA) 스크립트와 같은 언어에 의해 조정할 수 있도록 규격화시킨 모델을 가리키며, 어플리케이션의 문서객체모델(Document Object Model)을 분석하면 해당 어플리케이션의 모든 이벤트와 이벤트 간 연결 정보와 이벤트 간 흐름 정보를 수집할 수 있게 된다.
본 명세서에 있어서, 상기 어플리케이션의 이벤트 정보는 이벤트의 속성 정보와 이벤트의 순번 정보 및 이벤트의 순번에 따른 전체 시나리오 정보 등 이벤트 간 연결정보 및 이벤트 간 흐름정보를 의미한다.
이때, 본 발명의 시스템의 문서객체모델 추출부(10)는 문서객체모델 정보로부터 이벤트 정보를 수집하기 위하여 프로그램의 구문을 해석하여 각 요소들을 분리하는 파싱(parsing) 기법을 이용한다.
상술한 바와 같이, 어플리케이션의 문서객체모델의 정보를 추출하여 이벤트 정보를 수집하는 작동을 본 발명 명세서에서 문서객체모델의 크롤링(crawling)이라 지칭한다.
문서객체모델의 크롤링에 의하여 어플리케이션의 이벤트 정보로서 사용자에 의하여 수행되는 이벤트를 처리하기 위한 엘리먼트들과 그 속성이 추출되며,문서객체모델(Document Object Model) 추출부(10)는 크롤링시 각 이벤트의 실행에 의하여 표시되는 장면을 구성하는 각 장면 이미지를 별도로 캡쳐하여 장면 정보로서 이벤트 정보에 포함시키거나, 이벤트 정보와 연관하여 저장한다.
이에 따라 상기 문서객체모델추출부(10)를 통하여 수집된 어플리케이션의 이벤트 정보는 해당 어플리케이션의 실행시 표시되는 각 장면의 이미지들과 함께 데이터베이스(50)에 저장된다.
하기 [표1]은 문서객체모델추출부(10)에 의하여 파싱된 속성의 예시이며, 모바일 앱의 DOM에는 사용자에 의하여 수행되는 이벤트를 처리하기 위한 각종 엘리먼트와 그 속성들이 포함되어 있으며, 문서객체모델추출부(10)의 문서객체모델의 크롤링(crawling)에 의하여 문서객체모델(Document Object Model)이 하기 [표1]과 같이 각 이벤트를 처리하기 위한 엘리먼트들과 그 속성들로서 트리구조를 가지는 형태로 구조화된다.
문서객체모델추출부(10)는 어플리케이션의 초기 장면부터 시작하여 마지막 장면까지의 모든 장면에 대해 순차적으로 크롤링하여 해당 장면에 대한 이벤트 속성이나 이벤트 연결 정보 등의 이벤트 정보를 추출하고 추출된 이벤트 정보를 데이터베이스(50)에 저장한다.
Figure 112014120020116-pat00001
나아가, 본 발명의 바람직한 실시예에 의하면, 상기 데이데이터 베이스에 저장된 장면별 이벤트 정보와 더불어 이와 연관되어 저장된 시나리오 생성부(20)에서 작성된 시나리오가 연관되어 저장되어, 이를 기반으로 상기 문서객체모델추출부(10)는 어플리케이션에 새로운 장면이 추가되거나 어플리케이션의 실행시 표시되는 각 장면의 이미지가 새로운 이미지로 변경되면, 이러한 변경에 따라서 스크립트도 자동적으로 생성 및 변경되는 즉시 반응형 스크립트 생성기법으로 구현될 수 있다. 이 경우 기 작성 또는 설정된 시나리오의 제공은 사용자가 선택할 수 있도록 기 설정된 테스트 시나리오를 사용자에게 자동적으로 제공하는 룰 기반 엔진(rule-based engine)(41)이 구동시켜 제공하며, 이는 테스트 관리부(40)와 관련하여 상세히 설명한다.
아울러, 문서객체모델추출부(10)는 어플리케이션의 실행시 오류가 발생하는 즉, 애플리케이션 오류 및 사용자단말기의 모바일 운영환경에 의한 오류가 발생하경우 이러한 어플리케이션의 오류에 대하여 오류가 발생한 어플리케이션의 해당 이벤트에서 발생된 오류 장면들로 분류하여 추출된 문서객체모델 정보를 데이터베이스(50)에 별도로 저장하여 추후 누적 관리함으로써 해당 정보를 활용하여, 예컨데 룰 기반 엔진(rule-based engine)(41)에서 기계적 학습방법 등에 의하여 자동적으로 테스트 시나리오를 선택하여 제공시 기초 정보로 활용하여, 예기치 못한 오류 상황을 미리 대처하도록 하는 구성될 수도 있다.
상술한 바와 같이 본 발명의 문서객체모델 추출부(10)에 의한 어플리케이션의 이벤트 정보를 수집하는 과정을 도 2 에 도시하였다.
먼저, 통신망(200)을 통하여 본 발명 시스템(1)에 접속한 사용자단말기(100)로부터 테스트를 소망하는 어플리케이션의 등록 요청을 수신받는다(S 100).
상기의 등록 요청에 따라서 테스트 관리부(40)는 요청받은 어플리케이션이 데이터베이스(50)에 기저장된 어플리케이션인지 판단하고(S 101), 데이터베이스(50)에 기 저장된 어플리케이션이면 문서객체모델 추출부(10)의 수행을 중단시키고(S 102), 데이터베이스(50)에 기저장되어 있지 않아 등록이 필요한 어플리케이션이면 사용자단말기(100)에 해당 어플리케이션이 인스톨되어 있는지 확인한다(S 103).
확인결과, 해당 어플리케이션이 인스톨되어 있지 아니하면 상기 사용자단말기(100)에 해당 어플리케이션을 인스톨하도록 요청한다(S 104).
해당 어플리케이션이 사용자단말기(100)에 인스톨되어 있으면, 어플리케이션의 테스트를 요청한 사용자단말기(100)의 단말기 정보를 가져온다(S 105). 가져오는 단말기 정보는 단말기의 메모리 용량, 전력 정보, CPU 정보, OS 의 버전 정보, 단말기의 브랜드 정보 등이다.
그리고, 사용자단말기(100)에서 해당 어플리케이션을 구동시켜줄 것을 사용자단말기(100)에 요청하여 해당 어플리케이션을 사용자단말기(100)에서 구동시킨다(S 106).
이어서, 상기 문서객체모델 추출부(10)는 문서객체모델 정보로부터 파싱 기법에 의한 문서객체모델의 크롤링(crawling)을 수행하여 해당 어플리케이션의 이벤트 정보를 모두 획득한다(S 107).
이때, 상기 문서객체모델 추출부(10)는 어플리케이션의 이벤트 정보 획득시 어플리케이션의 초기 장면부터 시작하여 마지막 장면까지의 모든 장면에 대해 순차적으로 해당 장면에 대한 이벤트 속성이나 이벤트 연결 정보 등의 이벤트 정보를 추출하고 추출된 이벤트 정보를 데이터베이스(50)에 저장한다. 이때, 각 해당 장면들을 캡쳐하여 동시에 캡쳐된 장면 이미지를 연관된 이벤트의 장면 정보로서 이벤트 정보에 포함시키거나, 이벤트 정보와 연관시켜 데이터베이스(50)에 저장한다.
여기서, 상기 이벤트 정보의 추출시 이벤트가 가능한 것과 불가능한 것을 각각 구분하여 데이터베이스(50)에 저장하며(S 108), 각각의 이벤트 장면들의 이미지들을 트리(tree) 구조로 조합하여 데이터베이스(50)에 저장하고(S 109), 이벤트 장면이 종료되었거나 문서객체모델 기반 이벤트 정보의 추출이 완료되었는지 판단하여(S 110), 완료되면 문서객체모델 추출부(10)에 의한 이벤트 정보의 획득이 종료된다. 완료되지 않았으면 계속하여 해당 어플리케이션의 다음 이벤트의 이벤트 정보를 획득한다(S 111).
2) 시나리오 생성부(20)
상기 문서객체모델추출부(10)에 의하여 수집되어 데이터베이스(50)에 저장된 이벤트 정보를 어플리케이션 프로그램의 모든 이벤트에 대하여 사용자가 그래픽유저인터페이스(GUI)에서 편집하여 테스트 시나리오의 구성이 가능하도록 각 이벤트의 장면 정보 즉, 장면 이미지와 연관하여 트리(tree) 구조로 이벤트 정보를 그래픽유저인터페이스(GUI)를 통하여 사용자단말기(100)에 표시한다.
상기의 이벤트의 표시 구조는 문서객체모델에 존재하는 어플리케이션의 각 장면별 이벤트와 이벤트 흐름 정보가 해당 이벤트가 속하는 장면과 각각 매핑(mapping)되어 해당 어플리케이션의 초기 화면부터 종단 화면까지 해당 장면 이미지와 그 연결관계 및 흐름 정보를 시각적으로 표시하는 트리(tree) 구조 즉, GUI tree 구조를 갖는다.
사용자단말기(100)에 해당 어플리케이션의 이벤트들이 트리 구조로 표시됨으로써, 후술할 테스트 수행부(30)에서의 사용자의 드래그 앤 드롭(Drag & Drop) 방식의 테스트를 위한 시나리오 작성이 용이하게 수행될 수 있게 된다.
상기 시나리오 생성부(20)에서 작성된 시나리오는 데이터베이스(50)에 저장된다.
이러한 트리 구조의 그래픽유저인터페이스(GUI)에는 중요 상황 정보가 포함되어 표시될 수 있으며, 이러한 중요한 상황 정보로서는, 어플리케이션의 이벤트의 각 장면끼리의 전후 연관성, 다른 장면과의 연결 노드가 많은 장면에 대한 중요성 정보, 사용자단말기(100)로부터 입력되는 데이터가 필요한 장면의 정보 등이 있을 수 있다.
3) 테스트 수행부(30)
상기 시나리오 생성부(20)에서 상기 트리 구조로 표시된 이벤트 실행시의 장면 이미지들에 대한 사용자의 입력을 수신하여 어플리케이션의 테스트를 위한 시나리오를 생성하고 생성된 시나리오에 따라서 어플리케이션의 테스트를 수행한다.
이때, 사용자는 상기 시나리오 작성시 그래픽유저인터페이스(GUI)에는 이벤트들이 해당 장면 이미지와 이들의 연결관계를 표시하는 트리 구조로 표시되어 있으므로, 이벤트들의 장면 이미지에 대하여 드래그 앤 드롭(drag & drop) 방식으로 선택하여 시나리오를 작성하는 것이 가능하다.
예를 들어, 대한민국 소재 포탈 사이트인 네이버(naver)의 N드라이브 어플리케이션의 경우, 사진 올리기 시나리오에 대하여 로컬 단말에서 선택하여 올리기, 검색 후 결과 사진 선택 후 올리기 등 다양한 시나리오를 조합함으로써 사용자가 원하는 테스트 시나리오를 완성할 수 있게 된다.
이후, 생성된 테스트 시나리오의 흐름에 따라서 순차적으로 이벤트 스크립트가 실행되면서 어플리케이션의 테스트가 자동적으로 수행된다.
도 3 은 본 발명의 테스트 시나리오를 생성하기 위하여 사용자단말기(100)에 표시되는 테스트 수행부(30)의 실행 화면으로서의 그래픽유저인터페이스(GUI)를 나타낸 것이다.
도시된 바와 같이, 화면 상단의 GUI 네비게이션 영역(31), 룰셋 리스트 영역(32), 시나리오 편집영역(33), 시나리오 저장 버튼 영역(34) 등으로 구성되고, 기타 시나리오 실행시 테스트 소요시간, 메모리량, 파워소비량 등을 파악할 수 있도록 표시있는 영역, 선택된 시나리오가 엑셀파일 등으로 EXPORT시키는 명령 입력영역 등을 추가로 갖는다.
화면 상단의 GUI 네비게이션 영역(31)에서는 해당 어플리케이션의 각 이벤트에 따른 장면과 해당 장면의 이벤트 흐름이 화살표로서 표시되고, 해당 장면에 대한 사용자의 입력을 수신한다. 입력은 드래그 앤 드롭 방식으로 화면 하단의 룰셋 리스트 영역(32)으로 선택된 이벤트의 장면 이미지를 이동하는 방식으로 수행된다.
화면 하단의 룰셋 리스트 영역(32)에서는 화면 상단의 GUI 네비게이션 영역(31)으로부터 드래그 앤 드롭 방식으로 이동된 각 이벤트의 장면들을 묶어 룰셋(Scene set1, Scene set2....)이 구성되고, 상기 완성된 룰셋은 드래그 앤 드롭 방식으로 시나리오 편집영역(33)으로 이동되어 상기 시나리오 편집영역(33)에서 이들을 조합하고 반복 횟수 등 옵션사항을 입력받아, 테스트 시나리오를 간단하게 작성하여 완성할 수 있게 된다.
시나리오 편집영역(33)에서 작성된 테스트 시나리오는 화면 하단의 '시나리오 저장' 버튼(34)을 클릭하여 해당 테스트 시나리오를 저장시킬 수 있다.
여기서, GUI 네비게이션 영역(31)은 DOM crawler에 의해 수집된 앱의 이벤트 관련 정보를 장면 정보와 연계하여 GUI tree 형태로 사용자에게 제공하며, GUI tree 형태를 통해 ① 앱 장면끼리의 전·후 연관성 및 ② 특정 장면의 중요성(타 장면과 연결 노드(NODE)가 많은 장면들 (즉, 장면 HUB), ③ 다른 노드(NODE)에 있는 장면과의 연결성, ④ 입력 데이터가 필요한 장면 등으로 전체 장면 구조를 한눈에 파악할 수 있도록 하여 사용자는 서로 연결된 장면을 시각적으로 확인하며 사용자의 의도된 테스트를 위한 시나리오를 직관적으로 쉽게 구성할 수 있도록 구성된다. 또한 이를 통해, 테스트 시나리오의 작성에 있어, 장면들 간의 흐름 통제 및 설계, 장면들 간의 새로운 그룹핑, 장면 흐름을 장면을 중심으로 세분화, 장면들 간의 조합 등이 용이해 진다.
또한, GUI네비게이션 영역(31)은 소정 이벤트 장면을 시작 장면으로 설정할 경우, 시작 장면에 해당하는 이벤트 장면의 앞과 뒤 장면이 상기 화면 상단(31) 영역에서 점멸 표시되게 함으로써 해당 시작 장면과 다른 장면과의 연결을 직관적으로 확인할 수 있게 구성되며, 중간에 몇 개의 장면으로 분기되었다가 하나의 장면으로 합쳐져, 분기된 장면 중에 하나를 선택해야 할 경우에도 해당되는 장면들이 점멸 표시되거나, 룰셋들을 조합하여 전체 시나리오를 구성할 때, 각 룰셋들이 서로 연결가능한지 여부도 확인할 수 있고 서로 연결이 불가능할 경우, 룰셋들의 위치를 표시하여 연결이 끊겨있음을 알려주도록 구성될 수도 있다.
룰셋 리스트 영역(32)은 사용자가 네비게이션 영역(31)에서 각 이벤트의 장면들을 묶어 룰셋의 형성시 선택한 장면에 시간, 반복 등 옵션을 추가하여 테스트에 적합하도록 더욱 구체화할 수 있다.
시나리오 구성 영역(33)에서는 네비게이션 영역(31)과 룰셋 리스트 영역(32)에서 작업한 내용들을 바탕으로 전체 시나리오를 구성하는 부분이다. 상기 옵션 등이 추가되어 구체화된 룰셋이 드래그 앤 드롭 방식으로 이동되며, 이동된 다수의 룰셋을 룰셋들을 서로 연결되며, 이후, 시나리오 구성 영역(34)의 반복, 연결, 뒤로가기 등 옵션 버튼을 클릭하여, 이동된 복수의 룰셋들이 묶여 반복 실행되거나, 룰셋들의 연결을 위해 뒤로가기거나 하는 연결관계가 정의되어 시나리오가 완성된다. 시나리오 구성 영역(33)을 통해 이렇게 완성된 시나리오의 총 예상 소요시간을 확인할 수도 있다.
도 3의 테스트 수행부(30)의 그래픽유저인터페이스(GUI)의 GUI 네비게이션 영역(31)을 사용하여 룰셋을 저장하는 과정을 사용자의 관점에서 예시적으로 설명하면, 1) 사용자가 해당 이벤트의 시작 장면, 중간 장면, 종료 장면을 선택하는 경우, 한 장면을 시작점으로 설정할 경우, 시작점에 해당하는 장면의 앞과 뒤 장면이 네비게이션 영역(31)에서 깜빡이며 표시된다. 이 표시를 통해 다른 장면과의 연결을 사용자는 시각적으로 확인할 수 있다. 종료점을 시작점과 서로 멀리 떨어져 있는 장면으로 선택할 경우, 시작점에서 종료점으로 연결되는 경로가 화면에 표시된다. 만약 경로에서 중간에 몇 개의 장면으로 분기되었다가 하나의 장면으로 합쳐져, 분기된 장면 중에 하나를 선택해야 할 경우에도 해당되는 장면들이 깜빡이며 표시된다. 이러한 과정을 통해서 사용자는 원하는 장면 이미지를 장면들을 모으고 경로를 설정하여 하나의 룰셋을 만들 수 있다.
사용자가 해당 이벤트의 시작 장면과 종료 장면만 선택하는 경우로서, 사용자가 네비케이션 영역(31)에서 전체 장면 구조를 확인한 후에 사용자가 원하는 테스트 시나리오를 설계하기 위해서는 먼저 사용자는 테스트가 시작할 장면을 선택하고, 종료할 장면을 클릭하여 해당 장면들의 속성 및 정보를 확인하여 장면간 흐름을 파악한다. 시작 장면과 종료 장면을 클릭할 때 나타난 해당 장면의 메뉴를 클릭하여, 시나리오의 시작점과 종료점을 설정하며, 이에 따라, 룰셋 리스트 영역(32)에 사용자가 선택한 시작과 종료 장면을 기준으로 테스트 가능한 모든 시나리오가 조회된다. 이때 각 시나리오별 예상 테스트 시간 등의 정보도 함께 조회되어 사용자에 의하여 선택되어, 그대로 테스트 시나리오로 저장되거나, 그 전부 또는 일부가 드래그 앤 드롭 방식으로 시나리오 편집영역(33)으로 이동되어 상술한 바와 같이 시나리오 편집영역(33)에서 이들을 조합하고 반복 횟수 등 옵션사항을 입력받아, 테스트 시나리오를 간단하게 작성하여 완성할 수 있게 된다.
이 경우는 테스트 시나리오 작성시 사용자가 선택할 수 있도록 기 설정된 테스트 시나리오를 사용자에게 자동적으로 제공하는 룰 기반 엔진(rule-based engine)(41)이 작동되는 테스트 관리부(40)가 부가되는 경우에 가능한 방식이다.
4) 테스트 관리부(40)
상기 테스트 관리부(40)는 상기 테스트 수행부(30)에 의한 어플리케이션의 테스트 시나리오 작성시 사용자가 선택할 수 있도록 기 설정된 테스트 시나리오를 사용자에게 자동적으로 제공하는 룰 기반 엔진(rule-based engine)(41)이 작동되는 부분이다. 테스트 시나리오의 제공에는 기본적으로 기계적 학습방식이 사용되어 구현된다.
이러한 룰 기반 엔진에 의한 자동적인 테스트 시나리오의 제공은, 정상적인 상황의 테스트 시나리오부터 예외적인 상황을 기반으로 하는 테스트 시나리오까지 다양한 상황의 테스트 시나리오를 제공하여 줄 수 있다.
또한, 사용자에게 적절한 테스트 시나리오만을 제공하여 줄 수 있어 테스트에 소요되는 시간을 절약할 수 있다.
도 4 는 본 발명 어플리케이션 테스트 시스템의 테스트 관리부(40)의 구성도이다.
상기 테스트 관리부(40)의 룰 기반 엔진(41)은 전술한 바와 같이 어플리케이션의 이벤트 정보 및 장면 정보를 생성하는 이벤트정보추출기(42), 상기 이벤트정보추출기(42)를 통하여 이를 통하여 수집된 이벤트 정보 및 장면 정보에 기초하여 해당 어플리케이션의 선택가능한 기 설정된 테스트 시나리오를 제공하는 테스트 시나리오 생성기(43), 상기 이벤트 정보 및 장면를 토대로 테스트 시나리오 생성시 시나리오에 알맞은 어플리케이션의 이벤트 장면을 찾아 상기 테스트시나리오생성기(43)로 제공하는 장면상황 정보제공자(44)로 구성된다.
보다 상세하게는, 상기 이벤트정보추출기(42)는 어플리케이션을 구동시켜 문서객체모델(DOM)의 크롤링(crawling)을 수행하고, 수행결과 생성되는 이벤트 정보 및 이벤트의 장면 정보를 상기 장면상황 정보제공자(44)로 전달한다.
이 경우, 이벤트 정보 및 이벤트의 장면 정보로서 각 장면의 엘리먼트와 그 속성정보가 전달되며, 사용자단말인 스마트기기의 리소스 정보가 함께 전달될 수 있으며, 스마트 기기의 리소스 정보는 스마트 기기의 메모리, CPU 버전, 배터리 잔량 및 소모량, WiFi의 IP 및 신호세기 등의 정보가 이벤트 정보 및 이벤트 장면 정보와 함께 전달된다. 또한, 에러 유발을 통한 예외 장면의 이벤트 정보 및 장면 정보가 별도로 포함되어 전달될 수 있다.
상기 이벤트정보추출기(42)로부터 이벤트 정보 및 이벤트의 장면 정보를 전달받은 장면상황 정보제공자(44)는 전달받은 이벤트 정보 및 이벤트의 장면 정보들과 데이터베이스(50)에 기저장된 장면 상황정보 모델에 따라 장면의 흐름 추론과정을 거쳐서 해당 이벤트의 각 장면들의 전후 흐름을 연결하는 어플리케이션 블루프린트(blue print, 청사진) 정보를 생성하며, 상기 블루프린트 정보를 기초로 어플리케이션 테스트 케이스로서 적용가능한 테스트 시나리오를 결정한다.
상기 테스트 시나리오생성기(43)는 사용자에게 추천될 해당 어플리케이션의 테스트 케이스가 결정되면 해당 테스트에 관한 테스트 시나리오의 정보를 룰기반 엔진(41)으로부터 가져와서 사용자의 사용자단말기(100)에 표시한다.
상기와 같은 구성을 가지는 본 발명의 테스트 관리부(40)의 롤 기반 엔진(41)의 제어 과정을 도 5 를 참조하여 상세하게 개조식으로 설명한다.
가. 어플리케이션 정보 수집 단계(S 200)
해당 어플리케이션의 문서객체정보(DOM)를 크롤링하여 어플리케이션의 이벤트 정보를 수집하고 수집된 이벤트 정보를 룰 기반 엔진(41)으로 로드한다.
또한, 상기 이벤트 정보 수집시 장면 흐름에 따른 장면상황정보 및 장면의 라이프사이클정보도 상기 롤 기반 엔진(41)으로 함께 로드한다.
나. 장면상황정보 전처리 단계(S 201)
상기 어플리케이션 정보 수집 단계에서 획득된 이벤트의 장면 흐름에 따른 장면상황정보를 획득하고 이를 롤 기반 엔진에서 사용 가능한 형태로 변환하여 데이터베이스(50)에 저장하는 과정이다.
다. 장면상황정보 추론 단계(S 202)
상기 이벤트 장면상황정보 전처리 과정에서 변환되어 데이터베이스(50)에 저장된 이벤트의 장면 상황정보들에 기초하여 상기 롤 기반 엔진(41)에 기설정된 장면상황 정보별 모델을 기반으로 하는 추론이 수행되어 다음 장면의 상황정보를 추론하는 단계이다.
또한, 장면의 상황정보의 추론을 통하여 의도되지 않은 장면이나 불확실한 장면에 대응하도록 수행될 수도 있다.
이러한 롤 기반 엔진(41)의 추론을 바탕으로 하여 생성되는 이벤트의 다음 장면의 상황정보는 사용자에게 제공될 기 설정된 테스트 시나리오를 생성하는 기본 정보를 이루게 된다.
여기서, 상기 룰 기반 엔진(41)에 기설정된 장면상황 정보별 모델은 일반적으로 IF A Then B (A 이면 B 를 수행한다)와 같은 규칙적인 패턴을 이용하는 논리적 프로그램을 기반으로 하는 추론 모델로서, 전 장면 추론과 후 장면 추론을 통해 규칙성을 반복적으로 적용하여 장면 흐름을 추론하게 된다.
라. 블루프린트 추출 단계(S 203)
상기 장면상황정보 추론 단계에서 추론된 다음 장면의 상황정보를 바탕으로 제공 가능한 테스트 케이스를 상기 롤 기반 엔진(41)에 로드하여 테스트 시나리오의 작성을 위한 블루프린트를 상기 블루프린트 정보를 기초로 어플리케이션 테스트 케이스로서 적용가능한 테스트 시나리오를 결정하여 제공하는 단계이다.
따라서, 모든 이벤트를 위한 모든 장면들을 제공하는 것에 비하여 롤 기반 엔진(41)이 제공하는 적절한 테스트 시나리오만 로드되므로 테스트에 소요되는 자원과 시간을 절약할 수 있게 된다.
마. 테스트 시나리오의 제공 및 실행 단계(S 204)
상기 블루프린트 추출 단계에서 제공되는 테스트 시나리오를 선택하여 어플리케이션을 테스트하는 단계이다.
바. 어플리케이션의 오류 처리
어플리케이션은 실행시 미처 예상하지 못한 오류(에러 상황)를 일으킬 수 있다.
이러한 어플리케이션의 오류는 해당 이벤트의 한 장면에서 다음 장면으로 이동하는 도중의 기간 동안 통신 장애, 서버에서의 불특정 푸시(PUSH) 서비스, 장면의 멈춤현상 등 예기치 못한 애플리케이션 오류 및 사용자단말기의 모바일 운영환경에 의한 오류가 발생할 수 있다.
이러한 어플리케이션의 오류에 대하여 완전하게 파악하는 것은 불가능하기 때문에 이러한 해당 이벤트에서 발생된 오류 장면들을 분류하여 데이터베이스(50)에 저장하여 룰 기반 엔진(41)에 의하여 누적 관리함으로써 예기치 못한 오류 상황을 미리 대처할 수 있게 한다.
한편, 결과 생성부(60)는 상기 테스트 수행부(30)에 의하여 수행된 테스트의 결과를 생성하여 사용자단말(100)에 표시하는 부분으로서, 결과 리포트를 사용자단말기(100)로 이메일 또는 SMS(단문 메세지 서비스)로 전송할 수 있다.
다음으로, 상기와 같이 구성되는 본 발명의 시스템을 이용한 스마트기기용 어플리케이션의 테스트 방법을 설명한다.
도 6 은 본 발명의 어플리케이션 테스트 방법의 순서도이다.
도면을 참조하면, 본 발명의 어플리케이션 테스트 방법은, 통신망(200)을 통하여 접속한 사용자단말(100)에서 실행되는 어플리케이션의 테스트를 수행하는 어플리케이션 테스트 서버에 의하여 수행되는 테스트 방법이다.
본 발명의 테스트 방법은, 상기 어플리케이션 테스트 서버가 사용자단말(100)에서 실행되는 어플리케이션의 문서객체모델(Document Object Model, DOM) 정보를 추출하는 단계(S 300); 추출된 문서객체모델 정보에 따라서 해당 어플리케이션의 이벤트 정보를 수집하고 이를 데이터베이스에 저장하는 단계(S 301); 수집된 이벤트 정보에 기초하여 이벤트 실행시의 장면 이미지들을 트리 구조로 표시하는 단계(S 302); 상기 트리 구조로 표시된 이벤트 실행시의 장면 이미지들에 대한 사용자의 사용자의 입력을 수신하여 어플리케이션의 테스트를 위한 테스트 시나리오를 생성하는 단계(S 303); 생성된 테스트 시나리오에 따라서 어플리케이션의 테스트를 수행하는 단계(S 304); 상기 어플리케이션의 테스트 수행 결과를 상기 사용자단말(100)에 표시하는 단계(S 305); 를 포함하여 구성되는 것을 특징으로 한다.
상기 문서객체모델 정보를 추출하는 단계(S 300)는, 상기 문서객체모델 추출부(10)에 의한 어플리케이션의 이벤트 정보를 수집하는 과정에서 도 2를 참조하여 설명된 바와 같이, 통신망(200)을 통하여 사용자단말기(100)로부터 테스트를 소망하는 어플리케이션의 등록 요청을 수신받는 단계(S 100); 상기의 등록 요청에 따라서 테스트 서버가 요청받은 어플리케이션이 데이터베이스에 기저장된 어플리케이션인지 판단하고(S 101), 데이터베이스에 기저장된 어플리케이션이면 문서객체모델 추출의 수행을 중단시키고(S 102), 데이터베이스에 기저장되어 있지 않은 어플리케이션이면 사용자단말기(100)에 해당 어플리케이션이 인스톨된 상태인지 확인하는 단계(S 103); 해당 어플리케이션이 사용자단말기(100)에 인스톨되어 있으면, 상기 사용자단말기(100)의 단말기 정보를 가져오는 단계(S 105); 상기 사용자단말기(100)에서 해당 어플리케이션이 구동되는 단계(S 106); 상기 테스트 서버가 문서객체모델의 크롤링(crawling)을 수행하여 해당 어플리케이션의 이벤트 정보를 획득하는 단계(S 107); 상기 테스트 서버는 이벤트가 가능한 것과 불가능한 것을 각각 구분하여 데이터베이스에 저장하며(S 108), 각각의 이벤트 장면들의 이미지들을 트리(tree) 구조로 조합하여 데이터베이스에 저장하고(S 109), 이벤트 장면이 종료되었거나 문서객체모델 기반 이벤트 정보의 추출이 완료되었는지 판단하여(S 110), 완료되면 이벤트 정보의 획득을 종료하는 단계; 를 포함하여 수행된다.
상기 테스트 서버는, 상술한 바와 같이, 테스트 시스템의 구성요소로서 정의 된 테스트 관리부(40)를 포함하여, 상기 테스트 수행부(30)에 의한 어플리케이션의 테스트 시나리오 작성시 사용자가 선택할 수 있도록 기 설정된 테스트 시나리오를 사용자에게 자동적으로 제공하는 룰 기반 엔진(rule-based engine)(41)이 작동되도록 구성될 수 있으며, 이 경우, 상기 테스트 서버는 룰 기반 엔진(rule-based engine)(41)을 작동하여 상기 데이터베이스(50)에 저장된 이벤트의 장면 상황정보들에 기초하여 기설정된 장면상황 정보별 모델을 기반으로 하는 추론을 롤 기반 엔진(41)에 의하여 수행하여 다음 장면의 상황정보를 추론함으로써 장면 이미지들을 트리 구조로 표시한다. 여기서, 어플리케이션 실행시 발생되는 오류 장면들을 분류하여 데이터베이스(50)에 저장하여 룰 기반 엔진(41)에 의하여 누적 관리되며, 기설정된 장면상황 정보별 모델은, 규칙적인 패턴을 이용하는 논리적 프로그램을 기반으로 하여 전 장면 추론과 후 장면 추론을 통해 규칙성을 반복적으로 적용하여 장면 흐름을 추론하는 모델이다. 상기 장면의 추론에는 데이터베이스(50)에 누적 저장된 데이터의 기계적 학습방법에 의하여 구현된다.
상기 롤 기반 엔진(41)을, 해당 어플리케이션의 문서객체정보(DOM)를 크롤링하여 어플리케이션의 이벤트 정보를 수집하고 수집된 이벤트 정보를 룰 기반 엔진(41)으로 로드하는 어플리케이션 정보 수집 단계(S 200); 상기 어플리케이션 정보 수집 단계에서 획득된 이벤트의 장면 흐름에 따른 장면상황정보를 획득하고 이를 롤 기반 엔진에서 사용 가능한 형태로 변환하여 데이터베이스(50)에 저장하는 장면상황정보 전처리 단계(S 201); 상기 이벤트 장면상황정보 전처리 과정에서 변환되어 데이터베이스(50)에 저장된 이벤트의 장면 상황정보들에 기초하여 상기 롤 기반 엔진(41)에 기설정된 장면상황 정보별 모델을 기반으로 하는 추론이 수행되어 다음 장면의 상황정보를 추론하는 장면상황정보 추론 단계(S 202); 상기 장면상황정보 추론 단계에서 추론된 다음 장면의 상황정보를 바탕으로 제공 가능한 테스트 케이스를 상기 롤 기반 엔진(41)에 로드하여 테스트 시나리오의 작성을 위한 블루프린트를 생성하고 상기 블루프린트 정보를 기초로 어플리케이션 테스트 케이스로서 적용가능한 테스트 시나리오를 결정하여 제공하는 블루프린트 추출 단계(S 203); 상기 블루프린트 추출 단계에서 제공되는 테스트 시나리오에 대한 선택을 입력받아 어플리케이션을 테스트하는 테스트 시나리오의 제공 및 실행 단계(S 204); 를 수행하도록 제어하여, 테스트 시나리오의 작성을 위한 블루프린트를 테스트 시나리오의 예시로서 제공하여 사용자에게 적합한 테스트 시나리오를 선택도록 하여 어플리케이션을 테스트하는 테스트 시나리오를 제공할 수도 있다.
한편, 상기와 같은 본 발명의 어플리케이션의 테스트 방법은 그의 프로그램이 수록된 컴팩트 디스크(Compact Disc) 등의 기록매체의 형태로 실시가능하다.
이상의 설명에서 본 발명의 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법을 첨부 도면에 의거하여 상세하게 설명하였으나, 본 발명은 당업자에 의하여 다양한 수정, 변경 및 치환이 가능하고, 이러한 수정, 변경 및 치환은 본 발명의 보호범위에 속하는 것으로 해석되어야 한다.
* 도면의 주요 부분에 대한 부호의 설명 *
1; 본 발명 시스템 10; 문서객체모델 추출부
20; 시나리오 생성부 30; 테스트 수행부
40; 테스트 관리부 50; 데이터베이스
60; 결과 생성부 100; 사용자 단말기

Claims (15)

  1. 사용자단말기(100)에서 실행되는 어플리케이션의 테스트를 위한 시스템에 있어서,
    사용자단말기(100)에서 실행되는 어플리케이션의 문서객체모델 정보를 추출하고 추출된 문서객체모델 정보에 기초하여 해당 어플리케이션의 이벤트 정보를 수집하여 데이터베이스(50)에 저장하는 문서객체모델 추출부(10);
    수집된 이벤트 정보에 기초하여 이벤트 실행시의 장면 이미지들을 트리 구조로 표시하는 시나리오 생성부(20);
    상기 트리 구조로 표시된 이벤트 실행시의 장면 이미지들에 대한 사용자의 입력을 수신하여 어플리케이션의 테스트를 위한 시나리오를 생성하고 생성된 시나리오에 따라서 어플리케이션의 테스트를 수행하는 테스트 수행부(30); 및
    상기 테스트 수행부(30)에 의하여 수행된 테스트의 결과를 생성하여 사용자단말(100)에 표시하는 결과 생성부(60); 를 포함하여 구성되고,
    상기 문서객체모델 추출부는, 통신망(200)을 통하여 사용자단말기(100)로부터 테스트를 소망하는 어플리케이션의 등록 요청을 수신받고, 상기의 등록 요청에 따라서 요청받은 어플리케이션이 데이터베이스에 기저장된 어플리케이션인지 판단하고, 데이터베이스에 기저장된 어플리케이션이면 문서객체모델 추출의 수행을 중단시키고, 데이터베이스에 기저장되어 있지 않은 어플리케이션이면 사용자단말기(100)에 해당 어플리케이션이 인스톨된 상태인지 확인하고, 해당 어플리케이션이 사용자단말기(100)에 인스톨되어 있으면, 상기 사용자단말기(100)의 단말기 정보를 가져오고, 상기 사용자단말기(100)에서 해당 어플리케이션이 구동되고, 문서객체모델의 크롤링(crawling)을 수행하여 해당 어플리케이션의 이벤트 정보를 획득하고, 이벤트가 가능한 것과 불가능한 것을 각각 구분하여 데이터베이스에 저장하고, 각각의 이벤트 장면들의 이미지들을 트리(tree) 구조로 조합하여 데이터베이스에 저장하고, 이벤트 장면이 종료되었거나 문서객체모델 기반 이벤트 정보의 추출이 완료되었는지 판단하여, 완료되면 이벤트 정보의 획득을 종료하는 것을 특징으로 하는 어플리케이션의 테스트 시스템.
  2. 제 1 항에 있어서,
    상기 문서객체모델 추출부(10)는,
    수집된 어플리케이션의 이벤트 정보는 해당 어플리케이션의 실행시 표시되는 각 장면의 이미지들과 함께 데이터베이스(50)에 저장되는 것을 특징으로 하는 어플리케이션의 테스트 시스템.
  3. 제 1 항에 있어서, 상기 문서객체모델추출부(10)는,
    어플리케이션에 새로운 장면이 추가되거나 어플리케이션의 실행시 표시되는 각 장면의 이미지가 새로운 이미지로 변경되면, 이러한 변경에 따라서 스크립트도 자동적으로 생성 및 변경되는 즉시 반응형 스크립트에 의하여 구현되는 것을 특징으로 하는 어플리케이션의 테스트 시스템.
  4. 제 1 항에 있어서, 상기 테스트 수행부(30)는,
    상기 트리 구조로 표시된 이벤트 실행시의 장면 이미지들의 선택시 드래그 앤 드롭(drag & drop) 방식으로 장면 이미지를 선택하는 것을 특징으로 하는 어플리케이션의 테스트 시스템.
  5. 제 1 항에 있어서, 상기 테스트 수행부(30)는,
    사용자가 해당 이벤트의 시작 장면과 종료 장면만 선택하는 경우,
    사용자가 선택한 시작 장면과 종료 장면 사이의 테스트 가능한 모든 시나리오가 조회되는 것을 특징으로 하는 어플리케이션의 테스트 시스템.
  6. 제 1 항에 있어서, 상기 테스트 수행부(30)는,
    사용자가 해당 이벤트의 시작 장면, 중간 장면, 종료 장면을 선택하는 경우, 시작 장면에 해당하는 이벤트 장면의 앞과 뒤 장면이 점멸 표시되게 함으로써 해당 시작 장면과 다른 장면과의 연결을 직관적으로 확인할 수 있게 하는 것을 특징으로 하는 어플리케이션의 테스트 시스템.
  7. 제 1 항에 있어서,
    사용자가 선택할 수 있도록 기 설정된 테스트 시나리오를 사용자에게 자동적으로 제공하는 룰 기반 엔진(rule-based engine)(41)이 작동되는 테스트 관리부(40)를 더 포함하여, 상기 테스트 관리부(40)의 롤 기반 엔진(41)은,
    어플리케이션의 이벤트 정보를 생성하는 이벤트정보추출기(42);
    상기 이벤트정보추출기(42)를 통하여 이를 통하여 수집된 이벤트 정보에 기초하여 해당 어플리케이션의 선택가능한 기 설정된 테스트 시나리오를 제공하는 테스트 시나리오 생성기(43);
    상기 이벤트의 정보를 토대로 테스트 시나리오 생성시 시나리오에 알맞은 어플리케이션의 이벤트 장면을 찾아서 상기 테스트시나리오생성기(43)로 제공하는 장면상황 정보제공자(44); 를 포함하여 구성되는 것을 특징으로 하는 어플리케이션의 테스트 시스템.
  8. 제 7 항에 있어서,
    상기 결과 생성부(60)는 결과 리포트를 사용자단말기(100)에 이메일 또는 SMS로 전송하는 구성을 특징으로 하는 어플리케이션의 테스트 시스템.
  9. 통신망(200)을 통하여 어플리케이션 테스트 서버에 접속한 사용자단말(100)에서 실행되는 어플리케이션의 테스트 방법에 있어서,
    상기 어플리케이션 테스트 서버가 사용자단말(100)에서 실행되는 어플리케이션의 문서객체모델 정보를 추출하는 단계(S 300);
    추출된 문서객체모델 정보에 따라서 해당 어플리케이션의 이벤트 정보를 수집하고 이를 데이터베이스에 저장하는 단계(S 301);
    수집된 이벤트 정보에 기초하여 이벤트 실행시의 장면 이미지들을 트리 구조로 표시하는 단계(S 302);
    상기 트리 구조로 표시된 이벤트 실행시의 장면 이미지들을 선택하여 어플리케이션의 테스트를 위한 테스트 시나리오를 생성하는 단계(S 303);
    생성된 테스트 시나리오에 따라서 어플리케이션의 테스트를 수행하는 단계(S 304);
    상기 어플리케이션의 테스트 수행 결과를 상기 사용자 단말기(100)에 표시하는 단계(S 305); 를 포함하여 구성되고,
    상기 문서객체모델 정보를 추출하는 단계(S 300)는,
    상기 통신망(200)을 통하여 사용자단말기(100)로부터 테스트를 소망하는 어플리케이션의 등록 요청을 수신받는 단계(S 100);
    상기의 등록 요청에 따라서 테스트 서버가 요청받은 어플리케이션이 데이터베이스에 기저장된 어플리케이션인지 판단하고(S 101), 데이터베이스에 기저장된 어플리케이션이면 문서객체모델 추출의 수행을 중단시키고(S 102), 데이터베이스에 기저장되어 있지 않은 어플리케이션이면 사용자단말기(100)에 해당 어플리케이션이 인스톨된 상태인지 확인하는 단계(S 103);
    해당 어플리케이션이 사용자단말기(100)에 인스톨되어 있으면, 상기 사용자단말기(100)의 단말기 정보를 가져오는 단계(S 105);
    상기 사용자단말기(100)에서 해당 어플리케이션이 구동되는 단계(S 106);
    상기 테스트 서버가 문서객체모델의 크롤링(crawling)을 수행하여 해당 어플리케이션의 이벤트 정보를 획득하는 단계(S 107);
    상기 테스트 서버는 이벤트가 가능한 것과 불가능한 것을 각각 구분하여 데이터베이스에 저장하며(S 108), 각각의 이벤트 장면들의 이미지들을 트리(tree) 구조로 조합하여 데이터베이스에 저장하고(S 109), 이벤트 장면이 종료되었거나 문서객체모델 기반 이벤트 정보의 추출이 완료되었는지 판단하여(S 110), 완료되면 이벤트 정보의 획득을 종료하는 단계;를 포함하여 수행되는 것을 특징으로 하는 어플리케이션의 테스트 방법.
  10. 삭제
  11. 제 9 항에 있어서, 상기 테스트 서버는,
    상기 데이터베이스(50)에 저장된 이벤트의 장면 상황정보들에 기초하여 기설정된 장면상황 정보별 모델을 기반으로 하는 추론이 롤 기반 엔진(41)에 의하여 수행되어 다음 장면의 상황정보를 추론함으로써 장면 이미지들을 트리 구조로 표시하는 것을 특징으로 하는 어플리케이션의 테스트 방법.
  12. 제 9 항에 있어서, 상기 테스트 서버는,
    어플리케이션 실행시 발생되는 오류 장면들을 분류하여 데이터베이스(50)에 저장하여 룰 기반 엔진(41)에 의하여 누적 관리하는 것을 특징으로 하는 어플리케이션의 테스트 방법.
  13. 제 11 항에 있어서, 상기 롤 기반 엔진(41)은,
    해당 어플리케이션의 문서객체정보(DOM)를 크롤링하여 어플리케이션의 이벤트 정보를 수집하고 수집된 이벤트 정보를 룰 기반 엔진(41)으로 로드하는 어플리케이션 정보 수집 단계(S 200);
    상기 어플리케이션 정보 수집 단계에서 획득된 이벤트의 장면 흐름에 따른 장면상황정보를 획득하고 이를 롤 기반 엔진에서 사용 가능한 형태로 변환하여 데이터베이스(50)에 저장하는 장면상황정보 전처리 단계(S 201);
    상기 이벤트 장면상황정보 전처리 과정에서 변환되어 데이터베이스(50)에 저장된 이벤트의 장면 상황정보들에 기초하여 상기 롤 기반 엔진(41)에 기설정된 장면상황 정보별 모델을 기반으로 하는 추론이 수행되어 다음 장면의 상황정보를 추론하는 장면상황정보 추론 단계(S 202);
    상기 장면상황정보 추론 단계에서 추론된 다음 장면의 상황정보를 바탕으로 제공 가능한 테스트 케이스를 상기 롤 기반 엔진(41)에 로드하여 테스트 시나리오의 작성을 위한 블루프린트를 생성하고, 상기 블루프린트 정보를 기초로 어플리케이션 테스트 케이스로서 적용가능한 테스트 시나리오를 결정하여 제공하는 블루프린트 추출 단계(S 203); 상기 블루프린트 추출 단계에서 제공되는 테스트 시나리오에 대한 선택을 입력받아 선택된 테스트 시나리오를 이용하여 어플리케이션을 테스트하는 테스트 시나리오의 제공 및 실행 단계(S 204);의 일련의 과정으로 제어되는 것을 특징으로 하는 어플리케이션의 테스트 방법.
  14. 제 13 항에 있어서, 상기 룰 기반 엔진(41)에 기설정된 장면상황 정보별 모델은,
    규칙적인 패턴을 이용하는 논리적 프로그램을 기반으로 하여 전 장면 추론과 후 장면 추론을 통해 규칙성을 반복적으로 적용하여 장면 흐름을 추론하는 모델인 것을 특징으로 하는 어플리케이션의 테스트 방법.
  15. 제 9 항, 제 11 항 내지 제 14 항중 어느 한 항의 어플리케이션의 테스트 방법의 프로그램이 수록된 기록매체.
KR1020140177311A 2014-12-10 2014-12-10 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법 KR101637371B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140177311A KR101637371B1 (ko) 2014-12-10 2014-12-10 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140177311A KR101637371B1 (ko) 2014-12-10 2014-12-10 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20160070410A KR20160070410A (ko) 2016-06-20
KR101637371B1 true KR101637371B1 (ko) 2016-07-07

Family

ID=56354263

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140177311A KR101637371B1 (ko) 2014-12-10 2014-12-10 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101637371B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190051436A (ko) 2017-11-07 2019-05-15 엔에이치엔 주식회사 어플리케이션 사용환경 설정방법 및 이를 이용한 테스트방법
KR102005718B1 (ko) * 2018-08-14 2019-07-31 알서포트 주식회사 상황정보 병기형 실사용 기반 모바일단말 스크립트 생성 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200210327A1 (en) * 2016-10-06 2020-07-02 Industry-Academia Cooperation Group Of Sejong University M2m application test device and method
WO2018097345A1 (ko) * 2016-11-23 2018-05-31 주식회사 비디 분산 컴퓨팅 기반의 어플리케이션 객체 분석 방법, 이를 수행하는 어플리케이션 객체 분석 서버 및 이를 저장하는 기록매체
KR102373364B1 (ko) * 2017-05-16 2022-03-11 주식회사 케이티 타겟 사이트의 업데이트를 추적하는 서버 및 멀티미디어 서비스 단말
CN107818045A (zh) * 2017-09-29 2018-03-20 安徽四创电子股份有限公司 一种平安城市的软件测试方法
CN111782549B (zh) * 2020-07-31 2024-06-21 北京字节跳动网络技术有限公司 测试方法、装置和电子设备
CN112148623B (zh) * 2020-10-19 2024-06-14 青岛鹏海软件有限公司 基于lims的智能成套场景测试方法
CN112327768B (zh) * 2020-10-27 2023-09-19 深圳Tcl新技术有限公司 智能场景搭建***、方法以及计算机可读存储介质
KR102343477B1 (ko) 2020-12-28 2021-12-28 주식회사 앱테스트에이아이 유저 인터페이스 자율 테스트 시스템 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100877727B1 (ko) * 2008-03-07 2009-01-08 주식회사 엠네스 이동통신 단말기의 기능 및 어플리케이션 검증 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101488815B1 (ko) * 2008-11-19 2015-02-04 (주)링크제니시스 메뉴 테스트용 스크립트 생성 장치, 이를 포함하는 메뉴 테스트 자동화 시스템, 및 그 방법
KR20140122414A (ko) * 2013-04-10 2014-10-20 에스케이플래닛 주식회사 검증 프로세스 관리 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100877727B1 (ko) * 2008-03-07 2009-01-08 주식회사 엠네스 이동통신 단말기의 기능 및 어플리케이션 검증 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190051436A (ko) 2017-11-07 2019-05-15 엔에이치엔 주식회사 어플리케이션 사용환경 설정방법 및 이를 이용한 테스트방법
KR102005718B1 (ko) * 2018-08-14 2019-07-31 알서포트 주식회사 상황정보 병기형 실사용 기반 모바일단말 스크립트 생성 방법

Also Published As

Publication number Publication date
KR20160070410A (ko) 2016-06-20

Similar Documents

Publication Publication Date Title
KR101637371B1 (ko) 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법
CN111443940B (zh) 一种基于DevOps的完整软件生命周期管理方法及***
CN107704392B (zh) 一种测试用例的处理方法及服务器
CN107908541B (zh) 接口测试方法、装置、计算机设备及存储介质
EP2778929B1 (en) Test script generation system
CN105094783B (zh) 安卓应用稳定性测试的方法及装置
CN110764753A (zh) 一种业务逻辑代码生成方法、装置、设备及存储介质
CN108491331A (zh) 软件测试方法、装置、设备和计算机存储介质
US10678666B1 (en) Method and system for implementing automated test and retest procedures in a virtual test environment
CN109189469B (zh) 基于反射的安卓应用微服务化方法及***
CN109614391B (zh) 数据库诊断***、数据库诊断方法及非临时性机器可读介质
CN109857668A (zh) Ui自动化功能测试方法、测试装置、测试设备及存储介质
CN109189374B (zh) 基于对象引用链的对象构造代码生成方法及***
CN104679488A (zh) 一种流程定制开发平台及流程定制开发方法
CN109240666B (zh) 基于调用栈和依赖路径的函数调用代码生成方法及***
Marchetto et al. Reajax: a reverse engineering tool for ajax web applications
CN101887392A (zh) 一种软件***运行稳定性测试方法及装置
US10657023B1 (en) Techniques for collecting and reporting build metrics using a shared build mechanism
CN111158656B (zh) 基于因果树法的测试代码生成方法及装置
CN110013672A (zh) 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质
CN109902013B (zh) 一种基于组态化测试序列的有效载荷测试方法及***
CN111782317A (zh) 页面的测试方法和装置、存储介质和电子装置
CN105760300B (zh) 一种stk/utk业务的自动化测试方法及测试***
CN114003451B (zh) 一种接口测试方法、装置、***及介质
RU2294015C2 (ru) Способ автоматического моделирования системы управления процессом и система управления процессом

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