KR20100041447A - 테스트 자동화 장치 및 테스트 자동화 방법 - Google Patents

테스트 자동화 장치 및 테스트 자동화 방법 Download PDF

Info

Publication number
KR20100041447A
KR20100041447A KR1020080100629A KR20080100629A KR20100041447A KR 20100041447 A KR20100041447 A KR 20100041447A KR 1020080100629 A KR1020080100629 A KR 1020080100629A KR 20080100629 A KR20080100629 A KR 20080100629A KR 20100041447 A KR20100041447 A KR 20100041447A
Authority
KR
South Korea
Prior art keywords
test
test case
case
code
digital device
Prior art date
Application number
KR1020080100629A
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 KR1020080100629A priority Critical patent/KR20100041447A/ko
Priority to US12/467,652 priority patent/US20100095159A1/en
Publication of KR20100041447A publication Critical patent/KR20100041447A/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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • 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

Landscapes

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

Abstract

디지털 기기 또는 디지털 기기에 탑재되는 소프트웨어를 자동으로 테스트 하기 위한 장치 및 방법이 개시된다. 본 발명의 일 양상에 따르면, 디지털 기기에는 테스트 실행 환경을 제공하는 테스트 에이전트가 탑재되고, 테스트 에이전트는 통신 가능하게 연결된 테스트 디렉터로부터 명령을 받아 테스트를 각 테스트 케이스마다 수행한다. 이때 테스트 에이전트는 테스트 실행 상태를 주기적으로 테스트 디렉터로 보고하며, 테스트 디렉터는 이 보고를 기초로 테스트 결과 보고서를 생성하거나 오류 발생 시 테스트가 자동으로 재개되도록 하는 것이 가능하다.
테스트 케이스, 테스트 자동화, 스텁 코드, 단위 테스팅, 시스템 테스팅

Description

테스트 자동화 장치 및 테스트 자동화 방법{Apparatus and method for automatic testing of softwares or digital divices}
소프트웨어 또는 소프트웨어가 탑재되는 디지털 기기의 테스트 과정을 자동화하는 장치 및 방법과 관련된다.
다양한 디지털 기기들의 출현과 더불어 그 기기들에 탑재되는 소프트웨어들도 방대해지고 다양해지고 있다. 각 기기들에 탑재되는 소프트웨어들은 그 기기들의 다양성과 더불어 그 실행 환경이 다양해지고 있으며 이로 인한 테스트 실행 환경 구축도 매우 복잡해지고 있다.
 어떤 기기를 테스트 하기 위해서는 테스트 대상 소프트웨어를 테스트 케이스(test case)에 따라 실행하여야 한다. 그러나 해당 기기의 테스트 케이스들을 실행하던 중 기기의 동작이 멈추거나 기기가 올바르지 않은 상태로 있으면서 사용자가 제어할 수 없는 문제(Crash, Hang 등)가 발생하면 테스트 대상 기기 상에 존재하는 테스트 결과 저장소(Test Result Registry)의 데이터가 사라지게 되고 이로 인해 테스트 케이스들에 대한 실행 결과를 알 수 없게 되는 문제점이 있다.
