KR102352162B1 - 소프트웨어 개발 및 테스트 자동화 프레임워크 - Google Patents

소프트웨어 개발 및 테스트 자동화 프레임워크 Download PDF

Info

Publication number
KR102352162B1
KR102352162B1 KR1020200057016A KR20200057016A KR102352162B1 KR 102352162 B1 KR102352162 B1 KR 102352162B1 KR 1020200057016 A KR1020200057016 A KR 1020200057016A KR 20200057016 A KR20200057016 A KR 20200057016A KR 102352162 B1 KR102352162 B1 KR 102352162B1
Authority
KR
South Korea
Prior art keywords
test
source code
unit
management server
configuration management
Prior art date
Application number
KR1020200057016A
Other languages
English (en)
Other versions
KR20210138933A (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 KR1020200057016A priority Critical patent/KR102352162B1/ko
Priority to PCT/KR2020/006278 priority patent/WO2021230394A1/ko
Publication of KR20210138933A publication Critical patent/KR20210138933A/ko
Application granted granted Critical
Publication of KR102352162B1 publication Critical patent/KR102352162B1/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/3696Methods or tools to render software testable
    • 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/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/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/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Software Systems (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 소프트웨어 개발 및 테스트 자동화 프레임워크에 관한 것으로서, 개발자들에 의해 소프트웨어 개발 과정에서 생성된 소스코드가 저장되는 형상관리서버와, 상기 형상관리서버에 저장된 소스코드를 테스트하는 테스트유닛과, 상기 테스트유닛으로부터, 상기 소스코드의 테스트에 대한 이벤트 로그를 수집하고, 해당 이벤트 로그를 토대로 상기 소스코드의 테스트에 대한 프로세스 모델을 생성하는 모델도출유닛을 구비한다.
본 발명에 따른 소프트웨어 개발 및 테스트 자동화 프레임워크는 보다 다양한 상황에 대한 테스트를 수행할 수 있고, 테스트를 위한 프로세스 모델을 제공할 수 있으므로 보다 신뢰도가 높은 테스트 결과를 도출할 수 있는 장점이 있다.

Description

소프트웨어 개발 및 테스트 자동화 프레임워크{Software development and test automation framework}
본 발명은 소프트웨어 개발 및 테스트 자동화 프레임워크에 관한 것으로서, 더욱 상세하게는 소프트웨어의 개발 과정에서 보다 정확하고 신속하게 소스코드를 테스트할 수 있는 소프트웨어 개발 및 테스트 자동화 프레임워크에 관한 것이다.
4차 산업혁명으로 대변되는 지능정보사회가 도래하면서 디지털 변혁을 위한 핵심 동력으로 소프트웨어가 조명 받고 있으며, 최근 정보기술(IT) 뿐 아니라 자동차, 건설, 금융, 제조업 등 전 산업에서 소프트웨어의 비중이 높아지고 있다.
소프트웨어의 경쟁력은 품질이 좌우하며, 그에 따라 애자일 테스트, 테스트 주도 개발 등 다양한 소프트웨어 테스트 방법론이 사용되고, 이를 위해 테스트 자동화 도구가 필수적으로 사용되고 있다.
종래의 소프트웨어를 테스트하는 기술은 단순히 소프트웨어의 소스코드를 정적 분석 또는 동적 분석에 의한 테스트를 수행하는 것으로서, 보다 다양한 상황에 대한 소스코드의 테스트를 수행하고 어렵고, 테스트 신뢰성이 떨어지는 단점이 있다.
등록특허공보 제10-2092250호: 정적 분석 결과를 이용한 소프트웨어 테스트 방법과 장치 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
본 발명은 상기와 같은 문제점을 개선하기 위해 창안된 것으로서, 보다 다양한 상황에 대한 테스트를 수행할 수 있고, 소프트웨어 품질 확보에 활용할 수 있는 프로세스 모델 분석 기반의 소프트웨어 개발 및 테스트 자동화 프레임워크를 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명에 따른 소프트웨어 개발 및 테스트 자동화 프레임워크는 개발자들에 의해 소프트웨어 개발 과정에서 생성된 소스코드가 저장되는 형상관리서버와, 상기 형상관리서버에 저장된 소스코드를 테스트하는 테스트유닛과, 상기 테스트유닛으로부터, 상기 소스코드의 테스트에 대한 이벤트 로그를 수집하고, 해당 이벤트 로그를 토대로 상기 소스코드의 테스트에 대한 프로세스 모델을 생성하는 모델도출유닛을 구비한다.
상기 테스트유닛은 상기 소프트웨어의 소스코드를 기등록된 리뷰어가 검토할 수 있도록 상기 형상관리서버에 저장된 소스코드를 해당 리뷰어의 단말기로 전송하는 전송모듈과, 상기 리뷰어의 단말기로부터 상기 소스코드에 대한 리뷰어의 검토의견을 수신하고, 해당 검토의견을 상기 형상관리서버 또는 상기 개발자의 단말기로 전송하는 리뷰모듈을 구비한다.
상기 전송모듈은 상기 소스코드를 컴파일하고, 상기 소스코드의 컴파일된 파일과, 해당 소스코드를 상기 리뷰어의 단말기로 전송한다.
상기 테스트 유닛은 상기 형상관리서버에 저장된 소스코드에 대한 정적분석을 수행하는 정적분석모듈을 더 구비할 수 있다.
상기 테스트 유닛은 기입력된 테스트 케이스에 따라 해당 소스코드를 테스트하고, 테스트 결과를 상기 형상관리서버 또는 상기 개발자의 단말기에 전송하는 테스트 케이스 모듈을 더 구비할 수 있다.
상기 테스트 유닛은 상기 형상관리서버에 저장된 소스코드의 작동을 검증할 수 있도록 단위 테스트(unit test)를 수행하고, 테스트 결과를 상기 형상관리서버 또는 상기 개발자의 단말기에 전송하는 단위 테스트 모듈을 더 구비할 수 있다.
상기 테스트 유닛은 상기 소프트웨어의 사용자로부터 제공받은 요구사항에 대응되는 인수 테스트 시나리오에 따라 상기 소스코드를 테스트하고, 상기 요구사항에 대한 상기 소스코드의 작동 상태의 결과 정보를 상기 형상관리서버 또는 상기 개발자의 단말기에 전송하는 인수 테스트 모듈을 더 구비할 수 있다.
상기 테스트 유닛은 상기 소프트웨어의 성능 품질 검사를 위한 성능 품질 기준에 대응되는 품질 테스트 시나리오에 따라 상기 소스코드를 테스트하고, 테스트 결과를 상기 형상관리서버 또는 상기 개발자의 단말기에 전송하는 성능 테스트 모듈을 더 구비할 수도 있다.
상기 테스트 유닛은 외부 데이터 입출력 인터페이스에서의 상호 운용성을 확인하기 위한 운용성 테스트 시나리오에 따라 상기 소스코드를 테스트하고, 테스트 결과를 상기 형상관리서버 또는 상기 개발자의 단말기에 전송하는 운용성 테스트 모듈을 더 구비할 수도 있다.
상기 모델도출유닛은 상기 개발자들에 의해 입력된 상기 소프트웨어 개발 과정에서 발생하는 테스트 로그 및 상기 테스트 유닛에서 상기 소스코드의 테스트에 대한 이벤트 로그를 수집하는 로그 수집부와, 상기 테스트 로그 및 이벤트 로그를 토대로 상기 프로세스 모델을 생성하는 프로세스 모델링부와, 상기 개발자에 의해 선택된 옵션항목과 임계값을 토대로 상기 프로세스 모델에서 단위 프로세스들 사이의 연결 경로를 재구성하여 최종 프로세스 모델을 생성하는 필터링부를 구비하고, 상기 옵션 항목은, 두 작업의 거리, 테스트 작업 흐름의 구조 및 중복되는 테스트 작업 관계의 횟수 중 적어도 하나이며, 상기 두 작업의 거리는, 연속되는 두 테스트 작업 사이의 관계인 직접 상관관계에 의한 거리 및 연속되지 않은 두 테스트 작업 사이의 관계인 간접 상관관계에 의한 거리를 포함하고, 상기 필터링부는, 상기 선택된 옵션 항목에 따라 계산된 단위 프로세스들 사이의 수치가 상기 임계값보다 작은 연결 경로를 삭제하여 상기 최종 프로세스 모델을 생성할 수 있다.
본 발명에 따른 소프트웨어 개발 및 테스트 자동화 프레임워크는 보다 다양한 상황에 대한 테스트를 수행할 수 있고, 테스트를 위한 프로세스 모델을 제공할 수 있으므로 보다 신뢰도가 높은 테스트 결과를 도출할 수 있는 장점이 있다.
도 1은 본 발명에 따른 소프트웨어 개발 및 테스트 자동화 프레임워크에 대한 개념도이고,
도 2는 도 1의 소프트웨어 개발 및 테스트 자동화 프레임워크에 대한 블럭도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 따른 소프트웨어 개발 및 테스트 자동화 프레임워크에 대해 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하여 도시한 것이다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1 및 도 2에는 본 발명에 따른 소프트웨어 개발 및 테스트 자동화 프레임워크(100)가 도시되어 있다.
도면을 참조하면, 상기 소프트웨어 개발 및 테스트 자동화 프레임워크(100)는 개발자들에 의해 소프트웨어 개발 과정에서 생성된 소스코드가 저장되는 형상관리서버(110)와, 상기 형상관리서버(110)에 저장된 소스코드를 테스트하는 테스트유닛(120)과, 상기 테스트유닛(120)으로부터, 상기 소스코드의 테스트에 대한 이벤트 로그를 수집하고, 해당 이벤트 로그를 토대로 상기 소스코드의 테스트에 대한 프로세스 모델을 생성하는 모델도출유닛(130)을 구비한다.
상기 형상관리서버(110)는 개발자들이 보유한 개발자의 단말기(15)와 데이터 통신하며, 해당 개발자의 단말기(15)를 통해 업로드되는 소프트웨어의 소스코드를 저장한다. 개발자들은 소프트웨어 개발 과정에서, 자신이 작성한 소스코드를 주기적으로 해당 형상관리서버(110)에 업로드한다.
테스트유닛(120)은 상기 소프트웨어의 소스코드를 기등록된 리뷰어가 검토할 수 있도록 상기 형상관리서버(110)에 저장된 소스코드를 해당 리뷰어의 단말기(16)로 전송하는 전송모듈(121)과, 상기 리뷰어의 단말기(16)로부터 상기 소스코드에 대한 리뷰어의 검토의견을 수신하고, 해당 검토의견을 상기 형상관리서버(110) 또는 상기 개발자의 단말기(15)로 전송하는 리뷰모듈(122)과, 상기 형상관리서버(110)에 저장된 소스코드에 대한 정적분석을 수행하는 정적분석모듈(123)과, 테스트 케이스에 따라 해당 소스코드를 테스트하는 테스트 케이스 모듈(124)과, 상기 형상관리서버(110)에 저장된 소스코드의 작동을 검증할 수 있도록 단위 테스트(unit test)를 수행하는 단위 테스트 모듈(125)과, 상기 소프트웨어의 사용자로부터 제공받은 요구사항에 따라 상기 소스코드를 테스트하는 인수 테스트 모듈(126)과, 상기 소프트웨어의 성능 품질 테스트를 수행하는 성능 테스트 모듈(127)과, 상기 소프트웨어의 소스코드의 상호 운용성을 테스트하는 운용성 테스트 모듈(128)을 구비한다.
전송모듈(121)은 형상관리서버(110)에 연결되며, 상기 형상관리서버(110)에 저장된 소스코드를 각 리뷰어의 단말기(16)로 전송한다. 여기서, 리뷰어는 해당 소프트웨어 개발에 대한 전문가로서, 시니어 개발자나, 개발자들 중 해당 소스코드를 업로드한 개발자를 제외한 나머지 개발자가 적용된다. 이때, 상기 전송모듈(121)은 상기 소스코드를 컴파일(compile)하고, 상기 소스코드의 컴파일된 파일과, 해당 소스코드를 상기 리뷰어의 단말기(16)로 전송할 수 있다. 이때, 리뷰어는 해당 전송모듈(121)로부터 전송된 소스코드를 검토하고, 해당 소스코드에 대한 검토의견을 리뷰어의 단말기(16)를 통해 전송한다.
리뷰모듈(122)은 리뷰어의 단말기(16)로부터 전송된 해당 소스코드에 대한 검토의견을 수신하여 형상관리서버(110)에 저장하거나 개발자의 단말기(15)로 전송할 수 있다. 이때, 형상관리서버(110)는 접속된 개발자들의 단말기에, 해당 소스코드에 대한 검토의견을 표시할 수 있도록 대시보드가 포함된 정보표시용 웹 페이지를 제공할 수 있다.
정적분석모듈(123)은 형상관리서버(110)에 접속하여, 코딩규칙 또는 런타임오류분석 등을 통해 해당 형상관리서버(110)에 저장된 소스코드에 대한 정적분석을 수행한다. 정적 분석(static analysis)은 소프트웨어를 실제로 실행가능한 형태로 만들지 않고, 소스 코드를 훑는 방식으로 소스 코드를 분석한다. 정적분석모듈(123)은 각 개발환경 및 개발언어에 맞는 체크 함수를 가지고, 개발자의 소스코드에 대해 구문에러(syntax error)를 체크하여 치명적인 수정사항(Critical), 경고(Warning), 참조(Reference)의 발생 여부를 분석한다. 여기서, 치명적인 수정사항(Critical)은 문제가 생길 여지가 많은 코드를 말하며, 경고(Warning)는 문제는 없지만 수정하면 좋은 코드를 말하고, 참조(Reference)는 문제가 없고 수정하지 않아도 되지만, 일반적인 규칙에 어긋나는 코드를 말한다. 상기 정적분석모듈(123)은 소스코드에 대한 정적분석을 수행하기 위해 종래에 일반적으로 사용되는 분석수단이므로 상세한 설명은 생략한다.
해당 정적분석모듈(123)은 소스코드에 대한 정적분석 결과를 형상관리서버(110)에 저장하거나 개발자의 단말기(15)로 전송할 수 있다. 이때, 형상관리서버(110)는 정보표시용 웹 페이지에 해당 정적분석 결과를 게시할 수 있다.
테스트 케이스 모듈(124)은 기입력된 테스트 케이스에 따라 해당 소스코드를 테스트한다. 해당 테스트 케이스 모듈(124)은 다수의 테스트 케이스가 저장된 데이터베이스(미도시)를 구비하고, 해당 데이터베이스에 저장된 테스트 케이스들을 이용하여 해당 소스코드를 테스트한다. 상기 데이터베이스에는 소프트웨어의 다양한 작동상황에 대응되는 테스트 케이스가 저장되어 있다.
해당 테스트 케이스 모듈(124)은 테스트 결과를 상기 형상관리서버(110) 또는 상기 개발자의 단말기(15)에 전송한다. 이때, 형상관리서버(110)는 정보표시용 웹 페이지에, 해당 테스트 결과를 게시할 수 있다.
단위 테스트 모듈(125)은 상기 형상관리서버(110)에 저장된 소스코드의 작동을 검증할 수 있도록 단위 테스트(unit test)를 수행한다. 단위 테스트는 소프트웨어의 기본 단위인 모듈을 테스트하여 해당 소프트웨어가 개발의도대로 구현되는지를 테스트한다. 즉, 단위 테스트 모듈(125)은 개발자가 작성한 소스코드의 논리구조가 정확하게 동작하는지 확인하기 위해 해당 단위테스트를 수행한다. 이때, 단위 테스트 모듈(125)은 기입력된 단위 테스트 시나리오에 따라 해당 소스코드를 실행하여 테스트할 수 있다. 또한, 상기 단위 테스트 모듈(125)은 범용성을 고려하여 다양한 분야에서 주로 사용되는 개발 언어인 자바 언어를 기준으로 구성되는 것이 바람직하다.
한편, 상기 단위 테스트 모듈(125)은 테스트 결과를 상기 형상관리서버(110) 또는 상기 개발자의 단말기(15)에 전송할 수 있다. 여기서, 형상관리서버(110)는 정보표시용 웹페이지에, 상기 단위 테스트 모듈(125)에서 제공되는 테스트 결과를 게시할 수 있다.
인수 테스트 모듈(126)은 상기 소프트웨어의 사용자로부터 제공받은 요구사항에 대응되는 인수 테스트 시나리오에 따라 상기 소스코드를 테스트한다. 상기 인수 테스트 시나리오는 소프트웨어의 사용자 즉, 수요처의 요구사항이 포함되도록 기작성되어 인수 테스트 모듈(126)에 저장된다. 해당 인수 테스트 모듈(126)은 범용성을 고려하여 웹 어플리케이션에 대한 인수 테스트를 기준으로 개발되는 것이 바람직하다.
여기서, 인수 테스트 모듈(126)은 테스트 결과로서, 상기 요구사항에 대한 상기 소스코드의 작동 상태의 결과 정보 즉, 수요처 요구사항을 기준으로 하여 소스코드의 테스트 수행정도를 커버리지로 제공한다. 해당 인수 테스트 모듈(126)은 해당 결과 정보를 상기 형상관리서버(110) 또는 상기 개발자의 단말기(15)에 전송한다. 여기서, 형상관리서버(110)는 정보표시용 웹페이지에, 상기 인수 테스트 모듈(126)에서 제공되는 결과정보를 게시할 수 있다.
성능 테스트 모듈(127)은 상기 소프트웨어의 성능 품질 검사를 위한 성능 품질 기준에 대응되는 품질 테스트 시나리오에 따라 상기 소스코드를 테스트한다. 상기 품질 테스트 시나리오는 소프트웨어의 성능에 대한 테스트를 위한 것으로서, 개발자 및 관리자에 의해 기작성되어 성능 테스트 모듈(127)에 저장되어 있다. 여기서, 성능 테스트 모듈(127)은 해당 품질 테스트 시나리오에 따라 소스코드를 실행하면서, 해당 소프트웨어의 실행시간, 예상된 부하에 대한 실행 시간, 응답시간, 처리 능력, 자원 사용량 등의 진단항목을 테스트한다. 성능 테스트 모듈(127)은 테스트 결과를 각 진단항목 별로 수치화하여 산출한다. 또한, 성능 테스트 모듈(127)은 각 진단 항목 별로, 기설정된 평가기준 이하인 진단항목에 대한 정보를 상기 테스트 결과에 포함시킬 수 있다.
상기 성능 테스트 모듈(127)은 테스트 결과를 상기 형상관리서버(110) 또는 상기 개발자의 단말기(15)에 전송한다. 여기서, 형상관리서버(110)는 정보표시용 웹페이지에, 상기 성능 테스트 모듈(127)에서 제공되는 테스트 결과를 게시할 수 있다. 한편, 상기 성능 테스트 모듈(127)은 범용성을 고려하여 웹 어플리케이션에 대한 성능 테스트를 기준으로 구성되는 것이 바람직하다.
상기 운용성 테스트 모듈(128)은 외부 데이터 입출력 인터페이스에서의 상호 운용성을 확인하기 위한 운용성 테스트 시나리오에 따라 상기 소스코드를 테스트한다. 상기 운용성 테스트 시나리오는 오류가 빈번하게 발생하는 부분인 외부 데이터 입출력 인터페이스에서의 상호 운용성을 확인할 수 있으며, 정의된 데이터 포맷 및 프로토콜의 처리가능여부와 유효하지 않은 데이터 유입에 따른 정상 작동 여부에 대한 강건성(robustness)을 테스트할 수 있도록 개발자 또는 관리자에 의해 작성되어 해당 운용성 테스트 모듈(128)에 저장되어 있다.
상기 운용성 테스트 모듈(128)은 테스트 결과를 형상관리서버(110) 또는 개발자의 단말기(15)에 전송한다. 여기서, 형상관리서버(110)는 정보표시용 웹페이지에, 상기 운용성 테스트 모듈(128)에서 제공되는 테스트 결과를 게시할 수 있다.
해당 형상관리서버(110)에서 제공되는 정보표시용 웹페이지에는, 리뷰어의 검토의견을 포함하여 정적분석모듈(123)의 분석결과, 테스트 케이스 모듈(124), 단위 테스트 모듈(125), 인수 테스트 모듈(126), 성능 테스트 모듈(127) 및 운용성 테스트 모듈(128)의 테스트 결과가 표시되어 개발자들에서 해당 소스코드의 테스트에 대한 모니터링 정보를 제공한다. 또한, 형상관리서버(110)는 통합빌드 프레임 워크 수행 과장 중 성공 또는 실패 등의 이벤트, 예를 들면, 정적 분석 통과 기준 미달과 같은 이벤트가 발생하는 경우, 해당 소스코드의 개발자에게 해당 이벤트에 대한 알림정보를 제공할 수 있다. 또한,형상관리서버(110)는 통합빌드프레임워크 동작 동안 발생하는 산출물, 즉, 테스트유닛(120)의 테스트 결과물을 저장 관리할 수 있다.
한편, 모델도출유닛(130)은 소트프웨어 개발 과정 중에서 발생하는 테스트 로그 및 테스트유닛(120)에서 수집한 이벤트 로그를 데이터마이닝 기법으로 분석하여 프로세스 효율성을 평가하기 위한 프로세스 모델을 생성한다. 상기 모델도출유닛(130)은 로그수집부, 프로세스 모델링부(132) 및 필터링부(133)를 구비한다.
로그 수집부(131)는 개발자들에 의해 입력된 소프트웨어 개발 과정에서 발생하는 테스트 로그 및 테스트유닛(120)에서 소스코드의 테스트에 대한 이벤트 로그를 수집한다. 로그 수집부(131)는 테스트유닛(120)의 정적분석모듈(123), 테스트 케이스 모듈(124), 단위 테스트 모듈(125), 인수 테스트 모듈(126), 성능 테스트 모듈(127), 운용성 테스트 모듈(128)에 접속하여 소스코드의 테스트 작업에 대한 이벤트 로그를 수집한다. 여기서, 이벤트 로그에는 프로세스 인스턴트(instance), 테스트 작업 업무(activity), 테스트 작업의 타입, 테스트 작업 수행시간 등이 기록된다. 또한, 로그 수집부(131)는 개발자의 단말기(15)에 접속하여 해당 개발자가 업로드하는 테스트 로그를 수집할 수도 있다.
프로세스 모델링부(132)는 이벤트 로그 수집부(131)가 수집한 이벤트 로그 또는 테스트 로그를 전달받아, 프로세스 모델의 분석을 위한 전처리 과정을 수행하고, 분석 과정을 통해 이벤트 로그가 수집된 특정 업무에 대한 프로세스 모델을 생성한다.
필터링부(133)는 개발자에 의해 선택되는 옵션 항목과 임계값을 이용하여, 프로세스 모델링부(132)에서 생성한 프로세스 모델에서 단위 프로세스들 사이의 연결 경로를 재구성하여 최종 프로세스 모델을 생성한다.
필터링부(133)는 선택된 옵션 항목에 따라 계산된 단위 프로세스들 사이의 수치가 임계값보다 작은 연결 경로를 삭제하여 최종 프로세스 모델을 생성할 수 있다.
개발자에 의해 선택되는 옵션 항목에는, 두 작업의 거리, 테스트 작업 흐름의 구조, 중복되는 테스트 작업 관계의 횟수 등이 있다. 이에 따라, 두 작업의 거리를 고려할 것인지 여부, 테스트 작업 흐름의 구조를 고려할 것인지 여부, 및 중복되어 나타나는 테스트 작업 관계의 횟수를 고려할 것인지 여부에 따라, 모두 8가지 경우의 수가 발생할 수 있다. 필터링부(133)는 이와 같은 옵션 항목의 선택이나 임계값의 선택이나 설정 등을 위해 별도의 메뉴를 상기 개발자의 단말기(15)에 제공할 수 있다.
해당 옵션 항목에 대해 상세히 설명하면 다음과 같다. 본 발명의 모델도출유닛(130)은 미리 설정된 옵션 항목 중에서 하나 이상을 선택적으로 사용할 수 있다. 즉, 두 작업의 거리, 테스트 작업 흐름의 구조, 중복되는 테스트 작업 관계의 횟수 등과 같은 옵션 항목 중에서 하나 이상을 선택하여, 선택한 옵션 항목을 반영한 최종 프로세스 모델을 도출할 수 있다.
먼저, 두 작업의 거리는, 직접 상관관계와 간접 상관관계의 두 가지 상관관계의 거리로 나눌 수 있다. 직접 상관관계는 연속되는 두 테스트 작업 사이의 관계를 의미한다. 예컨대, 두 가지 테스트 작업 A, B가 있다고 할 때, 로그에서 A- B 순으로 작업이 수행되었을 경우, 작업 A와 B 사이에는 직접 상관관계가 존재하는 것으로 한다. 직접 상관관계를 나타내는 두 작업 사이의 거리는 1로 계산한다.
직접 상관관계를 고려하지 않는 경우에는 간접 상관관계를 고려한다. 간접 상관관계는 연속되지 않는 두 테스트 업무사이의 관계를 의미한다. 예컨대, 세 가지 업무 A, B, C가 있다고 할 때, 로그에서 A-C-B 순으로 작업이 수행되었을 경우, 작업 A와 B 사이에 간접 상관관계가 존재하는 것으로 한다. 간접 상관관계의 경우, 두 작업 사이의 거리를 (β)m-1 로 정의한다. 여기서, β는 임의의 값이며, m은 작업A에서 작업 B까지의 거리를 계산할 때, A를 제외한 A와 B 사이에 존재하는 모든 작업과 B를 포함한 개수이다.
따라서, 직접 상관관계의 거리는 항상 1로 계산되며, 간접 상관관계는 β값에 따라 같은 거리라도 다른 값으로 계산될 수 있고, 거리가 멀수록 값이 작아지게 된다. 다음의 [표 1]은 β = 05인 경우, 직접 상관관계와 간접상관관계의 계산 예를 나타낸 것이다.
이벤트 로그 작업 관계 직접 상관관계 간접 상관관계
A-B-C-D A-B 1 1
A-C X 0.5(=0.5(2-1))
A-D X 0.25(=0.5(3-1))
B-C 1 1
B-D X 0.5(=0.5(2-1))
C-D 1 1
이와 같이 두 작업의 거리를 수치화할 수 있다. 이에 따라, 임계값을 설정하여, 두 작업의 거리가 설정된 임계값 이하의 값을 갖는 두 작업 사이의 연결 경로를 삭제하여, 연결 경로를 재구성하여 간소화된 최종 프로세스 모델을 생성할 수 있다.다음으로, 테스트 작업 흐름의 구조의 고려 여부를 옵션 항목으로 선택할 수 있다. 작업 흐름의 구조, 즉 작업 간의관계에 대한 고려 여부에 따라 작업 관계의 수가 달라질 수 있다.다음으로 중복되는 테스트 작업 관계의 횟수를 고려하는 경우, 하나의 작업 관계가 전체 케이스에서 나타내는 횟수가 반영될 수 있다. 이러한 중복되는 작업 관계의 횟수의 반영에 따라 전체적인 프로세스 모델 분석 결과가 달라질 수 있다.
한편, 본 발명의 모델도출유닛(130)은 도면에 도시되진 않았지만, 최종 프로세서 모델을 검토 및 분석하여, 최종 프로세스 모델에 기반한 분석 결과를 출력할 수 있는 프로세스 분석부를 더 구비할 수 있다.
만일, 개발자가 다른 옵션 항목이나 임계값을 선택하면, 프로세스 모델링부(132) 및 필터링부(133)는 새로 최종 프로세서 모델을 생성하고, 프로세스 분석부는 이에 따른 분석 결과를 출력한다. 최종 프로세스 모델에 대한 분석 결과는 다양한 형태의 표나 그래프 등으로 출력할 수 있다.
이와 같은 과정에 의해, 두 작업의 거리, 작업 흐름의 구조, 중복되는 작업 관계의 횟수 등과 같은 사용자가 선택한 옵션 항목을 반영한 프로세스 모델을 도출할 수 있다. 또한, 도출한 프로세스 모델의 분석 결과를 시뮬레이션하여, 전체적인 업무 수행을 확인함으로써, 병목 업무나 병목 부서와 같은 프로세스 단절 현상을 파악할 수 있는 등 전체적인 업무 프로세스 개선에 사용할 수 있다.
상술된 바와 같이 상기 모델도출유닛(130)은 작업의 거리, 테스트 작업 흐름의 구조, 중복되는 테스트 작업 관계의 횟수 등을 선택적으로 고려함으로써, 보다 신뢰도가 높으면서 상황에 적합한 테스트 분석 결과를 나타낼 수 있는 프로세스 모델을 도출할 수 있다. 이와 같은 과정에 따라 프로세스 모델을 도출함으로써, 보다 사실적이며 정확한 분석 결과를 제시할 수 있다. 개발자는 모델도출유닛(130)으로부테 제공받은 프로세스 모델을 소프트웨어 개발에 이용하여 보다 신뢰성이 높고, 수요처의 요구사항을 만족시킬 수 있는 소프트웨어를 제작할 수 있다.
상술된 본 발명에 따른 소프트웨어 개발 및 테스트 자동화 프레임워크(100)는 보다 다양한 상황에 대한 테스트를 수행할 수 있고, 테스트를 위한 프로세스 모델을 제공할 수 있으므로 보다 신뢰도가 높은 테스트 결과를 도출할 수 있는 장점이 있다.
제시된 실시예들에 대한 설명은 임의의 본 발명의 기술분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 발명의 기술 분야에서 통상의 지식을 가진자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
100: 소프트웨어 개발 및 테스트 자동화 프레임워크
110: 형상관리서버
120: 테스트유닛
121: 전송모듈
122: 리뷰모듈
123: 정적분석모듈
124: 테스트 케이스 모듈
125: 단위 테스트 모듈
126: 인수 테스트 모듈
127: 성능 테스트 모듈
128: 운용성 테스트 모듈
130: 모델도출유닛
131: 로그 수집부
132: 프로세스 모델링부
133: 필터링부

Claims (10)

  1. 개발자들에 의해 소프트웨어 개발 과정에서 생성된 소스코드가 저장되는 형상관리서버;
    상기 형상관리서버에 저장된 소스코드를 테스트하는 테스트유닛;
    상기 테스트유닛으로부터, 상기 소스코드의 테스트에 대한 이벤트 로그를 수집하고, 해당 이벤트 로그를 토대로 상기 소스코드의 테스트에 대한 프로세스 모델을 생성하는 모델도출유닛;을 구비하고,
    상기 테스트유닛은
    상기 소프트웨어의 소스코드를 기등록된 리뷰어가 검토할 수 있도록 상기 형상관리서버에 저장된 소스코드를 해당 리뷰어의 단말기로 전송하는 전송모듈;
    상기 리뷰어의 단말기로부터 상기 소스코드에 대한 리뷰어의 검토의견을 수신하고, 해당 검토의견을 상기 형상관리서버 또는 상기 개발자의 단말기로 전송하는 리뷰모듈; 및
    상기 소프트웨어의 성능 품질 검사를 위한 성능 품질 기준에 대응되는 품질 테스트 시나리오에 따라 상기 소스코드를 테스트하고, 테스트 결과를 상기 형상관리서버 또는 상기 개발자의 단말기에 전송하는 성능 테스트 모듈;을 구비하고,
    상기 성능 테스트 모듈은 해당 품질 테스트 시나리오에 따라 상기 소스코드를 실행하면서 해당 소프트웨어의 실행시간, 예상된 부하에 대한 실행 시간, 응답 시간 및 자원 사용량을 테스트하는,
    소프트웨어 개발 및 테스트 자동화 프레임워크.
  2. 삭제
  3. 제1항에 있어서,
    상기 전송모듈은 상기 소스코드를 컴파일하고, 상기 소스코드의 컴파일된 파일과, 해당 소스코드를 상기 리뷰어의 단말기로 전송하는,
    소프트웨어 개발 및 테스트 자동화 프레임워크.
  4. 제1항에 있어서,
    상기 테스트 유닛은 상기 형상관리서버에 저장된 소스코드에 대한 정적분석을 수행하는 정적분석모듈;을 더 구비하는,
    소프트웨어 개발 및 테스트 자동화 프레임워크.
  5. 제1항에 있어서,
    상기 테스트 유닛은 기입력된 테스트 케이스에 따라 해당 소스코드를 테스트하고, 테스트 결과를 상기 형상관리서버 또는 상기 개발자의 단말기에 전송하는 테스트 케이스 모듈;을 더 구비하는,
    소프트웨어 개발 및 테스트 자동화 프레임워크.
  6. 제1항에 있어서,
    상기 테스트 유닛은 상기 형상관리서버에 저장된 소스코드의 작동을 검증할 수 있도록 단위 테스트(unit test)를 수행하고, 테스트 결과를 상기 형상관리서버 또는 상기 개발자의 단말기에 전송하는 단위 테스트 모듈;을 더 구비하는,
    소프트웨어 개발 및 테스트 자동화 프레임워크.
  7. 제1항에 있어서,
    상기 테스트 유닛은 상기 소프트웨어의 사용자로부터 제공받은 요구사항에 대응되는 인수 테스트 시나리오에 따라 상기 소스코드를 테스트하고, 상기 요구사항에 대한 상기 소스코드의 작동 상태의 결과 정보를 상기 형상관리서버 또는 상기 개발자의 단말기에 전송하는 인수 테스트 모듈;을 더 구비하는,
    소프트웨어 개발 및 테스트 자동화 프레임워크.
  8. 삭제
  9. 제1항에 있어서,
    상기 테스트 유닛은 외부 데이터 입출력 인터페이스에서의 상호 운용성을 확인하기 위한 운용성 테스트 시나리오에 따라 상기 소스코드를 테스트하고, 테스트 결과를 상기 형상관리서버 또는 상기 개발자의 단말기에 전송하는 운용성 테스트 모듈;을 더 구비하는,
    소프트웨어 개발 및 테스트 자동화 프레임워크.
  10. 제1항에 있어서,
    상기 모델도출유닛은
    상기 개발자들에 의해 입력된 상기 소프트웨어 개발 과정에서 발생하는 테스트 로그 및 상기 테스트 유닛에서 상기 소스코드의 테스트에 대한 이벤트 로그를 수집하는 로그 수집부;
    상기 테스트 로그 및 이벤트 로그를 토대로 상기 프로세스 모델을 생성하는 프로세스 모델링부; 및
    상기 개발자에 의해 선택된 옵션항목과 임계값을 토대로 상기 프로세스 모델에서 단위 프로세스들 사이의 연결 경로를 재구성하여 최종 프로세스 모델을 생성하는 필터링부;를 구비하고,
    상기 옵션 항목은, 두 작업의 거리, 테스트 작업 흐름의 구조 및 중복되는 테스트 작업 관계의 횟수 중 적어도 하나이며,
    상기 두 작업의 거리는, 연속되는 두 테스트 작업 사이의 관계인 직접 상관관계에 의한 거리 및 연속되지 않은 두 테스트 작업 사이의 관계인 간접 상관관계에 의한 거리를 포함하고,
    상기 필터링부는, 상기 선택된 옵션 항목에 따라 계산된 단위 프로세스들 사이의 수치가 상기 임계값보다 작은 연결 경로를 삭제하여 상기 최종 프로세스 모델을 생성하는,
    소프트웨어 개발 및 테스트 자동화 프레임워크.
KR1020200057016A 2020-05-13 2020-05-13 소프트웨어 개발 및 테스트 자동화 프레임워크 KR102352162B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200057016A KR102352162B1 (ko) 2020-05-13 2020-05-13 소프트웨어 개발 및 테스트 자동화 프레임워크
PCT/KR2020/006278 WO2021230394A1 (ko) 2020-05-13 2020-05-13 소프트웨어 개발 및 테스트 자동화 프레임워크

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200057016A KR102352162B1 (ko) 2020-05-13 2020-05-13 소프트웨어 개발 및 테스트 자동화 프레임워크

Publications (2)

Publication Number Publication Date
KR20210138933A KR20210138933A (ko) 2021-11-22
KR102352162B1 true KR102352162B1 (ko) 2022-01-19

Family

ID=78524401

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200057016A KR102352162B1 (ko) 2020-05-13 2020-05-13 소프트웨어 개발 및 테스트 자동화 프레임워크

Country Status (2)

Country Link
KR (1) KR102352162B1 (ko)
WO (1) WO2021230394A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114756478B (zh) * 2022-06-14 2022-08-19 深圳联友科技有限公司 一种soa服务自动化测试方法
CN117055844B (zh) * 2023-09-14 2023-12-22 深圳市多美达数码科技有限公司 一种基于互联网和云计算的软件开发方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101320264B1 (ko) 2011-09-09 2013-10-23 (주)엠젠 웹 기반의 소프트웨어 개발 및 테스트 자동화 장치
JP2014056388A (ja) * 2012-09-12 2014-03-27 Hitachi Solutions Ltd ソフトウェア業務処理テスト簡易化装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101282024B1 (ko) * 2013-04-11 2013-07-04 주식회사 제이윈파트너스 협업 도구 자동화시스템
KR101660892B1 (ko) * 2014-01-08 2016-09-29 울산과학기술원 프로세스 마이닝을 이용한 프로세스 모델 도출 방법 및 장치
KR20180083531A (ko) * 2017-01-13 2018-07-23 한국전자통신연구원 위성관제 소프트웨어를 위한 테스트 자동화 시스템 및 테스트 자동화 방법
KR102092250B1 (ko) 2017-12-26 2020-03-24 슈어소프트테크주식회사 정적 분석 결과를 이용한 소프트웨어 테스트 방법과 장치 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101320264B1 (ko) 2011-09-09 2013-10-23 (주)엠젠 웹 기반의 소프트웨어 개발 및 테스트 자동화 장치
JP2014056388A (ja) * 2012-09-12 2014-03-27 Hitachi Solutions Ltd ソフトウェア業務処理テスト簡易化装置

Also Published As

Publication number Publication date
WO2021230394A1 (ko) 2021-11-18
KR20210138933A (ko) 2021-11-22

Similar Documents

Publication Publication Date Title
KR102146173B1 (ko) 서비스 호출 정보 처리 방법 및 디바이스
Arisholm et al. Dynamic coupling measurement for object-oriented software
US11386154B2 (en) Method for generating a graph model for monitoring machinery health
JP2022501734A (ja) ソフトウェアシステムで原因および結果を決定的に報告する方法
JP5207007B2 (ja) モデル検証システム、モデル検証方法および記録媒体
Letier et al. Monitoring and control in scenario-based requirements analysis
US20070006037A1 (en) Automated test case result analyzer
CN110908890A (zh) 一种接口的自动测试方法和装置
EP2381367A1 (en) Method and apparatus for the performing unit testing of software modules in software systems
Azuma Software products evaluation system: quality models, metrics and processes—International Standards and Japanese practice
KR102352162B1 (ko) 소프트웨어 개발 및 테스트 자동화 프레임워크
US7721269B2 (en) System and method for detecting redundant subroutine calls
CN112241360B (zh) 一种测试用例生成方法、装置、设备及存储介质
WO2006102123A2 (en) Apparatus for analysing and organizing artifacts in a software application
KR102269286B1 (ko) 어노테이션 자동 진단 시스템
US10678864B2 (en) Analysis model preparing system, programming apparatus, and analysis model preparing method
CN112527312B (zh) 一种嵌入式系统的测试方法和测试装置
Samuel et al. A novel test case design technique using dynamic slicing of UML sequence diagrams
JP2009099111A (ja) 規則検査プログラム、規則検査方法および規則検査装置
JP5834991B2 (ja) 図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラム
CN112416735A (zh) 一种应用程序检测方法、装置及终端设备、存储介质
US20200391885A1 (en) Methods and systems for identifying aircraft faults
CN114968751A (zh) 一种无代码开发平台的程序调试方法和程序调试装置
KR101013415B1 (ko) RTC〔Robot Technology Component〕규격을 따르는 모듈을 테스트 하는 장치 및 방법
US20070112816A1 (en) Information processing apparatus, information processing method and program

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right