KR102201845B1 - 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 방법 및 그를 위한 시스템 - Google Patents

멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 방법 및 그를 위한 시스템 Download PDF

Info

Publication number
KR102201845B1
KR102201845B1 KR1020190090457A KR20190090457A KR102201845B1 KR 102201845 B1 KR102201845 B1 KR 102201845B1 KR 1020190090457 A KR1020190090457 A KR 1020190090457A KR 20190090457 A KR20190090457 A KR 20190090457A KR 102201845 B1 KR102201845 B1 KR 102201845B1
Authority
KR
South Korea
Prior art keywords
test
task
information
setting information
test cases
Prior art date
Application number
KR1020190090457A
Other languages
English (en)
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 KR1020190090457A priority Critical patent/KR102201845B1/ko
Application granted granted Critical
Publication of KR102201845B1 publication Critical patent/KR102201845B1/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/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable

Abstract

멀티 태스크로 동작하는 소프트웨어에서 자동화 단위 테스트를 수행할 수 있는 자동화 단위 테스트 방법 및 그를 위한 자동화 단위 테스트 시스템이 개시된다. 일 실시예에 따른 자동화 단위 테스트 방법은, 사용자로부터 복수의 테스트 케이스, 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크 및 적어도 하나의 태스크에 해당하는 태스크 파라미터를 포함하는 테스트 설정 정보를 수신하는 단계; 테스트 설정 정보에 기초하여 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 생성하는 단계; 복수의 테스트 케이스 각각에 대해, 태스크 파라미터에 기초하여 적어도 하나의 태스크를 시작하는 단계; 및 복수의 테스트 케이스 각각에 해당하는 테스트 결과 정보를 출력하는 단계를 포함하고, 태스크 파라미터는 적어도 하나의 태스크에 대한 시작 지연시간을 포함할 수 있다.

Description

멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 방법 및 그를 위한 시스템{AUTOMATION UNIT TEST METHOD OF MULTI-TASK BASED SOFTWARE AND SYSTEM FOR THE SAME}
본 발명은 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 방법 및 그를 위한 시스템에 관한 것이다.
일반적으로, 소프트웨어 단위 테스트는 개별 모듈이 제대로 구현되어 정해진 기능을 정확히 수행하는지를 테스트하기 위한 것으로, 단위 테스트에서 단위는 소프트웨어의 기본 단위인 함수로 정하는 것이 일반적이다. 따라서, 소프트웨어 단위 테스트는 프로그램의 기본 단위인 모듈(즉, 함수)을 테스트하여 모듈 테스트(module test)라고도 한다.
소프트웨어 단위 테스트용 도구로서, Google Test, CUnit, CppUnit 등이 알려져 있다. 이러한 소프트웨어 단위 테스트용 도구는 하나의 태스크에서 입력 및 출력과, 동작 중 정해진 절차에 따라 수행되는지 여부를 확인한다.
통상적으로, 소프트웨어 단위 테스트용 도구는 소프트웨어의 기본 단위인 함수를 테스트하기 위해 드라이버 모듈과 스텁 모듈을 생성하고, 생성된 드라이버 모듈 및 스텁 모듈을 이용하여 해당 함수를 실행시켜 해당 함수를 테스트한다.
종래의 소프트웨어 단위 테스트용 도구는 싱글 태스크 환경에서 사용하는데 문제가 없다. 그러나, 멀티 태스크 환경에서는 어떠한 하나의 태스크가 다른 태스크에 영향을 받아 테스트마다 다르게 동작할 수 있으므로 다양한 상황에 대해 정확한 단위 테스트를 수행하기 힘들다.
한편, 종래의 소프트웨어 단위 테스트용 도구는 멀티 태스크 기반 소프트웨어를 테스트하기 위해 사용자가 수동으로 각 태스크에 대한 드라이버 모듈이나 스텁 모듈을 생성하고, 각 태스크에 대해 드라이버 모듈이나 스텁 모듈을 개별적으로 수행해야 하는 불편함이 있다. 또한, 종래의 소프트웨어 단위 테스트용 도구는 멀티 태스크 기반 소프트웨어의 경우, 각 태스크에 대한 수행은 가능하지만, 태스크가 서로 연관되어 있을 때 발생하는 결함에 대해 테스트를 찾아내기 힘들다. 이로 인해, 종래의 소프트웨어 단위 테스트용 도구를 이용하여 태스크가 서로 연관되어 있을 경우에 발생하는 결함을 찾기 위해, 사용자는 드라이버 모듈이나 스텁 모듈을 이용하여 수동으로 다양한 상황을 입력하여 찾기 때문에 테스트하는데 많은 시간이 소요되고 다양한 상황을 입력하는데 한계가 있다.
본 발명은 멀티 태스크로 동작하는 소프트웨어에서 자동화 단위 테스트를 수행할 수 있는 자동화 단위 테스트 방법 및 그를 위한 자동화 단위 테스트 시스템을 제공할 수 있다.
본 발명의 일 실시예에 따르면, 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 방법이 개시될 수 있다. 일 실시예에 따른 자동화 단위 테스트 방법은, 사용자로부터 복수의 테스트 케이스, 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크 및 적어도 하나의 태스크에 해당하는 태스크 파라미터를 포함하는 테스트 설정 정보를 수신하는 단계; 테스트 설정 정보에 기초하여 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 생성하는 단계; 복수의 테스트 케이스 각각에 대해, 태스크 파라미터에 기초하여 적어도 하나의 태스크를 시작하는 단계; 및 복수의 테스트 케이스 각각에 해당하는 테스트 결과 정보를 출력하는 단계를 포함하고, 태스크 파라미터는 적어도 하나의 태스크에 대한 시작 지연시간을 포함할 수 있다.
일 실시예에 있어서, 테스트 설정 정보는, 복수의 테스트 케이스 각각과 연관된 테스트 케이스 정보를 설정하는 제1 테스트 설정 정보; 복수의 테스트 케이스 각각에 대해, 적어도 하나의 태스크와 연관된 태스크 정보를 설정하는 제2 테스트 설정 정보; 및 태스크 파라미터와 연관된 태스크 파라미터 정보를 설정하는 제3 테스트 설정 정보를 포함할 수 있다.
일 실시예에 있어서, 제1 테스트 설정 정보는 복수의 테스트 케이스 각각에 해당하는 테스트 케이스 ID(identification), 이름, 타입 및 반복 횟수를 포함할 수 있다.
일 실시예에 있어서, 제2 테스트 설정 정보는 복수의 테스트 케이스 각각에 대해 적어도 하나의 태스크에 해당하는 이름, 연관 함수명, 스택 사이즈, 스케쥴링 정책, 우선 순위 및 CPU 코어 마스크를 포함할 수 있다.
일 실시예에 있어서, 제3 테스트 설정 정보는 적어도 하나의 태스크에 해당하는 입력값, 예상 출력값 및 시작 지연시간을 포함할 수 있다.
일 실시예에 있어서, 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 생성하는 단계는, 시작 지연시간에 기초하여 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 정렬시키는 단계를 포함할 수 있다.
일 실시예에 있어서, 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 정렬시키는 단계는, 시작 지연시간이 작은 시간에서 높은 시간의 순서로 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 정렬시키는 단계를 포함할 수 있다.
일 실시예에 있어서, 복수의 테스트 케이스 각각에 대해, 태스크 파라미터에 기초하여 적어도 하나의 태스크를 시작하는 단계는, 타이머를 생성하여 시작하는 단계; 타이머의 수행시간과 시작 지연시간을 비교하는 단계; 및 타이머의 수행시간과 일치하는 시작 지연시간에 해당하는 태스크를 시작하는 단계를 포함할 수 있다.
일 실시예에 있어서, 복수의 테스트 케이스 각각에 해당하는 테스트 결과 정보를 출력하는 단계는, 입력값에 기초하여 해당 태스크를 실행하여 실제 출력값을 획득하는 단계; 실제 출력값과 예상 출력값을 비교하여 비교 정보를 생성하는 단계; 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크에서 예외 상황이 발행하였는지 여부를 나타내는 예외 상황 발생 정보를 생성하는 단계; 및 비교 정보 및 예외 상황 발생 정보에 기초하여 테스트 케이스 결과 정보를 생성하는 단계를 포함할 수 있다.
일 실시예에 있어서, 테스트 케이스 결과 정보를 생성하는 단계는, 실제 출력값과 예상 출력값이 일치하고 예외 상황이 발생하지 않은 것으로 판단되면 테스트 성공을 나타내는 테스트 결과 정보를 생성하는 단계를 포함할 수 있다.
일 실시예에 있어서, 테스트 케이스 결과 정보를 생성하는 단계는, 실제 출력값과 예상 출력값이 일치하지 않거나, 예외 상황이 발생한 것으로 판단되면 테스트 실패를 나타내는 테스트 결과 정보를 생성하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 시스템이 개시될 수 있다. 일 실시예에 따르면, 사용자로부터 복수의 테스트 케이스, 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크 및 적어도 하나의 태스크에 해당하는 태스크 파라미터를 포함하는 테스트 설정 정보를 수신하는 수신부; 테스트 설정 정보에 기초하여 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 생성하고, 복수의 테스트 케이스 각각에 대해, 태스크 파라미터에 기초하여 적어도 하나의 태스크를 시작하며, 복수의 테스트 케이스 각각에 해당하는 테스트 결과 정보를 생성하는 프로세서; 테스트 설정 정보 및 테스트 결과 정보를 저장하는 저장부; 및 테스트 결과 정보를 출력하는 출력부를 포함하고, 태스크 파라미터는 적어도 하나의 태스크에 대한 시작 지연시간을 포함할 수 있다.
일 실시예에 있어서, 테스트 설정 정보는, 복수의 테스트 케이스 각각과 연관된 테스트 케이스 정보를 설정하는 제1 테스트 설정 정보; 복수의 테스트 케이스 각각에 대해, 적어도 하나의 태스크와 연관된 태스크 정보를 설정하는 제2 테스트 설정 정보; 및 태스크 파라미터와 연관된 태스크 파라미터 정보를 설정하는 제3 테스트 설정 정보를 포함할 수 있다.
일 실시예에 있어서, 제1 테스트 설정 정보는 복수의 테스트 케이스 각각에 해당하는 테스트 케이스 ID, 이름, 타입 및 반복 횟수를 포함할 수 있다.
일 실시예에 있어서, 제2 테스트 설정 정보는 복수의 테스트 케이스 각각에 대해 적어도 하나의 태스크에 해당하는 이름, 연관 함수명, 스택 사이즈, 스케쥴링 정책, 우선 순위 및 CPU 코어 마스크를 포함할 수 있다.
일 실시예에 있어서, 제3 테스트 설정 정보는 적어도 하나의 태스크에 해당하는 입력값, 예상 출력값 및 시작 지연시간을 포함할 수 있다.
일 실시예에 있어서, 프로세서는, 시작 지연시간에 기초하여 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 정렬시킬 수 있다.
일 실시예에 있어서, 프로세서는, 시작 지연시간이 작은 시간에서 높은 시간의 순서로 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 정렬시킬 수 있다.
일 실시예에 있어서, 프로세서는, 타이머를 생성하여 시작하고, 타이머의 수행시간과 시작 지연시간을 비교하고, 타이머의 수행시간과 일치하는 시작 지연시간에 해당하는 태스크를 시작할 수 있다.
일 실시예에 있어서, 프로세서는, 입력값에 기초하여 해당 태스크를 실행하여 실제 출력값을 획득하고, 실제 출력값과 예상 출력값을 비교하여 비교 정보를 생성하고, 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크에서 예외 상황이 발행하였는지 여부를 나타내는 예외 상황 발생 정보를 생성하고, 비교 정보 및 예외 상황 발생 정보에 기초하여 테스트 케이스 결과 정보를 생성할 수 있다.
일 실시예에 있어서, 프로세서는, 실제 출력값과 예상 출력값이 일치하고 예외 상황이 발생하지 않은 것으로 판단되면 테스트 성공을 나타내는 테스트 결과 정보를 생성할 수 있다.
일 실시예에 있어서, 프로세서는, 실제 출력값과 예상 출력값이 일치하지 않거나, 예외 상황이 발생한 것으로 판단되면 테스트 실패를 나타내는 테스트 결과 정보를 생성할 수 있다.
본 발명의 일 실시예에 따르면, 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 시스템이 개시될 수 있다. 일 실시예에 따른 자동화 단위 테스트 시스템은, 사용자로부터 복수의 테스트 케이스, 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크 및 적어도 하나의 태스크에 해당하는 태스크 파라미터를 포함하는 테스트 설정 정보를 수신하는 클라이언트 단말; 네트워크를 통해 클라이언트 단말에 연결되고, 클라이언트 단말로부터 테스트 설정 정보를 수신하고, 테스트 설정 정보에 기초하여 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 생성하고, 복수의 테스트 케이스 각각에 대해, 태스크 파라미터에 기초하여 적어도 하나의 태스크를 시작하며, 복수의 테스트 케이스 각각에 해당하는 테스트 결과 정보를 생성하고, 테스트 설정 정보 및 테스트 결과 정보를 저장하고, 테스트 결과 정보를 생성하며, 테스트 결과 정보를 클라이언트 단말에 제공하는 서버를 포함하고, 태스크 파라미터는 적어도 하나의 태스크에 대한 시작 지연시간을 포함할 수 있다.
본 발명의 다양한 실시예에 의하면, 멀티 태스크 기반 소프트웨어의 단위 테스트 시 태스크 간의 영향을 줄 수 있는 태스크들을 동시에 수행하여 테스트하고자 하는 태스크를 다양한 환경에 대해 테스트할 수 있어, 소프트웨어의 신뢰성을 높일 수 있다.
또한, 사용자가 각 태스크와 연관된 드라이버 모듈이나 스텁 모듈을 생성하지 않고, 멀티 태스크 기반 소프트웨어에서 발생할 수 있는 동시성(concorrency) 오류를 자동 반복을 많이 수행함으로써 찾아낼 수 있다.
도 1은 본 발명의 일 실시예에 따른 자동화 단위 테스트 시스템의 구성을 개략적으로 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따라 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 방법을 나타낸 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 제1 테스트 설정 정보를 나타낸 예시도이다.
도 4는 본 발명의 일 실시예에 따른 제2 테스트 설정 정보를 나타낸 예시도이다.
도 5는 본 발명의 일 실시예에 따른 제3 테스트 설정 정보를 나타낸 예시도이다.
도 6은 본 발명의 일 실시예에 따라 테스트 결과 정보를 생성하는 방법을 나타낸 흐름도이다.
도 7은 본 발명의 다른 실시예에 따른 자동화 단위 테스트 시스템의 구성을 개략적으로 나타낸 블록도이다.
본 발명의 실시예들은 본 발명의 기술적 사상을 설명하기 위한 목적으로 예시된 것이다. 본 발명에 따른 권리범위가 이하에 제시되는 실시예들이나 이들 실시예들에 대한 구체적 설명으로 한정되는 것은 아니다.
본 발명에 사용되는 모든 기술적 용어들 및 과학적 용어들은, 달리 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 일반적으로 이해되는 의미를 갖는다. 본 발명에 사용되는 모든 용어들은 본 발명을 더욱 명확히 설명하기 위한 목적으로 선택된 것이며 본 발명에 따른 권리범위를 제한하기 위해 선택된 것이 아니다.
본 발명에서 사용되는 "포함하는", "구비하는", "갖는" 등과 같은 표현은, 해당 표현이 포함되는 어구 또는 문장에서 달리 언급되지 않는 한, 다른 실시예를 포함할 가능성을 내포하는 개방형 용어(open-ended terms)로 이해되어야 한다.
본 발명에서 기술된 단수형의 표현은 달리 언급하지 않는 한 복수형의 의미를 포함할 수 있으며, 이는 청구범위에 기재된 단수형의 표현에도 마찬가지로 적용된다.
본 발명에서 사용되는 "제1", "제2" 등의 표현들은 복수의 구성요소들을 상호 구분하기 위해 사용되며, 해당 구성요소들의 순서 또는 중요도를 한정하는 것은 아니다.
본 발명에서 사용되는 용어 "부"는, 소프트웨어, 또는 FPGA(field-programmable gate array), ASIC(application specific integrated circuit)과 같은 하드웨어 구성요소를 의미한다. 그러나, "부"는 하드웨어 및 소프트웨어에 한정되는 것은 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 례로서, "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스, 함수, 속성, 프로시저, 서브루틴, 프로그램 코드의 세그먼트, 드라이버, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조, 테이블, 어레이 및 변수를 포함한다. 구성요소와 "부" 내에서 제공되는 기능은 더 작은 수의 구성요소 및 "부"로 결합되거나 추가적인 구성요소와 "부"로 분리될 수 있다.
본 발명에서 사용되는 "~에 기초하여"라는 표현은, 해당 표현이 포함되는 어구 또는 문장에서 기술되는, 결정 판단의 행위 또는 동작에 영향을 주는 하나 이상의 인자를 기술하는데 사용되며, 이 표현은 결정, 판단의 행위 또는 동작에 영향을 주는 추가적인 인자를 배제하지 않는다.
본 발명에서, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 경우, 어떤 구성요소가 다른 구성요소에 직접적으로 연결될 수 있거나 접속될 수 있는 것으로, 또는 새로운 다른 구성요소를 매개로 하여 연결될 수 있거나 접속될 수 있는 것으로 이해되어야 한다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예들을 설명한다. 첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.
도 1은 본 발명의 일 실시예에 따른 자동화 단위 테스트 시스템의 구성을 개략적으로 나타낸 블록도이다. 도 1을 참조하면, 자동화 단위 테스트 시스템(100)은 수신부(110), 프로세서(120), 저장부(130) 및 출력부(140)를 포함할 수 있다.
수신부(110)는 사용자로부터 테스트 설정 정보를 수신할 수 있다. 일 실시예에 있어서, 테스트 설정 정보는 복수의 테스트 케이스, 상기 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크 및 상기 적어도 하나의 태스크에 해당하는 태스크 파라미터를 포함할 수 있다. 예를 들면, 테스트 설정 정보는 복수의 테스트 케이스 각각과 연관된 테스트 케이스 정보를 설정하는 제1 테스트 설정 정보, 복수의 테스트 케이스 각각에 대해, 적어도 하나의 태스크와 연관된 태스크 정보를 설정하는 제2 테스트 설정 정보 및 태스크 파라미터와 연관된 태스크 파라미터 정보를 설정하는 제3 테스트 설정 정보를 포함할 수 있다.
일 실시예에 있어서, 제1 테스트 설정 정보는 복수의 테스트 케이스 각각에 해당하는 테스트 케이스 ID, 이름, 타입 및 반복 횟수를 포함할 수 있다. 일 실시예에 있어서, 제2 테스트 설정 정보는 복수의 테스트 케이스 각각에 대해 적어도 하나의 태스크에 해당하는 이름, 연관 함수명, 스택 사이즈, 스케쥴링 정책, 우선 순위 및 CPU 코어 마스크를 포함할 수 있다. 일 실시예에 있어서, 제3 테스트 설정 정보는 적어도 하나의 태스크에 해당하는 입력값, 예상 출력값 및 시작 지연시간을 포함할 수 있다.
일 실시예에 있어서, 수신부(110)는 마우스, 키보드, 버튼, 스타일러스 펜, 터치 스크린과 같은 명령의 입력이 가능한 디스플레이를 포함할 수 있지만, 반드시 이에 한정되는 것은 아니다.
프로세서(120)는 수신부(110)에 연결될 수 있다. 프로세서(120)는 테스트 설정 정보에 기초하여 복수의 테스트 케이스 각각에 해당하는 상기 적어도 하나의 태스크를 생성할 수 있다. 또한, 프로세서(120)는 복수의 테스트 케이스 각각에 대해, 태스크 파라미터에 기초하여 상기 적어도 하나의 태스크를 시작하며, 복수의 테스트 케이스 각각에 해당하는 테스트 결과 정보를 생성할 수 있다.
일 실시예에 있어서, 프로세서(120)는 시작 지연시간에 기초하여 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 정렬시킬 수 있다. 예를 들면, 프로세서(120)는 정렬 알고리즘을 이용하여, 시작 지연시간이 작은 시간에서 높은 시간의 순서로 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 정렬시킬 수 있다.
일 실시예에 있어서, 프로세서(120)는 타이머를 생성하여 시작하고, 타이머의 수행시간과 시작 지연시간을 비교하여, 타이머의 수행시간과 일치하는 시작 지연시간에 해당하는 태스크를 시작할 수 있다.
일 실시예에 있어서, 프로세서(120)는 입력값에 기초하여 해당 태스크를 실행하여 실제 출력값을 획득할 수 있다. 또한, 프로세서(120)는 실제 출력값과 예상 출력값을 비교하여 비교 정보를 생성하고, 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크에서 예외 상황이 발행하였는지 여부를 나타내는 예외 상황 발생 정보를 생성할 수 있다. 또한, 프로세서(120)는 비교 정보 및 예외 상황 발생 정보에 기초하여 테스트 케이스 결과 정보를 생성할 수 있다.
일 실시예에 있어서, 프로세서(120)는 이상 기술된 제어 동작 또는 이 동작을 실행하는 프로그램 명령어들을 실행할 수 있는 CPU(central processing unit), FPGA(field-programmable grate array), ASIC(application specific integrated circuit) 등을 포함할 수 있다.
저장부(130)는 프로세서(120)에 연결될 수 있다. 저장부(130)는 수신부(110)를 통해 수신되는 테스트 설정 정보를 저장할 수 있다. 또한, 저장부(130)는 프로세서(120)에 의해 생성된 테스트 결과 정보를 저장할 수 있다.
일 실시예에 있어서, 저장부(130)는 자기 디스크(예를 들어, 자기 테이프, 플렉시블 디스크, 하드 디스크 등), 광 디스크(예를 들어, CD, DVD 등), 반도체 메모리(예를 들어, USB 메모리, 메모리 카드 등) 등을 포함할 수 있지만, 반드시 이에 한정되는 것은 아니다.
출력부(140)는 프로세서(120)에 연결될 수 있다. 출력부(140)는 프로세서(120)에 의해 생성된 테스트 결과 정보를 출력할 수 있다. 또한, 출력부(140)는 수신부(110)를 통해 수신되는 테스트 설정 정보를 출력할 수 있다. 일 실시예에 있어서, 출력부(140)는 LCD(liquid crystal display), LED(light emitting diode) 디스플레이, TFT-LCD(thin film transistor-liquid crystal display), OLED(organic light-emitting diode) 디스플레이, 플렉서블 디스플레이 등을 포함할 수 있다.
본 발명에 도시된 흐름도에서 프로세스 단계들, 방법 단계들, 알고리즘들 등이 순차적인 순서로 설명되었지만, 그러한 프로세스들, 방법들 및 알고리즘들은 임의의 적합한 순서로 작동되도록 구성될 수 있다. 다시 말하면, 본 발명의 다양한 실시예들에서 설명되는 프로세스들, 방법들 및 알고리즘들의 단계들이 본 발명에서 기술된 순서로 수행될 필요는 없다. 또한, 일부 단계들이 비동시적으로 수행되는 것으로서 설명되더라도, 다른 실시예에서는 이러한 일부 단계들이 동시에 수행될 수 있다. 또한, 도면에서의 묘사에 의한 프로세스의 예시는 예시된 프로세스가 그에 대한 다른 변화들 및 수정들을 제외하는 것을 의미하지 않으며, 예시된 프로세스 또는 그의 단계들 중 임의의 것이 본 개시의 다양한 실시예들 중 하나 이상에 필수적임을 의미하지 않으며, 예시된 프로세스가 바람직하다는 것을 의미하지 않는다.
도 2는 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 방법을 나타낸 흐름도이다. 도 2를 참조하면, 단계 S202에서, 수신부(110)는 사용자로부터 복수의 테스트 케이스, 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크 및 적어도 하나의 태스크에 해당하는 태스크 파라미터를 포함하는 테스트 설정 정보를 수신할 수 있다.
일 실시예에 있어서, 테스트 설정 정보는, 복수의 테스트 케이스 각각과 연관된 테스트 케이스 정보를 설정하는 제1 테스트 설정 정보, 복수의 테스트 케이스 각각에 대해, 적어도 하나의 태스크와 연관된 태스크 정보를 설정하는 제2 테스트 설정 정보, 및 태스크 파라미터와 연관된 태스크 파라미터 정보를 설정하는 제3 테스트 설정 정보를 포함할 수 있다.
일 실시예에 있어서, 제1 테스트 설정 정보는 복수의 테스트 케이스 각각에 해당하는 테스트 케이스 ID(identification), 이름, 타입 및 반복 횟수를 포함할 수 있다. 예를 들면, 제1 테스트 설정 정보는 도 3에 도시된 바와 같이, 테스트 케이스 ID(20101, 20102, 20104), 이름(TEST_1, TEST_2, TEST_4), 타입(APP, FRW), 반복횟수(1,000,000, 10,000,000, 10,000,000)를 포함할 수 있다.
일 실시예에 있어서, 제2 테스트 설정 정보는 복수의 테스트 케이스 각각에 대해 적어도 하나의 태스크에 해당하는 이름, 연관 함수명, 스택 사이즈, 스케쥴링 정책, 우선 순위 및 CPU 코어 마스크를 포함할 수 있다. 예를 들면, 제2 테스트 설정 정보는 도 4에 도시된 바와 같이, 태스크 이름(TASK_11, TASK_12, TASK_21, TASK_41, TASK_59), 연관 함수명(FUNC_A, FUNC_B, FUNC_C, FUNC_D), 스택 사이즈(327680byte, 10240byte, 512000byte, 10240byte), 스케쥴링 정책(SCHED_FIFO, SCHED_RR, SCHED_OTHER), 우선 순위(1, 50, 90, 10) 및 CPU 코어 마스크(0x0001, 0x0002, 0x0004, 0x0008)를 포함할 수 있다.
일 실시예에 있어서, 제3 테스트 설정 정보는 적어도 하나의 태스크에 해당하는 입력값, 예상 출력값 및 상기 시작 지연시간을 포함할 수 있다. 예를 들면, 제3 테스트 설정 정보는 도 5에 도시된 바와 같이, 입력값(10, 100, 200, 40, 5), 예상 출력값(10, 50, 300, 400, 5), 시작 지연시간(0, 1000, 200, 10)을 포함할 수 있다. 여기서, 시작 지연시간의 단위는 ms일 수 있다.
단계 S204에서, 프로세서는(120)는 테스트 설정 정보에 기초하여 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 생성할 수 있다. 일 실시예에 있어서, 프로세서(120)는 시작 지연시간에 기초하여 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 정렬시킬 수 있다. 예를 들면, 프로세서(120)는 정렬 알고리즘을 이용하여, 시작 지연시간이 작은 시간에서 높은 시간의 순서로 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크를 정렬시킬 수 있다. 또한, 프로세서(120)는 제1 테스트 설정 정보 및 제2 테스트 설정 정보에 기초하여 복수의 테스트 케이스 각각에 해당하는 태스크를 생성할 수 있다. 예를 들면, 프로세서(120)는 도 5에 도시된 바와 같이, 테스트 케이스(20101)에 해당하는 태스크(TASK_11, TASK_12, TASK_21), 테스트 케이스(20102)에 해당하는 태스크(TASK_11, TASK_41) 및 테스트 케이스(20104)에 해당하는 태스크(TASK_59)를 생성할 수 있다.
단계 S206에서, 프로세서(120)는 복수의 테스트 케이스 각각에 대해, 태스크 파라미터에 기초하여 적어도 하나의 태스크를 시작할 수 있다. 일 실시예에 있어서, 프로세서(120)는 타이머를 생성하고 생성된 타이머를 시작할 수 있다. 또한, 프로세서(120)는 타이머의 수행시간과 시작 지연시간을 비교하여 타이머의 수행시간과 일치하는 시작 지연시간에 해당하는 태스크를 시작할 수 있다. 예를 들면, 프로세서(120)는 도 5에 도시된 바와 같이, 타이머의 수행시간(0ms)에서 시작 지연시간(0ms)에 해당하는 태스크(TASK_11, TASK21, TASK_59)를 시작하고, 타이머의 수행시간(10ms)에서 시작 지연시간(10ms)에 해당하는 태스크(TASK_41)를 시작하고, 타이머의 수행시간(200ms)에서 시작 지연시간(200ms)에 해당하는 태스크(TASK_11)를 시작하며, 타이머의 수행시간(1000ms)에서 시작 지연시간(1000ms)에 해당하는 태스크(TASK_12)를 시작할 수 있다.
단계 S208에서, 프로세서(120)는 복수의 테스트 케이스 각각에 해당하는 테스트 결과 정보를 생성할 수 있다. 일 실시예에 있어서, 프로세서(120)는 제1 테스트 설정 정보 및 제3 테스트 설정 정보에 기초하여, 입력값을 시작된 태스크에 입력하고, 태스크의 테스트를 반복 횟수만큼 반복한다.
예를 들면, 프로세서(120)는 타이머의 수행시간(0ms)에서 시작하는 테스트 케이스(20101)의 태스크(TASK_11)에 입력값(10)을 입력하고, 태스크(TASK_11)의 테스트를 반복횟수(1,000,000회)만큼 반복한다. 또한, 프로세서(120)는 타이머의 수행시간(0ms)에서 시작하는 테스트 케이스(20101)의 태스크(TASK_21)에 입력값(200)을 입력하고, 태스크(TASK_21)의 테스트를 반복횟수(1,000,000회)만큼 반복한다. 또한, 프로세서(120)는 타이머의 수행시간(0ms)에서 시작하는 테스트 케이스(20104)의 태스크(TASK_59)에 입력값(5)을 입력하고, 태스크(TASK_59)의 테스트를 반복횟수(10,000,000회)만큼 반복한다. 계속해서, 프로세서(120)는 타이머의 수행시간(10ms)에서 시작하는 테스트 케이스(20102)의 태스크(TASK_41)에 입력값(40)을 입력하고, 태스크(TASK_41)의 테스트를 반복횟수(10,000,000회)만큼 반복한다. 계속해서, 프로세서(120)는 타이머의 수행시간(200ms)에서 시작하는 테스트 케이스(20102)의 태스크(TASK_11)에 입력값(10)을 입력하고, 태스크(TASK_11)의 테스트를 반복횟수(10,000,000회)만큼 반복한다. 계속해서, 프로세서(120)는 타이머의 수행시간(1000ms)에서 시작하는 테스트 케이스(20101)의 태스크(TASK_12)에 입력값(100)을 입력하고, 태스크(TASK_12)의 테스트를 반복횟수(1,000,000회)만큼 반복한다.
단계 S210에서, 출력부(140)는 프로세서(120)에 의해 생성된 테스트 결과 정보를 출력할 수 있다. 일 실시예에 있어서, 출력부(140)는 프로세서(120)의 제어하에 테스트 결과 정보를 출력할 수 있다.
도 6은 본 발명의 일 실시예에 따라 테스트 결과 정보를 생성하는 방법을 나타낸 흐름도이다. 도 6을 참조하면, 단계 S602에서, 프로세서(120)는 입력값에 기초하여 해당 태스크를 실행하여 실제 출력값을 획득할 수 있다. 일 실시예에 있어서, 프로세서(120)는 제1 테스트 설정 정보 및 제3 테스트 설정 정보에 기초하여, 입력값을 시작된 태스크에 입력하고, 태스크의 테스트를 반복 횟수만큼 반복하여 실제 출력값을 획득할 수 있다.
단계 S604에서, 프로세서(120)는 실제 출력값과 예상 출력값을 비교할 수 있다. 단계 S606에서, 프로세서(120)는 실제 출력값과 예상 출력값이 일치하는지 여부를 판단할 수 있다. 일 실시예에 있어서, 프로세서(120)는 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크의 테스트에 의해 획득된 실제 출력값과 제3 테스트 설정 정보의 예상 출력값을 비교하여 실제 출력값과 예상 출력값이 일치하는지 여부를 판단할 수 있다.
단계 S606에서 실제 출력값과 예상 출력값이 일치하는 것으로 판단되면, 단계 S608에서, 프로세서(120)는 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크에서 예외 상황이 발행하였는지 여부를 판단할 수 있다.
단계 S608에서, 예외 상황이 발생하지 않은 것으로 판단되면, 단계 S610에서, 프로세서(120)는 테스트의 성공을 나타내는 테스트 결과 정보(이하, "제1 테스트 결과 정보"라 함)를 생성할 수 있다. 생성된 제1 테스트 결과 정보는 출력부(140)를 통해 출력될 수 있다.
한편, 단계 S606에서 실제 출력값과 예상 출력값이 일치하지 않거나 단계 S608에서 예외 상황이 발생한 것으로 판단되면, 단계 S612에서, 프로세서(120)는 테스트의 실패를 나타내는 테스트 결과 정보(이하, "제2 테스트 결과 정보"라 함)를 생성할 수 있다. 생성된 제2 테스트 결과 정보는 출력부(140)를 통해 출력될 수 있다.
도 7은 본 발명의 다른 실시예에 따른 자동화 단위 테스트 시스템(700)의 구성을 개략적으로 나타낸 블록도이다. 도 7을 참조하면, 자동화 단위 테스트 시스템(700)은 클라이언트 단말(710), 서버(720) 및 네트워크(730)를 포함할 수 있다.
클라이언트 단말(710)은 사용자로부터 테스트 설정 정보를 수신하고, 수신된 테스트 설정 정보를 네트워크(730)를 통해 서버(720)로 전송할 수 있다. 또한, 클라이언트 단말(710)은 서버(720)로부터 네트워크(730)를 통해 테스트 결과 정보를 수신하고, 수신된 테스트 결과 정보를 출력할 수 있다.
일 실시예에 있어서, 테스트 설정 정보는 복수의 테스트 케이스, 상기 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크 및 상기 적어도 하나의 태스크에 해당하는 태스크 파라미터를 포함할 수 있다. 예를 들면, 테스트 설정 정보는 복수의 테스트 케이스 각각과 연관된 테스트 케이스 정보를 설정하는 제1 테스트 설정 정보, 복수의 테스트 케이스 각각에 대해, 적어도 하나의 태스크와 연관된 태스크 정보를 설정하는 제2 테스트 설정 정보 및 태스크 파라미터와 연관된 태스크 파라미터 정보를 설정하는 제3 테스트 설정 정보를 포함할 수 있다.
일 실시예에 있어서, 제1 테스트 설정 정보는 복수의 테스트 케이스 각각에 해당하는 테스트 케이스 ID, 이름, 타입 및 반복 횟수를 포함할 수 있다. 일 실시예에 있어서, 제2 테스트 설정 정보는 복수의 테스트 케이스 각각에 대해 적어도 하나의 태스크에 해당하는 이름, 연관 함수명, 스택 사이즈, 스케쥴링 정책, 우선 순위 및 CPU 코어 마스크를 포함할 수 있다. 일 실시예에 있어서, 제3 테스트 설정 정보는 적어도 하나의 태스크에 해당하는 입력값, 예상 출력값 및 시작 지연시간을 포함할 수 있다.
일 실시예에 있어서, 클라이언트 단말(710)은 네트워크(730)에 접속할 수 있는 웹/왑 브라우저를 포함하여 통신 환경을 구현할 수 있는 고정형 단말 또는 이동형 단말 중 적어도 하나를 포함할 수 있다. 예를 들면, 고정형 단말은 데스크탑 PC를 포함하며, 이동형 단말은 스마트폰, 핸드헬드(hand-held) PC, 태블릿 PC, 노트북, PDA, 휴대 인터넷 단말기, 방송 수신기, DMB 폰 등을 포함할 수 있으며, 유선 또는 무선 네트워크를 통해 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트가 가능한 한, 그 종류에 구애받지 않음에 유의해야 한다.
서버(720)는 클라이언트 단말(710)로부터 테스트 설정 정보를 수신하고, 수신된 테스트 설정 정보에 기초하여 복수의 테스트 케이스 각각에 해당하는 상기 적어도 하나의 태스크를 생성할 수 있다. 또한, 서버(720)는 복수의 테스트 케이스 각각에 대해, 태스크 파라미터에 기초하여 상기 적어도 하나의 태스크를 시작하며, 복수의 테스트 케이스 각각에 해당하는 테스트 결과 정보를 생성할 수 있다. 또한, 서버(720)는 테스트 설정 정보 및 테스트 결과 정보를 저장할 수 있다. 본 실시예에서 태스크 및 테스트 결과 정보는 전술한 실시예에서 태스크 및 테스트 결과 정보와 동일 또는 유사한 방법으로 생성될 수 있으므로, 본 실시예에서는 상세한 설명은 생략한다.
네트워크(730)는 인터넷, 전용선 등을 포함하는 유선 네트워크와, 무선 인터넷, 이동 통신망, 위성 통신망 등을 포함하는 무선 네트워크를 모두 포함할 수 있다. 일 실시예에 있어서, 네트워크(730)는 클라이언트 단말(710)과 서버(720) 간의 통신 회선을 연결하여 상호 간에 데이터 통신이 이루어지도록 연결 설정될 수 있다. 즉, 네트워크(730)는 클라이언트 단말(710)과 서버(720) 간에 정보 교환이 가능한 연결 구조를 의미한다. 예를 들면, 네트워크(730)는 3GPP(3rd generation partnership project) 네트워크, LTE(long term evolution) 네트워크, WIMAX(world interoperablility for microwave access) 네트워크, 인터넷(Internet), LAN(local area network), 무선 LAN(wireless local area network), WAN(wide area network), 위성 방송 네트워크, 아날로그 방송 네트워트 등을 포함할 수 있지만, 반드시 이에 한정되는 것은 아니다.
위 방법은 특정 실시예들을 통하여 설명되었지만, 위 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 위 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이상 일부 실시예들과 첨부된 도면에 도시된 예에 의해 본 발명의 기술적 사상이 설명되었지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 이해할 수 있는 본 발명의 기술적 사상 및 범위를 벗어나지 않는 범위에서 다양한 치환, 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 치환, 변형 및 변경은 첨부된 청구범위 내에 속하는 것으로 생각되어야 한다.
100: 자동화 단위 테스트 시스템 110: 수신부
120: 프로세서 130: 저장부
140: 출력부 700: 자동화 단위 테스트 시스템
710: 클라이언트 단말 720: 서버
730: 네트워크