이런 경우 사용자의 모니터링(Monitoring) 하에서 테스트 케이스들을 처음부 터 재실행해야만 하는데, 그 실행 시간이 매우 긴 경우 불필요한 시간과 인력이 낭비된다.
또한, 테스트 대상 소프트웨어가 운영체제(Operating System), 컴파일러(Compiler) 또는 CPU 등이 상이한 다른 기기에 탑재되는 경우, 테스트 수행시 마다 사용자 테스트 케이스 코드를 수정하고 다시 컴파일 및 빌드 과정을 거쳐야 하기 때문에 테스트 케이스들을 재사용하지 못하여 테스트 비용 증가의 한 원인으로 작용한다.
본 명세서에서는, 테스트 오류 발생 시 자동으로 테스트가 재개될 수 있도록 하며, 테스트 케이스가 실행될 때마다 테스트 결과 보고서를 작성하여 사용자가 테스트 과정을 일일이 모니터링하지 않아도 자동으로 테스트를 수행하는 장치 및 방법이 개시된다.
구체적으로, 본 발명의 일 양상에 따른 테스트 자동화 장치는, 디지털 기기 또는 그 디지털 기기에 탑재되는 소프트웨어를 적어도 1 이상의 테스트 케이스에 따라 테스트하는 장치에 있어서, 디지털 기기에서의 테스트 실행 환경을 제공하며, 각각의 테스트 케이스에 따라 테스트를 실행하는 테스트 에이전트; 및 테스트 케이스 및 테스트 에이전트를 디지털 기기에 제공하며, 테스트 에이전트를 제어하여 테스트를 실행시키고, 테스트 에이전트로부터 보고를 받아 테스트 실행 상태 또는 테스트 실행 결과를 모니터링하는 테스트 디렉터;를 포함할 수 있다.
또한, 본 발명의 다른 양상에 따른 테스트 자동화 장치는 위 구성 외에, 사용자로부터 테스트 대상 소프트웨어에 관한 정보 또는 테스트 케이스에 관한 기초 정보를 입력 받아 테스트 케이스를 위한 코드를 생성하고 이를 기초로 테스트 케이스를 작성하는 테스트 케이스 생성기;를 더 포함할 수 있다.
이때, 상기 테스트 디렉터의 테스트 모니터링은 테스트 진행 도중 오류가 발생되어 그 테스트 진행이 정지된 경우, 그때까지의 테스트 결과에 관한 보고서를 작성하고 오류가 발생된 지점부터 다시 테스트가 재개되도록 하는 것을 포함할 수 있다.
또한, 테스트 에이전트, 테스트 대상 소프트웨어, 테스트 케이스 등은 테스트 디렉터에 의해 바이너리 파일 또는 이미지 파일 형태로 빌드되어 디지털 기기로 포팅되거나, 통신을 통해 개별적으로 전송되는 것이 가능하다.
또한, 테스트 케이스 생성기는 함수 기반 또는 시나리오 기반으로 테스트 케이스를 작성하는 것이 가능하며, 테스트 케이스에 관한 입력 값, 실행 조건, 기대 값 또는 특정 코드를 컴파일 가능하도록 가공하거나 특정 함수를 대체하는 스텁(stub) 코드 중 적어도 하나 이상을 상기 사용자로부터 입력 받거나 자동으로 생성하여 상기 테스트 케이스를 위한 코드를 생성하는 것이 가능하다.
한편, 본 발명의 일 양상에 따른 테스트 자동화 방법은, 디지털 기기 또는 그 디지털 기기에 탑재되는 소프트웨어를 적어도 1 이상의 테스트 케이스에 따라 테스트하는 방법에 있어서, 테스트 케이스 및 디지털 기기에서의 테스트 실행 환경을 제공하며 각각의 테스트 케이스에 따라 상기 테스트를 실행하는 테스트 에이전트를 디지털 기기로 제공하는 단계; 테스트 에이전트에 명령을 내려서 테스트를 실행하는 단계; 및 테스트 에이전트로부터 보고를 받아 테스트 실행 상태 또는 테스트 실행 결과를 모니터링하는 단계;를 포함할 수 있다.
또한, 본 발명의 다른 양상에 따라 위 테스트 자동화 방법은, 테스트 실행 도중 오류가 발생되어 테스트 진행이 정지되었는지 여부를 판단하는 단계; 테스트 진행이 정지된 경우, 오류가 발생된 시점 이후의 테스트 케이스를 다시 디지털 기 기에 제공하고 테스트 에이전트에 명령을 내려서 오류가 발생된 시점부터 테스트가 재개되도록 하는 단계; 오류가 발생된 시점까지의 테스트 실행 결과에 대한 보고서를 작성하는 단계;를 더 포함할 수 있다.
개시된 내용에 의하면, 테스트 도중 오류가 발생하더라도 자동으로 테스트가 재개되기 때문에 사용자가 테스트 진행 상황을 모니터링 할 필요가 없다. 또한, 테스트 케이스가 실행될 때마다 또는 오류가 발생될 때마다 테스트 결과에 대한 결과 보고서를 자동으로 생성하기 때문에 테스트 케이스의 효율적 실행 및 사용자 편리성을 증진시킬 수 있다.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 테스트 자동화 장치를 도시한다.
도 1을 참조하면, 본 실시예에 따른 테스트 자동화 장치는 테스트 에이전트(101)와 테스트 디렉터(102)를 포함할 수 있다.
테스트 에이전트(101)는 테스트 대상이 되는 디지털 기기(103)에 탑재되고, 테스트 디렉터(102)는 전체 테스트 과정을 컨트롤하는 호스트 PC(104)에 탑재될 수 있다. 예컨대, 휴대폰 또는 그 휴대폰에 탑재되는 소프트웨어를 테스트하는 경우, 휴대폰을 PC에 연결하여 테스트를 수행하는 것이 가능하다. 이때 휴대폰은 위 디지털 기기(103)에, PC는 호스트 PC(104)에 대응될 수 있음은 물론이다.
디지털 기기(103)에 제공되는 테스트 에이전트(101)는 디지털 기기(103)에서의 테스트 실행 환경을 제공한다. 예컨대, 디지털 기기(103)에 탑재되는 테스트 대상 소프트웨어(105)는 테스트 에이전트(101)에 의해 각각의 테스트 케이스(106)에 따라 실행되는 것이 가능하다. 이때 테스트 에이전트(101)가 디지털 기기(103)의 기능을 제어하거나 사용자 인터페이스를 제공하는 것도 가능하다.
여기서 테스트 케이스(106)란 어떠한 프로그램의 테스트를 위한 테스트 입력 값, 실행 조건, 예상 결과 값 등의 집합을 의미한다. 예컨대, 디지털 기기(103)에 제공되는 테스트 케이스(106)는 다수의 테스트 케이스들로 이루어진 테스트 스윗(test suite)이 될 수 있다. 각각의 테스트 케이스(106)는 소정의 소프트웨어 툴을 이용하여 사용자가 직접 작성하거나 기초 정보만 사용자로부터 입력 받아 자동으로 생성하는 것이 가능하다.
테스트 디렉터(102)는 테스트 에이전트(101), 테스트 대상 소프트웨어(105), 테스트 케이스(106) 등을 디지털 기기(103)에 제공한다. 일 예로써, 테스트 디렉터(102)가 테스트 에이전트(101), 테스트 대상 소프트웨어(105), 테스트 케이스(106)를 바이너리 파일 또는 이미지 파일 형태로 한꺼번에 빌드하여 이를 디지털 기기(103)로 포팅하는 것이 가능하다. 또 다른 예로써, 테스트 에이전트(101), 테 스트 대상 소프트웨어(105)는 함께 빌드하여 디지털 기기(103)로 포팅하고, 테스트 케이스(106)는 통신을 통해 개별적으로 전송하는 것도 가능하다.
테스트 디렉터(102)는 테스트 에이전트(101)를 제어하여 테스트를 실행시킨다. 예를 들어, 테스트 디렉터(102)는 테스트의 개시/정지/완료 등에 관한 명령을 테스트 에이전트(101)에 내리는 것이 가능하며, 테스트 에이전트(101)는 수신된 명령에 따라 각각의 테스트를 실행하게 된다.
테스트 디렉터(102)는 테스트 에이전트(101)로부터 테스트 실행 상태 또는 테스트 실행 결과를 보고 받아 이를 모니터링한다.
여기서 모니터링이란 테스트 상황을 전체적으로 관리하여 보고서를 작성하거나 테스트 진행이 원활하지 않은 경우 이를 제어하는 과정을 포함한다. 예를 들어, 테스트 에이전트(101)는 각각의 테스트 케이스(106)가 완료될 때마다 그 실행 결과를 테스트 디렉터(102)로 보고하는 것이 가능한데, 테스트 디렉터(102)가 지정된 시간 이내에 그 보고를 받지 못한 경우, 오류가 발생한 것으로 판단하여 그 때까지의 실행 결과에 대한 보고서를 작성하거나 다시 테스트가 재개되도록 테스트 에이전트(101)에 명령을 내리는 것이 가능하다.
도 2를 참조하여 이를 더 구체적으로 설명한다. 여기서 105는 테스트 대상 소프트웨어를 나타내며, 106은 10개의 테스트 케이스를 나타낸다.
예컨대, 도 2에서, 1번 테스트 케이스부터 10번 테스트 케이스까지에 대해 테스트가 수행되는 도중, 4번 테스트 케이스에서 오류가 발생하였다고 가정하자. 이와 같은 경우 각각의 테스트 케이스가 완료될 때마다 테스트 에이전트(101)는 그 에 대한 결과 값 및 로그를 테스트 디렉터(102)로 보고한다. 테스트 디렉터(102)는 1번부터 3번 테스트 케이스까지의 결과를 보고 받은 상태이다. 그런데 오류가 발생하게 되면, 4번부터 10번까지에 해당하는 테스트 케이스에 대해서는 테스트 진행이 정지될 것이다. 따라서 테스트 에이전트(101)로부터 일정 시간 동안 보고를 받지 못한 테스트 디렉터(102)는 테스트에 오류가 발생 하였음을 감지한다. 그러면 테스트 디렉터(102)는 오류를 유발시킨 4번 테스트 케이스를 제외한 나머지 5번부터 10번까지의 테스트 케이스를 다시 디지털 기기(103)로 제공한 후, 테스트 에이전트(101)로 명령을 내려서 테스트가 재개될 수 있도록 한다.
이때, 테스트 디렉터(102)는 3번 테스트 케이스까지 진행된 이후 오류가 발생하였고 그때까지 테스트 결과는 무엇인지 등에 대한 보고서를 작성하는 것이 가능하다.
도 3은 본 발명의 다른 실시예에 따른 테스트 자동화 장치를 도시한다.
도 3을 참조하면, 본 실시예에 따른 테스트 자동화 장치는 테스트 에이전트(101), 테스트 디렉터(102), 테스트 케이스 생성기(201)를 포함할 수 있다. 여기서 테스트 에이전트(101) 및 테스트 디렉터(102)는 앞서 설명한 것과 동일하므로 자세한 설명은 생략한다.
테스트 케이스 생성기(201)는 사용자로부터 테스트 대상 소프트웨어에 관한 정보 또는 테스트 케이스에 관한 기초 정보를 입력 받아 테스트 케이스 코드를 생성하고 이를 기초로 테스트 케이스를 작성한다.
여기서 테스트 케이스 코드는 가독성 및 재사용 가능성이 있는 테스트 케이 스 코드 또는 테스트 케이스 템플릿 코드가 될 수 있다. 그리고 테스트 대상 소프트웨어에 관한 정보는 테스트 대상 소프트웨어의 코드 또는 코드파일이고, 테스트 케이스에 관한 기초 정보는 테스트 케이스에 관한 입력 값, 예상 결과 값 또는 실행 조건 등이 될 수 있다. 또한 테스트 케이스 생성기는 테스트 케이스 코드를 생성하기 위하여 특정 코드를 컴파일 가능하도록 가공하거나 특정 함수를 대체하는 스텁(stub) 코드를 이용하는 것이 가능하다.
도 4를 참조하여 테스트 케이스 생성기(201)의 테스트 케이스 생성과정을 설명한다.
도 4에서, 본 실시예에 따른 테스트 케이스 작성 방법은 테스트 케이스 작성 형식에 따라 함수 기반 작성 과정 또는 시나리오 기반 작성 과정으로 나눌 수 있다. 함수 기반 테스트 케이스란 테스트 대상 소프트웨어의 함수 단위로 테스트를 수행하는 경우를 의미하며, 시나리오 기반 테스트 케이스란 테스트 대상 소프트웨어의 기능 및 비기능을 포함하는 소프트웨어의 사용 시나리오에 따라 테스트를 수행하는 경우를 의미한다.
테스트 케이스 생성을 위하여, 먼저, 단계 S401과 같이, 그 작성 형식이 함수 기반인지 또는 시나리오 기반인지를 판단한다. 이러한 판단은 사용자 입력을 기초로 수행될 수 있으며 이를 위해 테스트 케이스 생성기(201)는 사용자 입력 인터페이스를 제공하는 것이 가능하다.
함수 기반의 테스트 케이스 생성 과정을 설명하면 다음과 같다.
최초, 테스트 케이스 생성기(201)가 사용자로부터 테스트 대상 소프트웨 어(SUT, software under test)의 전체 혹은 일부 코드, 또는 전체 코드 파일을 입력 받는다(S402).
이어서, 테스트 케이스 생성기(201)는 수신된 코드를 분석하여 컴파일이 가능한지 여부를 판단한다(S403).
컴파일이 가능하지 아니한 경우, 테스트 케이스 생성기(201)는 C/C++/Java 언어와 같은 프로그래밍 언어 문법 특성을 기반으로 컴파일이 가능하도록 하는 stub 코드를 생성한다(S404).
컴파일이 가능한 경우, 테스트 케이스 생성기(201)가 사용자로부터 테스트 케이스에 관한 기초 정보를 입력 받는다(S405). 예컨대, 테스트 케이스의 입력 값, 기대 값, 특정 함수 역할을 대신하는 stub 값, 오류 발생 여부를 확인할 수 있는 코드 등이 위 테스트 케이스에 관한 기초 정보가 될 수 있다. 이러한 값은 여기서 예시한 것처럼 사용자로부터 입력 받을 수도 있으나 그 전부 또는 일부를 테스트 케이스 생성기가 자동으로 생성하는 것도 가능하다.
이어서, 수신된 정보를 기초로 테스트 케이스 코드를 생성하고(S406), 테스트 케이스 코드를 이용하여 테스트 케이스를 생성한다(S407). 여기서 테스트 케이스는 다수의 테스트 케이스로 이루어진 테스트 스윗(test suite)이 될 수 있다.
시나리오 기반의 테스트 케이스 작성 방법을 살펴보면, 테스트 케이스 생성기(201)가 여러 통합 개발 환경(IDE) 소프트웨어(예컨대, MS VC++ 6.0, MS .NET, MS VC++ 2005 등)에 플러그 인(plug-in)되어 사용자로부터 테스트 케이스에 관한 이름과 같은 정보를 입력 받고(S408), 이를 이용하여 표준 코딩 규칙을 가지며 가 독성이 있는 테스트 케이스 템플릿 코드를 생성한다(S409).
이러한 과정을 통해 생성된 테스트 케이스는 디지털 기기에서 테스트 환경을 제공하는 테스트 에이전트와 함께 빌드되어 디지털 기기로 포팅되거나 통신을 통해 개별적으로 디지털 기기로 전송될 수 있음은 전술한 바와 같다.
도 5는 본 발명의 일 실시예에 따른 테스트 에이전트를 도시한다.
도 5를 참조하면, 본 실시예에 따른 테스트 에이전트(101)는 다양한 기기의 실행 환경에서 동일한 테스트 케이스의 구현을 보장해주는 프로그래밍 인터페이스(501), 테스트 대상 소프트웨어가 탑재될 기기에서 테스트 케이스들을 관리하는 테스트 팩토리(test factory)(502), 테스트 결과를 수집/분석/관리하는 기능을 수행하는 테스트 결과 수집부(test result collector)(503), 테스트 케이스 결과를 여러 가지 형태로 출력해주는 아웃풋터(outputter)(504), 테스트 결과 값과 기대 값을 비교하는 어설터(asserter)(505) 등을 포함할 수 있다. 그리고 한번 작성된 테스트 케이스들이 다양한 기기에서 코드 수정 없이 테스트가 실행될 수 있도록 각 기기의 환경에 맞는 테스트 에이전트가 각각 제공되어야 하는데, 작은 수정 만으로도 이를 쉽게 해결하기 위하여 HAL(hardware abstraction layer)(506), OSAL(operating system abstraction layer)(507) 등을 더 포함할 수도 있다.
본 실시예에 따른 테스트 에이전트(101)는 테스트 디렉터(102)에 의해 자동으로 빌드되어 디지털 기기로 탑재되는 것이 가능하며, 디지털 기기를 제어하거나 테스트 케이스의 실행 동작을 제어할 수 있다. 또한, 테스트 실행 상태 또는 그 결과를 테스트 디렉터로 보고하는 것이 가능하다.
도 6은 본 발명의 일 실시예에 따른 테스트 디렉터를 도시한다.
도 6을 참조하면, 본 실시예에 따른 테스트 디렉터(102)는 전송부(601), 테스트실행 명령부(602), 제어부(603), 보고서 생성부(604)를 포함할 수 있다.
전송부(601)는 테스트 에이전트(101), 테스트 대상 소프트웨어(SUT)(105), 테스트 케이스(106) 등을 디지털 기기(103)로 전송한다. 전송 방식의 예로는 디지털 기기(103)가 테스트 디렉터(102)와 유/무선으로 연결되고, 테스트 디렉터(102)가 해당 파일을 위 통신 선로를 통해 제공하는 것이 가능하다. 예컨대, 전송부(601)는 수신된 테스트 케이스(106)와 테스트 에이전트(101)를 빌드하여 디지털 기기(103)로 포팅하는 것이 가능하다. 이때, 테스트 케이스(106)와 테스트 에이전트(101)는 하나의 이미지 파일로 형성되거나 별개의 이미지 파일로 형성될 수 있다. 또한, 통신을 통해 테스트 케이스(106)와 테스트 에이전트(101) 각각을 디지털 기기(103)로 전송하는 것도 가능하다.
그리고, 시스템 레벨의 테스트를 수행하고자 하는 경우, 전송부(601)가 각 테스트 케이스들(106)을 분석하여 세부 동작으로 나누고 이렇게 나누어진 세부 동작 별로 테스트 케이스를 전달하는 것이 가능하다. 이를 위해 전송부(601)에는 미리 정의된 기호(symbol) 및 택스트(text)를 이용하여 각 테스트 케이스를 동작별로 분류하는 문법부(syntax)가 구비될 수도 있다.
테스트 실행 명령부(602)는 테스트 에이전트(101)에 명령을 내려서 디지털 기기(101) 또는 디지털 기기에 탑재된 소프트웨어가 테스트 케이스(106)에 따라 실행되도록 한다.
테스트 에이전트(101)는 테스크 실행 명령부(602)의 동작 지시에 따라 테스트를 수행하게 되며, 그 실행 상태 또는 실행 결과를 제어부(603)에 보고한다.
제어부(603)는 테스트 에이전트(101)의 보고에 따라 테스트 수행 도중 오류가 발생되었는지 여부를 판단하며, 오류가 발생한 경우 전송부(601)에 명령을 내려서 다시 테스트 케이스(106)가 디지털 기기(103)로 전달되도록 한 후, 테스트 에이전트(101)에 명령을 내려서 테스트가 재개될 수 있도록 한다. 이때 제어부(603)는 보고서 생성부(604)를 제어하여 그때까지의 테스트 결과에 대한 보고서(예컨대, Microsoft office excel 파일)가 생성되도록 하는 것이 가능하다.
도 7은 본 발명의 일 실시예에 따른 테스트 자동화 방법을 도시한다.
도 7을 참조하면, 본 실시예에 따른 테스트 자동화 방법은 크게 테스트 디렉터(102)가 디지털 기기(103)로 이미지를 전달하는 과정(S701), 테스트 디렉터(102)가 테스트 에이전트(101)로 테스트 실행 명령을 내리는 과정(S702), 디지털 기기(103)에서 테스트 에이전트(101)가 테스트를 수행하는 과정(S703), 테스트 디렉터(102)가 테스트 종료 시 보고서를 생성하는 과정(S704)로 구분할 수 있다.
먼저, 단계 S701을 살펴보면, 테스트 디렉터(102)는 디지털 기기(103)에서의 테스트 실행 환경을 제공하는 테스트 에이전트(101)에 관한 초기 환경을 설정하고, 테스트 케이스를 수신한다. 테스트 케이스는 전술한 테스트 케이스 생성기(도 2의 201 참조)를 통해 사용자로부터 기초 정보를 입력 받아 자동으로 생성되는 것이 가능하다. 이어서 테스트 케이스와 테스트 에이전트(101)를 빌드하고 다운로드 설정을 거친 후에 이미지를 디지털 기기(103)로 전송한다. 다운로드 시에는 테스트 대 상 소프트웨어도 함께 다운로딩하는 것이 가능하다.
다음으로, 단계 S702와 같이, 테스트 디렉터(102)가 테스트 에이전트(101)로 테스트 실행 명령을 내린다. 테스트 실행 명령은 테스트 대상 소프트웨어를 작동시키고 이를 각 테스트 케이스마다 실행시키도록 하는 명령이 될 수 있다.
다음으로, 단계 S703과 같이, 테스트 에이전트(101)에 의해 테스트가 수행된다. 테스트 에이전트(101)는 디지털 기기(103) 및 테스트 실행 환경을 제어하여 테스트 구성을 설정하고, 테스트 케이스를 실행 시킨 후 테스트 프로세스를 확인하는 것이 가능하다. 테스트 에이전트(101)는 각 테스트 케이스가 실행될 때마다 테스트 케이스 로그를 테스트 디렉터(102)로 보고 할 수 있다. 테스트 케이스 로그를 보고 받은 테스트 디렉터(102)는 로그를 저장하고 중간 보고서를 생성하는 것이 가능하다.
이때, 설정된 시간 동안 테스트 케이스 로그가 수신되지 아니한 경우, 테스트 디렉터(102)는 테스트 수행에 오류가 발생한 것으로 판단할 수 있다. 이러한 경우 다시 단계 S701이 수행되도록 하는 것이 가능하다. 즉 테스트 진행이 정지된 경우 오류가 발생된 시점 이후의 테스트 케이스를 다시 디지털 기기(103)에 제공하고 테스트 에이전트(101)에 명령을 내려서 오류가 발생된 시점부터 테스트가 재개되도록 하는 것이 가능하다. 또한 오류가 발생하였을 경우에 별도로 보고서를 생성하는 것도 가능하며, 다시 테스트 케이스를 제공할 때 오류를 유발시킨 테스트 케이스는 제외시키는 것도 가능하다.
테스트가 종료되면, 단계 S704와 같이, 테스트 에이전트(101)가 테스트 종료 보고를 하고, 테스트 디렉터(102)는 그 보고에 따라 테스트를 종료시키고 최종 보고서를 생성한다.
이상에서 본 발명의 실시예에 대하여 설명하였으나 본 발명은 상술한 특정의 실시예에 한정되지 아니한다. 즉, 본 발명이 속하는 기술분야에서 통상의 지식을 가지는 자라면 첨부된 특허청구범위의 사상 및 범주를 일탈함이 없이 본 발명에 대한 다수의 변경 및 수정이 가능하며, 그러한 모든 적절한 변경 및 수정의 균등물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 테스트 자동화 장치의 개략적인 구성을 도시한다.
도 2는 본 발명의 일 실시예에 따른 테스트 모니터링을 설명하기 위한 테스트 케이스 실행 상태를 도시한다.
도 3은 본 발명의 다른 실시예에 따른 테스트 자동화 장치의 개략적인 구성을 도시한다.
도 4는 본 발명의 일 실시예에 따른 테스트 케이스 생성 과정을 도시한다.
도 5는 본 발명의 다른 실시예에 따른 테스트 에이전트의 개략적인 구성을 도시한다.
도 6은 본 발명의 다른 실시예에 따른 테스트 디렉터의 개략적인 구성을 도시한다.
도 7은 본 발명의 일 실시예에 따른 테스트 자동화 방법을 도시한다.

