KR20190113680A - 웹 페이지의 테스트 케이스 생성 방법 및 장치 - Google Patents

웹 페이지의 테스트 케이스 생성 방법 및 장치 Download PDF

Info

Publication number
KR20190113680A
KR20190113680A KR1020190036146A KR20190036146A KR20190113680A KR 20190113680 A KR20190113680 A KR 20190113680A KR 1020190036146 A KR1020190036146 A KR 1020190036146A KR 20190036146 A KR20190036146 A KR 20190036146A KR 20190113680 A KR20190113680 A KR 20190113680A
Authority
KR
South Korea
Prior art keywords
test
html
module
cnn
website
Prior art date
Application number
KR1020190036146A
Other languages
English (en)
Other versions
KR102292901B1 (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 주식회사 테스트웍스
Publication of KR20190113680A publication Critical patent/KR20190113680A/ko
Application granted granted Critical
Publication of KR102292901B1 publication Critical patent/KR102292901B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

호스트 서버로부터, 테스트하고자 하는 웹 페이지에서 HTML 소스코드를 수집하는 소스 코드 수집 모듈과, 수집된 HTML 소스코드를, 저차원 벡터 매핑 방법으로 전처리하는 전처리 모듈과, CNN (convolution neural network) 엔진에 의하여 HTML 기능코드를 분류하는 분류 모듈과, 해당 기능 분류에 대한 테스트 케이스 생성 데이터를 로드, 케이스 생성 데이터와 코드 레벨 분석 자료를 활용하여 테스트 케이스를 생성하는 테스트 케이스 생성 모듈과, 기능 분류 시 사용한 기능 요소들의 속성값을 활용하여 스크립트를 자동으로 생성하는 스크립트 생성 모듈을 포함하는 웹사이트 테스트 장치가 개시된다.

Description

웹 페이지의 테스트 케이스 생성 방법 및 장치 {METHOD AND APPARATUS FOR GENERATING TEST CASE FOR WEB PAGES}
본 발명은 인공 신경망 (Newral Networks)을 활용한 웹 페이지 내 기능 테스트가 필요한 부분의 기능 유형 분류, 그리고 각 기능 유형에 대한 테스트 케이스 및 스트립트의 자동 생성 방식에 관한 것이다. 이를 통하여, 저차원 벡터 매핑 방법의 데이터 전처리를 통해 코드를 측정 가능하게 하고, 테스트하고자 하는 웹 페이지의 코드 내에서 발견한 기능 코드를 컨볼루션 (convolution) 인공 신경망을 통해 기존 데이터의 레이블에 따라 분류하고, 각 레이블에 속한 기능에 대한 테스트 케이스 생성 데이터를 통해 적합한 테스트 케이스 생성 후 이에 대한 스크립트를 자동 생성하고자 하는 방법 및 시스템에 관한 것이다. 또다른 실시예로서, 테스트하고자 하는 웹 페이지의 코드 내에서 발견한 레이블링되지 않은 기능 코드를 컨볼루션 (convolution) 인공 신경망을 통해 객체 검출 (object detection)으로 기능 요소를 추출하고 분류한 후 각 기능별 테스트 케이스 생성 데이터를 통해 적합한 테스트 케이스 생성 후 이에 대한 스크립트를 자동 생성하고자 하는 방법 및 시스템에 관한 것이다.
웹 페이지 개발 시 포함된 기능에 대한 테스트는 개발 과정에서 개발하는 서비스의 품질을 확보하고, 이를 통해 최종 사용자의 만족도를 높이고 출시 이후 사용자의 결함 발견에 의해 발생하는 직간접적 비용을 줄이기 위해 필수적으로 이루어져야 한다.
웹 페이지에 대한 테스트를 효율적으로 수행하기 위해서는 웹 페이지 내의 다양한 표시 아이템들 중 사용자의 입력을 받아서 상호 작용하는 기능 요소들을 식별하고, 이들 기능 요소들 각각에 대해 웹 페이지가 의도대로 동작하는지를 검증할 수 있는 적절한 테스트 방법을 설계하여 테스트 케이스를 생성해야 한다. 이러한 기능 요소들의 예로서, 사용자의 로그인 정보를 입력 받는 로그인 입력란, 버튼 입력란, 데이터 입력란 등이 있다.
하지만, 시간과 자원의 부족으로 인해 웹 페이지의 개발 시 해당 페이지 내에 포함된 모든 기능 요소를 제대로 테스트하지 못하거나, 테스트를 수행해도 테스터 간 역량 차이로 인해 테스트 결과의 일관성 확보가 어려운 문제가 있다.
이를 해결하기 위해서는 서로 다른 기능에 대해서도 일정 수준 이상의 커버리지를 일관성 있게 확보할 수 있도록 각 기능별로 다수의 적절한 테스트 케이스를 효과적으로 생성할 수 있어야 한다.
대부분 비슷한 기능에서 비슷한 테스트 케이스를 도출하지만, 테스터의 역량에 따라 그 시간과 품질이 달라지고, 같은 사람이 같은 기능에 대한 테스트 케이스를 도출할 때도 여러 요인(기능에 대한 이해, 요구사항 문서의 상세함 정도 등)에 따라 그 품질이 달라질 수 있다.
기존의 웹 페이지 내 각 기능에 대한 테스트 케이스 생성 및 스크립트 생성 방법은 테스터가 직접 눈으로 기능을 확인하고, 기능 요구사항 문서에 기재된 사항을 확인하기 위해 테스트 케이스를 생성하는 방식으로서, 예를 들면 대한민국 공개특허 제 10-2010-0069147 호 (특허문헌 1)와 같은 방식이 제안되어 있다.
특허문헌 1에서는, 해당하는 URL의 입력을 통한 웹 페이지 내에 표시되는 모든 객체에 대응하는 소스정보를 획득하는 소스정보 획득모듈, 상기 소스정보를 분석하여 상기 각 객체를 독립적으로 체계화하여 각 객체의 위치정보를 획득하는 위치정보 분석모듈, 사용자에 의해 발생된 마우스 이벤트와 키보드 이벤트의 테스트 조건에 따라 상기 위치정보를 해당하는 상기 소스정보에 맵핑하여 스크립트화한 결과로 테스트 결과 정보를 도출하는 테스트 결과 생성모듈, 및 상기 위치정보와 소스정보를 토대로 객체를 화면에 표시하고, 상기 화면에 표시된 객체에 대하여 속성 및 검증 포인트를 정의, 설정하는 상기 테스트 조건을 더 표시하는 객체 표시모듈을 포함하는 장치가 제공된다. 이러한 장치를 통해, 특허문헌 1에서는, 개발자 관점이 아닌 사용자 관점에서 다양한 테스트 조건을 설정하고, 객체를 검출하고 그에 따른 상관관계를 분석하여 다이나믹한 테스트가 가능한 사용자 편의적인 사용자 인터페이스(UI) 환경의 제공으로, 웹사이트에 표시되는 전체 또는 개별적인 객체에 대한 품질 테스트를 행할 수 있도록 한다.
한국 공개 특허 제10-2010-0069147호
그러나, 특허문헌 1을 비롯한 웹사이트 품질 테스트 방식에서는, 테스트의 대상이 되는 기능 요소들을 사용자로 하여금 용이하게 입력할 수 있게는 하지만, 테스터로 하여금 테스트하고자 하는 웹 페이지 내에 포함된 다양한 기능 요소 혹은 객체들을 쉽게 식별하고 이를 검증할 수 있도록 하는 방법은 제시하지 않고 있다.
특히, 웹 페이지 내의 로그인 입력란, 버튼 입력란, 데이터 입력란을 포함하는 다양한 기능 요소들은 그 종류 및 속성에 따라 각기 다른 방식으로 검증이 이루어져야 하지만, 매 기능 요소마다 어떠한 방식으로 테스트를 진행해야 하는지를 단순히 육안으로 판별하여 진행하는 현재의 방식은 효율이 떨어질 뿐 아니라 테스트의 완전성도 테스터 개인에 따라 달라진다는 문제점을 가지고 있다.
본 발명은 상기한 바와 같은 문제점을 해결하기 위하여 이루어진 것으로, 테스트하고자 하는 웹 페이지 내의 다양한 기능 요소들을 각 기능 요소에 연관된 명칭 및 수치값, 코멘트 등의 속성에 따라 CNN (convolution neural network) 엔진에 의하여복수의 카테고리로 분류하고, 이와 같이 분류된 복수의 카테고리를 서로 연관성이 높은 카테고리끼리 모은 후, 모아진 카테고리 마다 해당 카테고리에 속하는 기능 요소들에 대응하는 HTML 코드들을 함께 수집함으로써, 테스터로 하여금 보다 효율 높게 웹 페이지 내의 대응하는 기능 요소들을 검증할 수 있도록 한 것이다.
본 발명의 한 실시예로서, 상기 CNN 엔진은 embedding layer, convolution layer, Max-Pooling Layer, Dropout Layer의 레이어를 구비할 수 있다.
본 발명의 한 실시예로서, 상기 CNN 엔진은 계층적 군집분석을 사용할 수 있다.
본 발명의 한 실시예로서, 상기 CNN 엔진은 계층적 군집분석을 사용할 수 있다.또한 본 발명의 한 실시예로서, 각 기능별 HTML 코드를 수집하고, 테스트 대상 웹 페이지에서 발견한 기능의 코드 패턴, 속성 및 특성을 토대로 해당 기능을 데이터의 레이블 중 하나에 분류하고, 분류에 대한 테스트 케이스 생성 데이터를 베이스로 테스트 대상 코드의 코드 레벨 분석 자료를 활용해서 테스트 케이스를 생성하여 일정 수준 이상의 테스트 품질을 상시 확보하고, 이후 분류 시 수집한 요소의 속성값을 활용하여 스크립트까지 자동 생성하여 시간과 자원에 대한 제약을 크게 완화할 수 있게끔 하는 방법 및 시스템을 제공하고자 한다. 또다른 실시예로서, 테스트하고자 하는 웹 페이지의 코드 내에서 발견한 레이블링되지 않은 기능 코드를 컨볼루션 (convolution) 인공 신경망을 통해 객체 검출 (object detection)로 기능 요소를 추출하고 분류한 후 각 기능별 테스트 케이스 생성 데이터를 통해 적합한 테스트 케이스 생성 후 이에 대한 스크립트를 자동 생성하는 방법 및 시스템을 제공하고자 한다.
본 발명에서, 기능 분류는 파이썬의 텐서플로우(Tensorflow)를 활용하여 컨볼루션 인공 신경망을 구성하고, 학습시킨 엔진을 사용하여 구현한다. 텐서플로우 는 머신 러닝에 특화된 프레임워크로서, 머신러닝에 필요한 대부분의 함수들을 모듈로서 제공한다. 테스트 케이스 생성 과정은 테스트 전문가 집단이 생성한 각 기능별 테스트 케이스 생성 방법에 대한 데이터를 이용하고, 스크립트는 테스트 케이스에 나열된 기능을 수행하는 셀레니움(Selenium)스크립트를 자동 생성한다. 또한, 수집 데이터의 알고리즘 분석 방법으로 알려진 계층적 군집분석과 비계층적 군집분석 중 계층적 군집분석을 사용한다.
본 발명에 따르면, 수집된 카테고리 마다 해당 카테고리에 속하는 기능 요소들에 대응하는 HTML 코드들을 함께 수집함으로써, 테스터로 하여금 보다 효율 높게 웹 페이지 내의 대응하는 기능 요소들을 검증할 수 있도록 하여, 웹 페이지의 테스트 효율을 증대시킬 수 있다. 또한, 수집된 카테고리마다 동일 또는 유사한 방식으로 테스트를 진행할 수 있으므로, 테스터의 경험이 많고 적음에 무관하게 일정 수준의 테스트가 이루어질 것을 기대할 수 있다.
도 1은 본 발명의 일 실시예에 따른 웹사이트의 품질을 테스트하기 위한 장치의 구성을 예시적으로 나타낸 도면,
도 2는 도 1 에 도시된 웹사이트 품질 테스트 장치를 사용하여, 대상 웹사이트에 대한 품질을 테스트하는 방법을 도시한 도면,
도 3은, 사전을 통해 코드를 각 단어 ID의 나열로 변환한 것을 도시한 도면,
도 4는 본 발명의 일 실시예에 따른 덴드로그램을 생성한 일예를 도시한 도면.
도 5는, 본 발명의 일 실시예에 따라 품질을 테스트하기 위한 웹페이지의 일예를 도시한 도면.
도 6은, 도 5에 도시된 웹페이지를 컴퓨터 디스플레이 상에 구현하기 위한 HTML 스크립트의 일예를 나타낸 것이다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예에 대하여 첨부한 도면을 참고로 하여 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다.
도 1은 본 발명의 일 실시예에 따른 웹사이트의 품질을 테스트하기 위한 장치의 구성을 예시적으로 나타낸 도면이다.
도 1에 도시된 바와 같이, 본 발명의 테스트 장치 (100)는, 소스 코드를 수집하기 위한 소스 코드 수집 모듈 (110), 전처리 모듈 (120), CNN 엔진 모듈 (130), 테스트 케이스 생성 모듈 (140), 스크립트 생성 모듈 (150)을 포함한다. 이하 각각의 모듈에 대하여 구체적으로 설명한다.
도 2는 도 1 에 도시된 웹사이트 품질 테스트 장치를 사용하여, 대상 웹사이트에 대한 품질을 테스트하는 방법을 도시한 도면이다.
먼저, 소스 코드 수집 모듈 (110)은 호스트 서버로부터, 테스트하고자 하는 웹 페이지에서 기능 요소 별로 레이블링된 HTML 소스코드를 수집한다 (S210). 다음으로, 전처리 모듈 (120)은, 수집된 HTML 소스코드를, 저차원 벡터 매핑 방법으로 전처리한다 (S220). 다음으로, 이미 학습된 CNN 딥러닝 엔진을 통해 (S230), HTML 기능코드를 분류한다 (S240). 그리고 난 후, 해당 기능 분류에 대한 테스트 케이스 생성 데이터를 로드하고 (S250), 케이스 생성 데이터와 코드 레벨 분석 자료를 활용하여 테스트 케이스를 생성한다 (S260). 그리고 난 후, 기능 분류 시 사용한 기능 요소들의 속성값을 활용하여 스크립트를 자동으로 생성한다 (S270).
기능 분류는 파이썬의 텐서플로우(Tensorflow)를 활용하여 컨볼루션 인공 신경망을 구성하고, 학습시킨 엔진을 사용하여 구현한다. 텐서플로우 는 머신 러닝에 특화된 프레임워크로서, 머신러닝에 필요한 대부분의 함수들을 모듈로서 제공한다. 테스트 케이스 생성 과정은 테스트 전문가 집단이 생성한 각 기능별 테스트 케이스 생성 방법에 대한 데이터를 이용하고, 스크립트는 테스트 케이스에 나열된 기능을 수행하는 셀레니움(Selenium)스크립트를 자동 생성한다. 또한, 수집 데이터의 알고리즘 분석 방법으로 알려진 계층적 군집분석과 비계층적 군집분석 중 계층적 군집분석을 사용한다.
이하 각각의 단계에 대하여 상세히 설명한다.
호스트 서버로부터 기능별로 레이블링 된 HTML 소스 코드 수집
먼저, 소스 코드 수집 모듈 (110)은, 테스트하고자 하는 웹 페이지를 호스트 서버로부터 제공받고자 사용자에 의해 URL이 입력될 경우에, 호스트 서버로부터 웹사이트 내에 표시되는 모든 기능 요소에 대응하는 HTML 소스코드 데이터를 수집하여, 이를 전처리 모듈 (120)로 전달한다. 이때, 호스트 서버로부터 수집하는 HTML 소스코드 데이터는 각각의 기능 별로 레이블링되어 있는 것으로 가정한다. 소스코드 데이터는, 웹사이트내에 이미지(동영상)의 별도의 형태에 상응하여 코딩된 플래쉬(FLASH) 정보 등과 같은 임베딩된 정보를 포함한 태그 정보뿐만 아니라 태그정보와 시스템 프로그램과의 원활한 연동이 이루어지도록 하는 자바 스크립트 정보를 포함하는 넓은 개념을 의미할 수 있다.
저차원 벡터 매핑 방법으로 HTML코드 데이터 전처리
전처리 모듈 (120)은 소스 코드 수집 모듈 (110)로부터 HTML 소스코드 데이터를 전달 받아서, 이에 대한 전처리를 수행한다. 구체적으로, 전처리 모듈 (120)은 HTML 전달 받은 소스코드 데이터에 포함된 태그 및 속성, 예상되는 속성값(특정 기능을 의미하는 단어 혹은 알파벳 조합)에 대하여 고유 ID를 부여하여 사전 생성 후 태그, 속성, 속성값을 숫자로 변환한다.
도 3은, 사전을 통해 코드를 각 단어 ID의 나열로 변환한 것을 도시한 도면이다.
구체적으로, 사전을 통해 코드를, 도 3에 도시된 바와 같이, 각 단어 ID의 나열로 변환한다. 그리고 ID별 벡터 매핑을 위한 Lookup 테이블을 만들어 개별 ID를 대응하는 벡터로 변환 후 변환된 데이터를 기존의 순서로 배치한다 (도 3 참조). 이와 같은 전처리 과정을 통해 HTML 코드 내 태그 및 속성, 속성값을 벡터의 나열로 변환할 수 있다. 전처리 모듈 (120)은 이와 같이 전처리를 수행한 소스코드 데이터를, CNN 엔진 모듈 (130)로 전달하여, CNN 엔진 모듈 (130)로 하여금, 소스코드 데이터에 기반한 학습을 수행하도록 한다.
군집화
CNN 딥러닝 엔진 (130)은, 전처리 모듈(120)로부터 전달 받은, 전처리가 수행된HTML 소스코드 데이터에 대하여 Hierarchical clustering algorithm을 사용하여 군집화를 수행한다. 즉, 앞의 전처리를 통하여 얻은 테이블의 유사도에 따라 군집화를 수행하는데, 계층적 트리 모형을 이용해 개별 개체들을 순차적, 계층적으로 유사한 개체 내지 그룹과 통합하여 군집화를 수행하는 알고리즘을 활용할 수 있다. 일예로서, 개체들이 결합되는 순서를 나타내는 트리형태의 구조인 덴드로그램(Dendrogram) 을 활용하여, 도 4에 도시된 바와 같은 덴드로그램을 생성한 후 적절한 수준에서 트리를 자르면 전체 데이터를 몇 개 군집으로 나눌 수 있게 된다. 분류 후 각 분류에 대한 색인을 데이터에 추가하여 데이터에 대해 레이블을 생성한다.
본 발명은, 상기한 바와 같이 계층적 군집분석에 근거하여 군집화를 수행하는 것으로 하였으나, 비계층적 군집분석을 사용하는 것도 가능하다.
CNN 딥러닝 엔진 모듈
CNN (Convolutional Neural Network) 엔진 모듈 (130)을 구성하는 여러가지 다양한 방법이 알려져 있다. 본 발명의 일 실시예에서, CNN 엔진 모듈 (130)은 embedding layer, convolution layer, Max-Pooling Layer, Dropout Layer의 레이어를 가지는 것으로 설명하였지만, CNN 엔진 모듈 (130)의 구체적인 구조는 이에 한정되지 않고 여러가지 다양한 실시예를 사용할 수 있다.
Embedding Layer
CNN 엔진 모듈 (130)의 Embedding layer는, 전처리 모듈 (120)에 의한 전처리 과정을 통해 얻어진 단어 색인을 저차원 벡터 표현으로 매핑하는 작업을 한다.
Convolution Layer
CNN 엔진 모듈 (130)의 Convolution layer는, 입력 데이터의 특징을 추출하는 층으로서, 여러 개의 학습된 w(weight)값을 가지고 있는 filter를 통해 입력 데이터로부터, 해당 입력 데이터의 분류에 도움이 될 만한 특징들을 추출하는 작업을 한다.
먼저 벡터의 나열로 변환된 데이터는 배치(batch) 단위로 CNN에 입력값으로 들어가게 된다. 이에 따라 입력값의 구조는 4차원 텐서 [배치의 크기, 코드 길이, 벡터 차원수, 채널 수(Depth)]가 된다. 배치는 한번에 처리할 코드의 수를 의미하고, 채널 수는 자료에서 특성의 수를 의미하는데, 여기서는 단어당 벡터가 1개씩 매핑되었기 때문에 1로 정의한다. 그리고 필터의 구조는 [필터의 높이(단어 수), 필터의 너비(벡터 차원수), 채널 수, 필터 크기별 필터 수]가 된다. 단어 단위로 필터를 적용하기 위해 필터의 너비를 벡터 차원수로 정의할 수 있고, 이 경우 필터의 크기는 각 필터가 몇 개의 단어를 포함할 것인지를 정한다. 필터는 입력 데이터와 합성곱(Convolution)하기 때문에 필터를 거친 값의 차원 수는 [배치 크기, 코드 길이 - 필터 크기+1, 1, 필터 수]가 된다. 마지막으로 ReLU(Recified Linear Unit) 함수를 사용해서 비선형성을 확보할 수 있다.
Max-Pooling Layer :
Max-pooling layer는 activation map을 적당한 크기로 잘라낸 후 그 안에서 가장 큰 값을 뽑아내는 방법이다. Max-pooling layer를 통해, Convolution을 통해 데이터의 특징이 정돈된 상태에서 가장 핵심적인 부분을 추출한다. 즉, 해당 filter 사이즈에서 가장 큰 값을 추출하게 된다. Max-Pooling할 영역의 크기는 [배치 데이터 수, 코드 길이 - 필터 크기 + 1, 세로 차원 수, 출력 결과 수]로 정의 된다. 예를 들어 배치데이터 1개씩, 1칸씩 Max-pooling할 경우 Max-pooling이 적용된 값의 차원 수는 [배치 크기, 1, 1, 필터 개수]가 된다.
Dropout Layer :
인공 신경망의 오버피팅을 방지하는 대표적인 방법으로 뉴런의 일부를 확률적으로 ‘비활성화’할 수 있다. 이는 뉴런의 동시 적응을 방지하고 특징을 개별적으로 학습하도록 강제한다.
Scores and Predictions :
앞의 과정을 모두 거친 후 가장 높은 점수로 코드에 대한 분류를 수행한다.
Loss and Accuracy :
앞의 과정을 통해 얻어진 점수를 이용해 학습에 이용할 손실을 정의한다. 손실이란 인공 신경망의 예측과 정답 간의 차이를 의미한다. 여기서는 필터 가중치와 함께 단어에 매핑되는 벡터 값도 업데이트 된다.
Instantiating and Minimizing the Loss :
텐서플로우의 옵티마이저를 이용하여 손실 함수를 최적화(Optimize)한다.
학습된 엔진을 통한 HTML기능 코드의 분류
이상 설명한 텐서플로우의 모듈들을 활용하여 구현한 엔진을 통해, 테스트 대상 HTML 코드에서 기능을 의미하는 부분을 식별하고, 학습된 CNN 엔진을 통해 해당 부분의 기능을 분류한다.
분류 후 해당 기능 분류에 대한 테스트 케이스 생성 데이터 로드
분류된 각 기능에 대한 테스트 케이스 생성을 위한 데이터를 불러온다. 각 기능별로 적용할 수 있는 테스트 설계 기법에 따른 테스트 케이스와 기능별 특징에 따른 예외사항 등이 포함된다.
객체 검출 (Object detection) 알고리즘
이상, 레이블링된 소스코드 수집, 전처리, 군집화, 분류 색인, 각 기능ㅇ별 테스트 생성 데이터 로드의 순서로 프로세스가 진행되는 실시예에 대해서 기재하였으나, 이와 달리 다음과 같은 절차로 공정을 수행하는 것도 가능하다.
(i) 레이블링되지 않은 소스 코드 수집
(ii) HTML 소스코드 전체 전처리
(iii) object detection으로 기능 요소 추출 및 분류
(iv) 각 기능별 테스트 생성 데이터 로드
이와 같이 객체 검출 (object detection)을 사용하여 기능요소를 추출하고 분류할 경우, 레이블링 및 군집화가 필요 없어지는 장점이 있다.
케이스 생성 데이터와 코드레벨 분석자료를 활용하여 테스트 케이스 생성
불러온 데이터를 기반으로 각 기능에 대한 다수의 테스트 케이스를 생성한다. 이를 통해 모든 기능에 대해 일관성 있게 일정 수준 이상의 커버리지를 확보하는 테스트 케이스를 생성할 수 있다.
기능 분류 시 사용한 요소의 속성값을 활용하여 스크립트 자동 생성
코드 분석 시 확인한 각 요소들의 속성값을 활용하여 셀레니움 스크립트를 자동 생성한다.
도 5는, 본 발명의 일 실시예에 따라 품질을 테스트하기 위한 웹페이지의 일예를 도시한 도면이다. 도 5의 웹페이지는 복수의 동적 웹페이지 구성요소들 510, 520, 530, 540을 포함하고 있고, 이들이 품질 테스트의 대상이 되는 구성 요소들이다.
도 6은, 도 5에 도시된 웹페이지를 컴퓨터 디스플레이 상에 구현하기 위한 HTML 스크립트의 일예를 나타낸 것이다. 도면에서, 스크립트 부분 610, 620, 630, 640이 각각 도 5에 도시된 복수의 동적 웹페이지 구성요소들 510, 520, 530, 540을 구현하는 스크립트인 것으로 가정한다.
본 발명의 일 실시예에 따른 웹사이트의 품질을 테스트하기 위한 장치는, 도 6에 도시된 바와 같은 HTML 스크립트를 입력 받아서, 기능 요소별로 레이블링된 HTML 소스코드를 수집한다 (S210). 다음으로, 각각의 스크립트 구성요소들, 예를 들면 도 6에 도시된 스크립트 부분 610, 620, 630, 640에 대하여 저차원 벡터 매핑 방법으로 코드 데이터를 전처리한다.
다음으로, CNN 딥러닝 엔진에 의한 처리를 수행하여(S230), HTML 코드를 분류한다 (S240). 다음으로, 해당 기능 분류에 대한 테스트 케이스 생성 데이터를 로드하고 (S250), 해당 케이스 생성 데이터와 코드레벨 분석 자료를 활용하여 테스트 케이스를 생성한다 (S260). 다음으로, 기능 분류시 사용한 기능 요소의 속성값을 활용하여 스크립트를 자동으로 생성한다 (S270).
이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
110 : 소스코드 수집모듈 120 : 전처리 모듈
130 : CNN 딥러닝 엔진 140 : 테스트케이스 생성모듈
150 : 스크립트 생성모듈

Claims (8)

  1. 호스트 서버로부터, 테스트하고자 하는 웹 페이지에서 HTML 소스코드를 수집하는 소스 코드 수집 모듈과,
    수집된 HTML 소스코드를, 저차원 벡터 매핑 방법으로 전처리하는 전처리 모듈과,
    CNN (convolution neural network) 엔진에 의하여 HTML 기능코드를 분류하는 분류 모듈과,
    해당 기능 분류에 대한 테스트 케이스 생성 데이터를 로드, 케이스 생성 데이터와 코드 레벨 분석 자료를 활용하여 테스트 케이스를 생성하는 테스트 케이스 생성 모듈과,
    기능 분류 시 사용한 기능 요소들의 속성값을 활용하여 스크립트를 자동으로 생성하는 스크립트 생성 모듈을 포함하는,
    웹사이트 테스트 장치.
  2. 제 1 항에 있어서, 상기 CNN 엔진은 embedding layer, convolution layer, Max-Pooling Layer, Dropout Layer의 레이어를 구비하는 것을 특징으로 하는
    웹사이트 테스트 장치.
  3. 제 1 항에 있어서, 상기 CNN 엔진은 계층적 군집분석을 사용하는 것을 특징으로 하는
    웹사이트 테스트 장치.
  4. 제 1 항에 있어서, 상기 CNN 엔진은 객체 검출 (object detection)을 사용하는 것을 특징으로 하는
    웹사이트 테스트 장치.
  5. 호스트 서버로부터, 테스트하고자 하는 웹 페이지에서 HTML 소스코드를 수집하는 소스 코드 수집 단계와,
    수집된 HTML 소스코드를, 저차원 벡터 매핑 방법으로 전처리하는 전처리 단계와,
    CNN (convolution neural network) 엔진에 의하여 HTML 기능코드를 분류하는 분류 단계와,
    테스트 케이스 생성 데이터를 로드, 케이스 생성 데이터와 코드 레벨 분석 자료를 활용하여 테스트 케이스를 생성하는 테스트 케이스 생성 단계와,
    기능 분류 시 사용한 기능 요소들의 속성값을 활용하여 스크립트를 자동으로 생성하는 스크립트 생성 단계를 포함하는,
    웹사이트 테스트 방법.
  6. 제 5 항에 있어서, 상기 HTML 분류 단계는 embedding layer, convolution layer, Max-Pooling Layer, Dropout Layer의 레이어를 통해 수행하는 것을 특징으로 하는 웹사이트 테스트 방법.
  7. 제 5 항에 있어서, 상기 HTML 분류 단계는 계층적 군집분석을 사용하는 것을 특징으로 하는
    웹사이트 테스트 방법.
  8. 제 5 항에 있어서, 상기 CNN 엔진은 객체 검출 (object detection)을 사용하는 것을 특징으로 하는
    웹사이트 테스트 방법.
KR1020190036146A 2018-03-28 2019-03-28 웹 페이지의 테스트 케이스 생성 방법 및 장치 KR102292901B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180035885 2018-03-28
KR1020180035885 2018-03-28

Publications (2)

Publication Number Publication Date
KR20190113680A true KR20190113680A (ko) 2019-10-08
KR102292901B1 KR102292901B1 (ko) 2021-08-24

Family

ID=68208944

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190036146A KR102292901B1 (ko) 2018-03-28 2019-03-28 웹 페이지의 테스트 케이스 생성 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102292901B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210045284A (ko) * 2019-10-16 2021-04-26 카페24 주식회사 이종 쇼핑몰 간의 연동 방법
KR20210045283A (ko) * 2019-10-16 2021-04-26 카페24 주식회사 이종 플랫폼 간의 자동 연동 방법, 장치 및 시스템
KR102289884B1 (ko) * 2020-02-12 2021-08-17 현대오토에버 주식회사 애플리케이션 테스트에서 객체를 추출하는 방법 및 시스템
WO2022220311A1 (ko) * 2021-04-12 2022-10-20 카페24 주식회사 이종 플랫폼 간의 자동 연동 방법, 장치 및 시스템
KR102470683B1 (ko) * 2021-11-25 2022-11-25 숭실대학교 산학협력단 단위 테스트 케이스 기반의 보안 설계 결함 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040073107A (ko) * 2003-02-13 2004-08-19 삼성전자주식회사 브라우저 테스트 기기, 브라우저 테스트 서버, 이를포함하는 시스템 및 방법
KR20100069147A (ko) 2008-12-16 2010-06-24 주식회사 트로젝트 웹사이트 품질 테스트 방법 및 시스템
KR101768521B1 (ko) * 2016-05-02 2017-08-17 네이버 주식회사 이미지에 포함된 객체에 대한 정보 데이터를 제공하는 방법 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040073107A (ko) * 2003-02-13 2004-08-19 삼성전자주식회사 브라우저 테스트 기기, 브라우저 테스트 서버, 이를포함하는 시스템 및 방법
KR20100069147A (ko) 2008-12-16 2010-06-24 주식회사 트로젝트 웹사이트 품질 테스트 방법 및 시스템
KR101768521B1 (ko) * 2016-05-02 2017-08-17 네이버 주식회사 이미지에 포함된 객체에 대한 정보 데이터를 제공하는 방법 및 시스템

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
이정규 외, 'Record-Playback 기술 기반의 GUI 테스트 케이스 자동 생성', 한국정보과학회, 2007. *
조현정 외, '철도시스템 소프트웨어 테스트 커버리지 자동화 도구 및 기준 분석', 한국산학기술학회, 2010. *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210045284A (ko) * 2019-10-16 2021-04-26 카페24 주식회사 이종 쇼핑몰 간의 연동 방법
KR20210045283A (ko) * 2019-10-16 2021-04-26 카페24 주식회사 이종 플랫폼 간의 자동 연동 방법, 장치 및 시스템
KR102289884B1 (ko) * 2020-02-12 2021-08-17 현대오토에버 주식회사 애플리케이션 테스트에서 객체를 추출하는 방법 및 시스템
WO2022220311A1 (ko) * 2021-04-12 2022-10-20 카페24 주식회사 이종 플랫폼 간의 자동 연동 방법, 장치 및 시스템
KR102470683B1 (ko) * 2021-11-25 2022-11-25 숭실대학교 산학협력단 단위 테스트 케이스 기반의 보안 설계 결함 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치
WO2023096152A1 (ko) * 2021-11-25 2023-06-01 숭실대학교 산학협력단 단위 테스트 케이스 기반의 보안 설계 결함 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치

Also Published As

Publication number Publication date
KR102292901B1 (ko) 2021-08-24

Similar Documents

Publication Publication Date Title
CN110119786B (zh) 文本话题分类方法及装置
KR20190113680A (ko) 웹 페이지의 테스트 케이스 생성 방법 및 장치
Kavasidis et al. A saliency-based convolutional neural network for table and chart detection in digitized documents
Dimitrovski et al. Hierarchical classification of diatom images using ensembles of predictive clustering trees
CN112347244B (zh) 基于混合特征分析的涉黄、涉赌网站检测方法
Liu et al. Label to region by bi-layer sparsity priors
US11954139B2 (en) Deep document processing with self-supervised learning
US20240012846A1 (en) Systems and methods for parsing log files using classification and a plurality of neural networks
CN112700408B (zh) 模型训练方法、图像质量评估方法及装置
US11675970B2 (en) Machine learning systems and methods for automatically tagging documents to enable accessibility to impaired individuals
Niu et al. Weakly supervised semantic segmentation for joint key local structure localization and classification of aurora image
US11600088B2 (en) Utilizing machine learning and image filtering techniques to detect and analyze handwritten text
Wu et al. Improving vqa and its explanations\\by comparing competing explanations
CN112100377A (zh) 文本分类方法、装置、计算机设备和存储介质
Stahl et al. Deeppdf: A deep learning approach to extracting text from pdfs
CN113806198B (zh) 一种基于深度学习的系统状态诊断方法
CN103218420B (zh) 一种网页标题提取方法及装置
Zhang et al. Deep contextual stroke pooling for scene character recognition
CN113535960A (zh) 一种文本分类方法、装置和设备
Choudhary et al. Offline handwritten mathematical expression evaluator using convolutional neural network
CN114238735B (zh) 一种互联网数据智能采集方法
Hürriyetoǧlu et al. Relevancer: Finding and labeling relevant information in tweet collections
Xu et al. Estimating similarity of rich internet pages using visual information
Sevim et al. Multi-class document image classification using deep visual and textual features
CN111898034A (zh) 新闻内容推送方法、装置、存储介质及计算机设备

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