Claims (23)

  1. 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 방법으로서,
    사용자로부터 복수의 테스트 케이스, 상기 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크 및 상기 적어도 하나의 태스크에 해당하는 태스크 파라미터를 포함하는 테스트 설정 정보를 수신하는 단계;
    상기 테스트 설정 정보에 기초하여 상기 복수의 테스트 케이스 각각에 해당하는 상기 적어도 하나의 태스크를 생성하는 단계;
    상기 복수의 테스트 케이스 각각에 대해, 상기 태스크 파라미터에 기초하여 상기 적어도 하나의 태스크를 시작하는 단계; 및
    상기 복수의 테스트 케이스 각각에 해당하는 테스트 결과 정보를 출력하는 단계를 포함하고,
    상기 태스크 파라미터는 상기 적어도 하나의 태스크에 대한 시작 지연시간을 포함하고,
    상기 테스트 설정 정보는, 상기 복수의 테스트 케이스 각각과 연관된 테스트 케이스 정보를 설정하는 제1 테스트 설정 정보; 상기 복수의 테스트 케이스 각각에 대해, 상기 적어도 하나의 태스크와 연관된 태스크 정보를 설정하는 제2 테스트 설정 정보; 및 상기 태스크 파라미터와 연관된 태스크 파라미터 정보를 설정하는 제3 테스트 설정 정보를 포함하는 자동화 단위 테스트 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 제1 테스트 설정 정보는 상기 복수의 테스트 케이스 각각에 해당하는 테스트 케이스 ID(identification), 이름, 타입 및 반복 횟수를 포함하는 자동화 단위 테스트 방법.
  4. 제1항에 있어서, 상기 제2 테스트 설정 정보는 상기 복수의 테스트 케이스 각각에 대해 상기 적어도 하나의 태스크에 해당하는 이름, 연관 함수명, 스택 사이즈, 스케쥴링 정책, 우선 순위 및 CPU 코어 마스크를 포함하는 자동화 단위 테스트 방법.
  5. 제1항에 있어서, 상기 제3 테스트 설정 정보는 상기 적어도 하나의 태스크에 해당하는 입력값, 예상 출력값 및 상기 시작 지연시간을 포함하는 자동화 단위 테스트 방법.
  6. 제5항에 있어서, 상기 복수의 테스트 케이스 각각에 해당하는 상기 적어도 하나의 태스크를 생성하는 단계는,
    상기 시작 지연시간에 기초하여 상기 복수의 테스트 케이스 각각에 해당하는 상기 적어도 하나의 태스크를 정렬시키는 단계
    를 포함하는 자동화 단위 테스트 방법.
  7. 제6항에 있어서, 상기 복수의 테스트 케이스 각각에 해당하는 상기 적어도 하나의 태스크를 정렬시키는 단계는
    상기 시작 지연시간이 작은 시간에서 높은 시간의 순서로 상기 복수의 테스트 케이스 각각에 해당하는 상기 적어도 하나의 태스크를 정렬시키는 단계
    를 포함하는 자동화 단위 테스트 방법.
  8. 제6항에 있어서, 상기 복수의 테스트 케이스 각각에 대해, 상기 태스크 파라미터에 기초하여 상기 적어도 하나의 태스크를 시작하는 단계는,
    타이머를 생성하여 시작하는 단계;
    상기 타이머의 수행시간과 상기 시작 지연시간을 비교하는 단계; 및
    상기 타이머의 수행시간과 일치하는 시작 지연시간에 해당하는 태스크를 시작하는 단계
    를 포함하는 자동화 단위 테스트 방법.
  9. 제5항에 있어서, 상기 복수의 테스트 케이스 각각에 해당하는 테스트 결과 정보를 출력하는 단계는,
    상기 입력값에 기초하여 해당 태스크를 실행하여 실제 출력값을 획득하는 단계;
    상기 실제 출력값과 상기 예상 출력값을 비교하여 비교 정보를 생성하는 단계;
    상기 복수의 테스트 케이스 각각에 해당하는 상기 적어도 하나의 태스크에서 예외 상황이 발행하였는지 여부를 나타내는 예외 상황 발생 정보를 생성하는 단계; 및
    상기 비교 정보 및 상기 예외 상황 발생 정보에 기초하여 상기 테스트 케이스 결과 정보를 생성하는 단계
    를 포함하는 자동화 단위 테스트 방법.
  10. 제9항에 있어서, 상기 테스트 케이스 결과 정보를 생성하는 단계는,
    상기 실제 출력값과 상기 예상 출력값이 일치하고 상기 예외 상황이 발생하지 않은 것으로 판단되면 테스트 성공을 나타내는 상기 테스트 결과 정보를 생성하는 단계
    를 포함하는 자동화 단위 테스트 방법.
  11. 제9항에 있어서, 상기 테스트 케이스 결과 정보를 생성하는 단계는,
    상기 실제 출력값과 상기 예상 출력값이 일치하지 않거나, 상기 예외 상황이 발생한 것으로 판단되면 테스트 실패를 나타내는 상기 테스트 결과 정보를 생성하는 단계
    를 포함하는 자동화 단위 테스트 방법.
  12. 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 시스템으로서,
    사용자로부터 복수의 테스트 케이스, 상기 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크 및 상기 적어도 하나의 태스크에 해당하는 태스크 파라미터를 포함하는 테스트 설정 정보를 수신하는 수신부;
    상기 테스트 설정 정보에 기초하여 상기 복수의 테스트 케이스 각각에 해당하는 상기 적어도 하나의 태스크를 생성하고, 상기 복수의 테스트 케이스 각각에 대해, 상기 태스크 파라미터에 기초하여 상기 적어도 하나의 태스크를 시작하며, 상기 복수의 테스트 케이스 각각에 해당하는 테스트 결과 정보를 생성하는 프로세서;
    상기 테스트 설정 정보 및 상기 테스트 결과 정보를 저장하는 저장부; 및
    상기 테스트 결과 정보를 출력하는 출력부를 포함하고,
    상기 태스크 파라미터는 상기 적어도 하나의 태스크에 대한 시작 지연시간을 포함하고,
    상기 테스트 설정 정보는, 상기 복수의 테스트 케이스 각각과 연관된 테스트 케이스 정보를 설정하는 제1 테스트 설정 정보; 상기 복수의 테스트 케이스 각각에 대해, 상기 적어도 하나의 태스크와 연관된 태스크 정보를 설정하는 제2 테스트 설정 정보; 및 상기 태스크 파라미터와 연관된 태스크 파라미터 정보를 설정하는 제3 테스트 설정 정보를 포함하는 자동화 단위 테스트 시스템.
  13. 삭제
  14. 제12항에 있어서, 상기 제1 테스트 설정 정보는 상기 복수의 테스트 케이스 각각에 해당하는 테스트 케이스 ID, 이름, 타입 및 반복 횟수를 포함하는 자동화 단위 테스트 시스템.
  15. 제12항에 있어서, 상기 제2 테스트 설정 정보는 상기 복수의 테스트 케이스 각각에 대해 상기 적어도 하나의 태스크에 해당하는 이름, 연관 함수명, 스택 사이즈, 스케쥴링 정책, 우선 순위 및 CPU 코어 마스크를 포함하는 자동화 단위 테스트 시스템.
  16. 제12항에 있어서, 상기 제3 테스트 설정 정보는 상기 적어도 하나의 태스크에 해당하는 입력값, 예상 출력값 및 상기 시작 지연시간을 포함하는 자동화 단위 테스트 시스템.
  17. 제16항에 있어서, 상기 프로세서는, 상기 시작 지연시간에 기초하여 상기 복수의 테스트 케이스 각각에 해당하는 상기 적어도 하나의 태스크를 정렬시키는, 자동화 단위 테스트 시스템.
  18. 제17항에 있어서, 상기 프로세서는, 상기 시작 지연시간이 작은 시간에서 높은 시간의 순서로 상기 복수의 테스트 케이스 각각에 해당하는 상기 적어도 하나의 태스크를 정렬시키는, 자동화 단위 테스트 시스템.
  19. 제18항에 있어서, 상기 프로세서는,
    타이머를 생성하여 시작하고,
    상기 타이머의 수행시간과 상기 시작 지연시간을 비교하고,
    상기 타이머의 수행시간과 일치하는 시작 지연시간에 해당하는 태스크를 시작하는, 자동화 단위 테스트 시스템.
  20. 제16항에 있어서, 상기 프로세서는,
    상기 입력값에 기초하여 해당 태스크를 실행하여 실제 출력값을 획득하고,
    상기 실제 출력값과 상기 예상 출력값을 비교하여 비교 정보를 생성하고,
    상기 복수의 테스트 케이스 각각에 해당하는 상기 적어도 하나의 태스크에서 예외 상황이 발행하였는지 여부를 나타내는 예외 상황 발생 정보를 생성하고,
    상기 비교 정보 및 상기 예외 상황 발생 정보에 기초하여 상기 테스트 케이스 결과 정보를 생성하는, 자동화 단위 테스트 시스템.
  21. 제20항에 있어서, 상기 프로세서는, 상기 실제 출력값과 상기 예상 출력값이 일치하고 상기 예외 상황이 발생하지 않은 것으로 판단되면 테스트 성공을 나타내는 상기 테스트 결과 정보를 생성하는, 자동화 단위 테스트 시스템.
  22. 제20항에 있어서, 상기 프로세서는, 상기 실제 출력값과 상기 예상 출력값이 일치하지 않거나, 상기 예외 상황이 발생한 것으로 판단되면 테스트 실패를 나타내는 상기 테스트 결과 정보를 생성하는, 자동화 단위 테스트 시스템.
  23. 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 시스템으로서,
    사용자로부터 복수의 테스트 케이스, 상기 복수의 테스트 케이스 각각에 해당하는 적어도 하나의 태스크 및 상기 적어도 하나의 태스크에 해당하는 태스크 파라미터를 포함하는 테스트 설정 정보를 수신하는 클라이언트 단말; 및
    네트워크를 통해 상기 클라이언트 단말에 연결되고, 상기 클라이언트 단말로부터 상기 테스트 설정 정보를 수신하고, 상기 테스트 설정 정보에 기초하여 상기 복수의 테스트 케이스 각각에 해당하는 상기 적어도 하나의 태스크를 생성하고, 상기 복수의 테스트 케이스 각각에 대해, 상기 태스크 파라미터에 기초하여 상기 적어도 하나의 태스크를 시작하며, 상기 복수의 테스트 케이스 각각에 해당하는 테스트 결과 정보를 생성하고, 상기 테스트 설정 정보 및 상기 테스트 결과 정보를 저장하고, 상기 테스트 결과 정보를 생성하며, 상기 테스트 결과 정보를 상기 클라이언트 단말에 제공하는 서버를 포함하고,
    상기 태스크 파라미터는 상기 적어도 하나의 태스크에 대한 시작 지연시간을 포함하고,
    상기 테스트 설정 정보는, 상기 복수의 테스트 케이스 각각과 연관된 테스트 케이스 정보를 설정하는 제1 테스트 설정 정보; 상기 복수의 테스트 케이스 각각에 대해, 상기 적어도 하나의 태스크와 연관된 태스크 정보를 설정하는 제2 테스트 설정 정보; 및 상기 태스크 파라미터와 연관된 태스크 파라미터 정보를 설정하는 제3 테스트 설정 정보를 포함하는 자동화 단위 테스트 시스템.