Claims (21)

  1. 디지털 기기 또는 그 디지털 기기에 탑재되는 소프트웨어를 적어도 1 이상의 테스트 케이스에 따라 테스트하는 장치에 있어서,
    상기 디지털 기기에서의 테스트 실행 환경을 제공하며, 각각의 테스트 케이스에 따라 상기 테스트를 실행하는 테스트 에이전트; 및
    상기 테스트 케이스 및 상기 테스트 에이전트를 상기 디지털 기기에 제공하며, 상기 테스트 에이전트를 제어하여 상기 테스트를 실행시키고, 상기 테스트 에이전트로부터 보고를 받아 테스트 실행 상태 또는 테스트 실행 결과를 모니터링하는 테스트 디렉터; 를 포함하는 테스트 자동화 장치.
  2. 제 1 항에 있어서,
    상기 테스트 디렉터는 :
    테스트 실행 도중 오류가 발생하여 상기 테스트 실행이 정지된 경우, 상기 오류가 발생된 시점 이후의 테스트 케이스들을 다시 상기 디지털 기기에 제공하고, 상기 테스트 에이전트에 명령을 내려서 상기 오류가 발생된 시점부터 상기 테스트가 재개되도록 하는 테스트 자동화 장치.
  3. 제 2 항에 있어서,
    상기 테스트 디렉터는 :
    상기 오류가 발생된 시점까지의 테스트 실행 결과에 대한 보고서를 작성하는 테스트 자동화 장치.
  4. 제 2 항에 있어서,
    상기 디지털 기기에 다시 제공되는 테스트 케이스들은 상기 오류를 유발시킨 테스트 케이스가 제외된 나머지 테스트 케이스들로 이루어지는 테스트 자동화 장치.
  5. 제 1 항에 있어서,
    상기 테스트 디렉터는 :
    상기 테스트 케이스를 동작에 따라 분류하여 상기 디지털 기기에 제공하는 테스트 자동화 장치.
  6. 제 1 항에 있어서,
    상기 테스트 에이전트 및 상기 테스트 케이스는 함께 빌드되어 상기 디지털 기기로 포팅되는 테스트 자동화 장치.
  7. 제 1 항에 있어서,
    상기 테스트 에이전트 및 상기 테스트 케이스는 통신을 통해 개별적으로 상기 디지털 기기로 전송되는 테스트 자동화 장치.
  8. 제 1 항에 있어서,
    상기 테스트 에이전트는 :
    각각의 테스트 케이스가 실행될 때마다 그 결과를 상기 테스트 디렉터로 전달하는 테스트 자동화 장치.
  9. 제 1 항에 있어서,
    사용자로부터 테스트 대상 소프트웨어에 관한 정보 또는 테스트 케이스에 관한 기초 정보를 입력 받아 테스트 케이스를 위한 코드를 생성하고 이를 기초로 상기 테스트 케이스를 작성하는 테스트 케이스 생성기; 를 더 포함하는 테스트 자동화 장치.
  10. 제 9 항에 있어서,
    상기 테스트 케이스 생성기는 :
    상기 테스트 케이스에 관한 입력 값, 실행 조건, 기대 값 또는 특정 코드를 컴파일 가능하도록 가공하거나 특정 함수를 대체하는 스텁(stub) 코드 중 적어도 하나 이상을 상기 사용자로부터 입력 받거나 자동으로 생성하여 상기 테스트 케이스를 위한 코드를 생성하는 테스트 자동화 장치.
  11. 제 9 항에 있어서,
    상기 테스트 케이스를 위한 코드는 가독성 및 재사용 가능성이 있는 테스트 케이스 코드 또는 테스트 케이스 템플릿 코드인 테스트 자동화 장치.
  12. 제 9 항에 있어서,
    상기 테스트 케이스 생성기는 :
    함수 기반 또는 시나리오 기반으로 상기 테스트 케이스를 작성하는 테스트 자동화 장치.
  13. 제 9 항에 있어서,
    상기 테스트 대상 소프트웨어에 관한 정보는 테스트 대상 소프트웨어의 코드 또는 코드파일이고, 상기 테스트 케이스에 관한 기초 정보는 테스트 케이스에 관한 입력 값, 예상 결과 값 또는 실행 조건 중 적어도 어느 하나인 테스트 자동화 장치.
  14. 디지털 기기 또는 그 디지털 기기에 탑재되는 소프트웨어를 적어도 1 이상의 테스트 케이스에 따라 테스트하는 방법에 있어서,
    상기 테스트 케이스 및 상기 디지털 기기에서의 테스트 실행 환경을 제공하며 각각의 테스트 케이스에 따라 상기 테스트를 실행하는 테스트 에이전트를 상기 디지털 기기로 제공하는 단계;
    상기 테스트 에이전트에 명령을 내려서 상기 테스트를 실행하는 단계;
    상기 테스트 에이전트로부터 보고를 받아 테스트 실행 상태 또는 테스트 실행 결과를 모니터링하는 단계; 를 포함하는 테스트 자동화 방법.
  15. 제 14 항에 있어서,
    상기 테스트 실행 도중 오류가 발생되어 상기 테스트 진행이 정지되었는지 여부를 판단하는 단계;
    상기 테스트 진행이 정지된 경우, 상기 오류가 발생된 시점 이후의 테스트 케이스를 다시 상기 디지털 기기에 제공하고 상기 테스트 에이전트에 명령을 내려서 오류가 발생된 시점부터 상기 테스트가 재개되도록 하는 단계;
    상기 오류가 발생된 시점까지의 테스트 실행 결과에 대한 보고서를 작성하는 단계; 를 더 포함하는 테스트 자동화 방법.
  16. 제 14 항에 있어서,
    상기 테스트 에이전트 및 상기 테스트 케이스는 함께 빌드되어 상기 디지털 기기로 포팅되는 테스트 자동화 방법.
  17. 제 14 항에 있어서,
    상기 테스트 에이전트 및 상기 테스트 케이스는 통신을 통해 개별적으로 상기 디지털 기기로 전송되는 테스트 자동화 방법.
  18. 제 14 항에 있어서,
    사용자로부터 테스트 대상 소프트웨어에 관한 정보 또는 테스트 케이스에 관한 기초 정보를 입력 받아 테스트 케이스 코드를 생성하고, 상기 테스트 케이스 코드를 이용하여 테스트 케이스를 작성하는 단계; 를 더 포함하는 테스트 자동화 방법.
  19. 제 18 항에 있어서,
    상기 테스트 대상 소프트웨어에 관한 정보는 테스트 대상 소프트웨어의 코드 또는 코드파일이고, 상기 테스트 케이스에 관한 기초 정보는 테스트 케이스의 입력 값, 예상 결과 값 또는 실행 조건 중 적어도 어느 하나인 테스트 자동화 방법.
  20. 제 18 항에 있어서,
    상기 테스트 케이스를 작성하는 단계는 :
    상기 테스트 케이스에 관한 입력 값, 실행 조건, 기대 값 또는 특정 코드를 컴파일 가능하도록 가공하거나 특정 함수를 대체하는 스텁(stub) 코드 중 적어도 하나 이상을 상기 사용자로부터 입력 받거나 자동으로 생성하여 상기 테스트 케이스를 위한 코드를 생성하는 테스트 자동화 방법.
  21. 제 18 항에 있어서,
    상기 테스트 케이스를 위한 코드는 가독성 및 재사용 가능성이 있는 테스트 케이스 코드 또는 테스트 케이스 템플릿 코드인 테스트 자동화 방법.
KR1020080100629A 2008-10-14 2008-10-14 테스트 자동화 장치 및 테스트 자동화 방법 KR20100041447A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080100629A KR20100041447A (ko) 2008-10-14 2008-10-14 테스트 자동화 장치 및 테스트 자동화 방법
US12/467,652 US20100095159A1 (en) 2008-10-14 2009-05-18 Apparatus and method for automatic testing of software or digital devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080100629A KR20100041447A (ko) 2008-10-14 2008-10-14 테스트 자동화 장치 및 테스트 자동화 방법

Publications (1)

Publication Number Publication Date
KR20100041447A true KR20100041447A (ko) 2010-04-22

Family

ID=42099985

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080100629A KR20100041447A (ko) 2008-10-14 2008-10-14 테스트 자동화 장치 및 테스트 자동화 방법

Country Status (2)

Country Link
US (1) US20100095159A1 (ko)
KR (1) KR20100041447A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101244407B1 (ko) * 2011-03-03 2013-03-18 성균관대학교산학협력단 로봇 모바일 플랫폼의 내구성 평가시스템 및 내구성 평가방법
KR20130126251A (ko) * 2012-05-11 2013-11-20 삼성에스디에스 주식회사 웹 서비스 모니터링 시스템 및 방법
US9195571B2 (en) 2012-10-26 2015-11-24 Samsung Electronics Co., Ltd. Automatic testing apparatus for embedded software, automatic testing method thereof and test scenario composing method
KR20160044305A (ko) * 2014-10-15 2016-04-25 삼성에스디에스 주식회사 코드의 단위 테스트를 위한 장치 및 방법
US9323648B2 (en) 2012-10-26 2016-04-26 Samsung Electronics Co., Ltd. Automatic testing apparatus for embedded software and automatic testing method thereof
KR20190128869A (ko) * 2018-05-09 2019-11-19 한국과학기술원 설정 변경이 자유롭고 확장성이 좋게 변이 프로그램을 생성하는 방법 및 장치

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101027971B1 (ko) * 2010-12-10 2011-04-13 (주)헬릭스테크 애플리케이션 검사 가능한 이동통신 단말기 및 그 검사 방법
CN102495789B (zh) * 2011-10-18 2015-01-21 瑞斯康达科技发展股份有限公司 一种自动化测试方法和设备
JP5324638B2 (ja) * 2011-11-24 2013-10-23 株式会社エヌ・ティ・ティ・ドコモ 試験装置及び試験方法
CN103294589B (zh) * 2012-02-22 2017-02-01 中国移动通信集团公司 一种测试用例的实现方法、系统及中间适配装置
CN102799531B (zh) * 2012-07-26 2016-04-13 浪潮电子信息产业股份有限公司 一种基于层次分析理论的软件测试方法
CN103136102B (zh) * 2013-02-07 2018-06-12 百度在线网络技术(北京)有限公司 一种Android平台的流畅度测试方法和装置
US10068393B2 (en) * 2013-08-13 2018-09-04 Prairie Innovators Llc Intelligent towing plug
US9378123B2 (en) 2013-12-31 2016-06-28 International Business Machines Corporation Testing of transaction tracking software
CN104765678B (zh) * 2014-01-08 2018-06-22 阿里巴巴集团控股有限公司 对移动终端设备上的应用进行测试的方法及装置
US9143966B2 (en) * 2014-01-20 2015-09-22 Nokia Technologies Oy Remote access to a wireless device
CN103870371A (zh) * 2014-03-31 2014-06-18 广州华欣电子科技有限公司 触摸屏平滑度的测试方法以及测试装置
CN103902458B (zh) * 2014-04-18 2017-12-05 浪潮电子信息产业股份有限公司 一种通用的存储软件测试系统和设计方法
CN103970664A (zh) * 2014-05-27 2014-08-06 浪潮电子信息产业股份有限公司 一种分析模块自动化测试成本的方法
EP3021225B1 (en) * 2014-11-14 2020-07-01 Mastercard International, Inc. Automated configuration code based selection of test cases for payment terminals
CN105589804A (zh) * 2014-12-31 2016-05-18 中国银联股份有限公司 一种基于流程驱动的测试自动化方法以及测试自动化系统
CN104991859B (zh) * 2015-06-23 2017-08-25 北京时代民芯科技有限公司 基于测试指令序列的单粒子敏感器件的敏感性预估方法
CN105117336B (zh) * 2015-08-26 2018-11-16 中国科学院软件研究所 一种动态标记处理控制依赖的方法
CN105183646B (zh) * 2015-08-28 2017-12-26 百度在线网络技术(北京)有限公司 Rnn代码测试方法及装置
US9959197B2 (en) * 2015-08-31 2018-05-01 Vmware, Inc. Automated bug detection with virtual machine forking
CN108228457B (zh) * 2017-12-29 2021-04-20 广州品唯软件有限公司 移动终端的测试代理方法及装置、计算机可读存储介质
US11481312B2 (en) * 2020-10-15 2022-10-25 EMC IP Holding Company LLC Automation framework for monitoring and reporting on resource consumption and performance bottlenecks
CN117931666A (zh) * 2024-01-26 2024-04-26 中国人民解放军军事科学院系统工程研究院 一种软件无线电通信设备核心框架测试系统及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7828551B2 (en) * 2001-11-13 2010-11-09 Prometric, Inc. Method and system for computer based testing using customizable templates
US7010782B2 (en) * 2002-04-04 2006-03-07 Sapphire Infotech, Inc. Interactive automatic-test GUI for testing devices and equipment using shell-level, CLI, and SNMP commands
US7373636B2 (en) * 2002-05-11 2008-05-13 Accenture Global Services Gmbh Automated software testing system and method
US7203928B2 (en) * 2002-12-31 2007-04-10 Sun Microsystems, Inc. Method and system for generating and maintaining uniform test results
US7627843B2 (en) * 2005-03-23 2009-12-01 International Business Machines Corporation Dynamically interleaving randomly generated test-cases for functional verification
KR20070078862A (ko) * 2006-01-31 2007-08-03 삼성전자주식회사 오류 처리 가능한 이종 기기간 상호 연동 방법 및 이를이용한 네트워크 장치
US8375013B2 (en) * 2006-05-17 2013-02-12 Oracle International Corporation Server-controlled testing of handheld devices
US20080010535A1 (en) * 2006-06-09 2008-01-10 Microsoft Corporation Automated and configurable system for tests to be picked up and executed
US7752501B2 (en) * 2006-07-27 2010-07-06 International Business Machines Corporation Dynamic generation and implementation of globalization verification testing for user interface controls

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101244407B1 (ko) * 2011-03-03 2013-03-18 성균관대학교산학협력단 로봇 모바일 플랫폼의 내구성 평가시스템 및 내구성 평가방법
KR20130126251A (ko) * 2012-05-11 2013-11-20 삼성에스디에스 주식회사 웹 서비스 모니터링 시스템 및 방법
US9195571B2 (en) 2012-10-26 2015-11-24 Samsung Electronics Co., Ltd. Automatic testing apparatus for embedded software, automatic testing method thereof and test scenario composing method
US9323648B2 (en) 2012-10-26 2016-04-26 Samsung Electronics Co., Ltd. Automatic testing apparatus for embedded software and automatic testing method thereof
KR20160044305A (ko) * 2014-10-15 2016-04-25 삼성에스디에스 주식회사 코드의 단위 테스트를 위한 장치 및 방법
CN105528287A (zh) * 2014-10-15 2016-04-27 三星Sds株式会社 用于代码的单元测试的装置及方法
KR20190128869A (ko) * 2018-05-09 2019-11-19 한국과학기술원 설정 변경이 자유롭고 확장성이 좋게 변이 프로그램을 생성하는 방법 및 장치