KR1020190090457A 2019-07-25 2019-07-25 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 방법 및 그를 위한 시스템 KR102201845B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190090457A KR102201845B1 (ko) 2019-07-25 2019-07-25 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 방법 및 그를 위한 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190090457A KR102201845B1 (ko) 2019-07-25 2019-07-25 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 방법 및 그를 위한 시스템

Publications (1)

Publication Number Publication Date
KR102201845B1 true KR102201845B1 (ko) 2021-01-12

Family

ID=74129632

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190090457A KR102201845B1 (ko) 2019-07-25 2019-07-25 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 방법 및 그를 위한 시스템

Country Status (1)

Country Link
KR (1) KR102201845B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546738A (zh) * 2022-01-20 2022-05-27 苏州浪潮智能科技有限公司 服务器通用测试方法、系统、终端及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100625597B1 (ko) * 1999-12-27 2006-09-20 한국전자통신연구원 객체 지향 칠 프로그램의 시험을 위한 테스트 케이스 자동생성 방법
CN103885881A (zh) * 2014-04-03 2014-06-25 北京航空航天大学 一种基于VxWorks系统多任务机制的高实时并发测试方法
KR101797484B1 (ko) * 2016-06-29 2017-12-13 주식회사 티맥스 소프트 리호스팅의 테스트를 수행하기 위한 방법 및 컴퓨팅 디바이스
KR20180086732A (ko) * 2017-01-23 2018-08-01 엘에스산전 주식회사 Plc 통신 모듈의 테스트케이스 생성 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100625597B1 (ko) * 1999-12-27 2006-09-20 한국전자통신연구원 객체 지향 칠 프로그램의 시험을 위한 테스트 케이스 자동생성 방법
CN103885881A (zh) * 2014-04-03 2014-06-25 北京航空航天大学 一种基于VxWorks系统多任务机制的高实时并发测试方法
KR101797484B1 (ko) * 2016-06-29 2017-12-13 주식회사 티맥스 소프트 리호스팅의 테스트를 수행하기 위한 방법 및 컴퓨팅 디바이스
KR20180086732A (ko) * 2017-01-23 2018-08-01 엘에스산전 주식회사 Plc 통신 모듈의 테스트케이스 생성 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김태웅 외, ‘테스팅을 고려한 설계 모델 및 모델 기반 테스트 케이스 도출 방법’, 한국멀티미디어학회, 2008* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546738A (zh) * 2022-01-20 2022-05-27 苏州浪潮智能科技有限公司 服务器通用测试方法、系统、终端及存储介质
CN114546738B (zh) * 2022-01-20 2023-11-07 苏州浪潮智能科技有限公司 服务器通用测试方法、系统、终端及存储介质

Similar Documents

Publication Publication Date Title
CN110018955B (zh) 通过转换手动测试用例来生成自动化测试脚本
US9280451B2 (en) Testing device
AU2022203688B2 (en) Machine learned decision guidance for alerts originating from monitoring systems
CN112765023B (zh) 测试用例生成方法、装置
US20170228220A1 (en) Self-healing automated script-testing tool
US20080010535A1 (en) Automated and configurable system for tests to be picked up and executed
CN112131116B (zh) 一种嵌入式软件自动化回归测试方法
CN109783346B (zh) 基于关键字驱动的自动化测试方法、装置及终端设备
CN114546738B (zh) 服务器通用测试方法、系统、终端及存储介质
CN111654495B (zh) 用于确定流量产生来源的方法、装置、设备及存储介质
CN111241111B (zh) 数据查询方法及装置、数据对比方法及装置、介质及设备
JP2021002326A (ja) ソフトウェアプログラムにおける静的分析違反の修復パターンの精緻化
CN111899731A (zh) 语音功能的稳定性测试方法、装置、设备和计算机存储介质
KR102201845B1 (ko) 멀티 태스크 기반 소프트웨어의 자동화 단위 테스트 방법 및 그를 위한 시스템
US20110154292A1 (en) Structure based testing
CN114328250A (zh) 软件系统自动自检方法、介质和装置
CN116860608A (zh) 一种接口测试方法、装置、计算设备及存储介质
US11556460B2 (en) Test case generation for software development using machine learning
US8819494B2 (en) Automatically changing parts in response to tests
CN113986263A (zh) 代码自动化测试方法、装置、电子设备、存储介质
CN111596897B (zh) 代码复用的处理方法、装置及电子设备
CN113342600A (zh) 一种程序依赖插件的监测方法及装置
CN113779117A (zh) 一种数据监控方法、装置、存储介质和电子设备
US11036613B1 (en) Regression analysis for software development and management using machine learning
CN113377677A (zh) 一种单元测试方法及装置

Legal Events

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