Also Published As

Publication number Publication date
US20100095159A1 (en) 2010-04-15

Similar Documents

Publication Publication Date Title
KR20100041447A (ko) 테스트 자동화 장치 및 테스트 자동화 방법
EP3287901A1 (en) Simulation including multiple simulators
CN111651366B (zh) Sdk测试方法、装置、设备及存储介质
US8990779B2 (en) Response time measurement system and method
CN104155972B (zh) 工程机械电子控制器参数调试方法
US9971333B2 (en) Programming auxiliary system of programmable controller and method thereof
US20150100832A1 (en) Method and system for selecting and executing test scripts
CN107577609B (zh) 一种基于主机端动态链接的嵌入式系统动态模块调试系统
US20150100830A1 (en) Method and system for selecting and executing test scripts
CN105630569A (zh) 一种软件源代码的处理方法、装置及电子设备
US20080077370A1 (en) System and method for integrating a process control system into a training simulator
Kawahara et al. Verification of embedded system's specification using collaborative simulation of SysML and simulink models
US20150100831A1 (en) Method and system for selecting and executing test scripts
CN113157508B (zh) 嵌入式系统的测试方法、系统、装置、设备及存储介质
CN110377244A (zh) 一种日志打印方法、装置、设备及存储介质
US20080127119A1 (en) Method and system for dynamic debugging of software
US20100312541A1 (en) Program test device and program
US20080127118A1 (en) Method and system for dynamic patching of software
US20080127061A1 (en) Method and system for editing code
US20130254750A1 (en) Method of debugging software and corresponding computer program product
CN116820908A (zh) 基于Locust的性能测试方法、装置、设备及介质
CN112527312B (zh) 一种嵌入式系统的测试方法和测试装置
US20120246636A1 (en) Method and arrangement for installing and configuring a computer system
CN103176903B (zh) MapReduce分布式系统程序的测试方法及设备
CN109857638B (zh) 一种测试系统软件通用框架

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid