KR100621576B1 - 내장 시스템 소프트웨어를 테스트하기 위한 시스템 및 방법 - Google Patents
내장 시스템 소프트웨어를 테스트하기 위한 시스템 및 방법 Download PDFInfo
- Publication number
- KR100621576B1 KR100621576B1 KR1019990027345A KR19990027345A KR100621576B1 KR 100621576 B1 KR100621576 B1 KR 100621576B1 KR 1019990027345 A KR1019990027345 A KR 1019990027345A KR 19990027345 A KR19990027345 A KR 19990027345A KR 100621576 B1 KR100621576 B1 KR 100621576B1
- Authority
- KR
- South Korea
- Prior art keywords
- test
- sequence chart
- message sequence
- generating
- generator
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/321—Display for diagnostics, e.g. diagnostic result display, self-test user interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
내장 시스템 소프트웨어를 테스트하는 데 필요한 테스트 스크립트 및 테스트 드라이버를 자동으로 생성할 수 있는 내장 시스템 소프트웨어를 테스트하기 위한 시스템 및 방법이 개시된다. 데이터베이스는 제1 메시지 시퀀스 챠트, 결정 테이블 그리고 인터페이스 명세를 저장하고 출력하고, 테스트 케이스 생성기는 상기 제1 메시지 시퀀스 챠트, 결정 테이블 그리고 인터페이스 명세에 의거하여 테스트 스크립트 및 테스트 드라이버를 생성하고, 상기 데이터베이스 및 테스트 케이스 생성기는 컴퓨터 시스템에 의해서 제어된다. 따라서, 테스트 스크립트 및 테스트 드라이버의 오류를 방지할 수 있을 뿐만 아니라 내장 시스템 소프트웨어를 테스트하는 데 소요되는 시간을 최소화할 수 있다.
소프트웨어 테스트, 내장 시스템 소프트웨어, MSC, 테스트 케이스 생성
Description
도 1은 종래 내장 시스템 소프트웨어를 테스트하기 위한 시스템을 설명하기 위한 블록도;
도 2는 본 발명의 일 실시예에 따른 테스트 케이스 생성기의 모듈을 보이는 도면;
도 3은 본 발명의 일 실시예에 따른 내장 시스템 소프트웨어를 테스트하기 위한 방법을 설명하기 위한 순서도;
도 4는 도 3에 도시된 테스트 드라이버를 생성하는 단계를 설명하기 위한 순서도,
도 5는 본 발명에 적용된 메시지 시퀀스 챠트의 에디터를 도시한 도면,
도 6은 본 발명에 적용된 테스트케이스 생성기의 실행 화면을 도시한 도면,
도 7은 본 발명에 의해 생성된 테스트 스크립트의 일예를 도시한 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
110 : 하이레벨 MSC 120 : 결정 테이블
130 : 인터페이스 명세 214 : MSC 파서
218 : 테이블 파서 222 : 테스트 시퀀스 생성기
224 : 테스트 시퀀스 226 : 테스트 케이스 선택기
228 : 테스트 드라이버 생성기 310 : 테스트 스크립트
320 : 테스트 드라이버
본 발명은 내장 시스템 소프트웨어용 테스트 시스템 및 방법에 관한 것으로, 좀 더 구체적으로는, 내장 시스템 소프트웨어를 테스트하는 데 필요한 테스트 스크립트 및 테스트 드라이버를 자동으로 생성할 수 있는 내장 시스템 소프트웨어를 테스트하기 위한 시스템 및 방법에 관한 것이다.
일반적으로, 내장 시스템 소프트웨어(Embedded System Software)는 공장 제어, 엘리베이터 제어와 같은 제어 시스템이나 휴대폰, 웹 비디오폰과 같은 통신 시스템 등에 널리 사용된다.
이와 같은 내장 시스템 소프트웨어에서 하나의 모듈을 테스팅하기 위해서는 해당 모듈에 대한 단위 테스팅 기법 이외에 추가적으로 그 모듈에 도달하기 위한 다양한 시퀀스를 생성하는 방법이 필요하다.
그러나, 도 1에 도시된 바와 같이, 종래에는 내장 시스템 소프트웨어를 테스트하는 데 필요한 테스트 스크립트(18) 및 테스트 드라이버(22)가 작업자의 수작업에 의해 생성된다.
따라서, 작업자의 수작업에 의해 생성된 테스트 스크립트(18) 및 테스트 드 라이버(22)에 종종 오류가 발생될뿐만 아니라 작업자의 직관에 의해 테스트 데이터를 선정하기 때문에 테스트할 데이터를 포함하지 못하는 경우가 발생되며, 그리고 수작업에 의해 진행되기 때문에 오래 작업 시간이 소요된다.
또한, 종래에는 내장 시스템 소프트웨어의 각 모듈의 테스트시, 해당 모듈에 도달하기 위한 다양한 경로를 생성하는 방법을 제공하지 못하고 있다.
상술한 문제점을 해결하기 위해 제안된 본 발명은, 내장 시스템 소프트웨어를 테스트하는 데 필요한 테스트 스크립트 및 테스트 드라이버를 자동으로 생성할 수 있는 내장 시스템 소프트웨어를 테스트하기 위한 시스템을 제공하는 데 그 목적이 있다.
본 발명의 다른 목적은, 내장 시스템 소프트웨어를 테스트하는 데 필요한 테스트 스크립트 및 테스트 드라이버를 자동으로 생성할 수 있는 내장 시스템 소프트웨어를 테스트하기 위한 방법을 제공하는 데 있다.
상술한 목적을 달성하기 위한 본 발명에 따른 내장 시스템 소프트웨어를 테스트하기 위한 시스템은, 제1 메시지 시퀀스 챠트, 결정 테이블 그리고 인터페이스 명세를 저장하고 출력하기 위한 데이터베이스와, 그리고 상기 제1 메시지 시퀀스 챠트, 결정 테이블 그리고 인터페이스 명세에 의거하여 테스트 스크립트 및 테스트 드라이버를 생성하기 위한 테스트 케이스 생성기를 포함하고, 상기 데이터베이스 및 테스트 케이스 생성기는 컴퓨터 시스템에 의해서 제어된다.
상술한 목적을 달성하기 위한 본 발명에 따른 내장 시스템 소프트웨어를 테스트하기 위한 방법은, 메시지 시퀀스 챠트 에디터에 의해 생성된 제 1메시지 시퀀스 챠트, 테이블 에디터에 의해 생성된 결정 테이블 그리고 별도로 생성되는 인터페이스 명세를 갖는 정형 명세를 생성하는 단계와, 상기 메시지 시퀀스 챠트 에디터가 상기 생성된 제 1메시지 시퀀스 챠트로부터 제 2메시지 시퀀스 챠트를 생성하는 단계와, 상기 메시지 시퀀스 챠트 에디터의 제어에 응답하여 상기 생성된 상기 제2 메시지 시퀀스 챠트로부터 제3 메시지 시퀀스 챠트를 생성하는 단계와, 상기 결정 테이블로부터 각 단위 모듈을 명세하는 테이블을 생성하는 단계와, 상기 제3 메시지 시퀀스 챠트로부터 테스트 시퀀스를 생성하는 단계와, 상기 테이블 및 테스트 시퀀스로부터 테스트 스크립트를 생성하는 단계와, 그리고 상기 인터페이스 명세로부터 상기 테스트 스크립트를 특정 오퍼레이팅 시스템에서 테스트하기 위한 테스트 드라이버를 생성하는 단계를 포함한다.
이와 같은 본 발명에 따르면, 내장 시스템 소프트웨어를 테스트하는 데 필요한 테스트 스크립트 및 테스트 드라이버는 작업자의 손을 거치지 않고 컴퓨터 시스템에 탑재된 프로그램에 의해 자동으로 생성된다. 또한, 내장 시스템 소프트웨어의 각 모듈의 테스트에서 해당 모듈에 도달하기 위한 다양한 경로를 생성하는 방법을 제공한다.
따라서, 테스트 스크립트 및 테스트 드라이버의 오류를 방지할 수 있을뿐만 아니라 내장 시스템 소프트웨어를 테스트하는 데 소요되는 시간을 최소화할 수 있다.
이하, 본 발명의 바람직한 일 실시예를 첨부 도면 도 2 내지 도 5에 의거해서 상세하게 설명한다.
도 2는 본 발명의 일 실시예에 따른 테스트 케이스 생성기의 모듈을 보이는 도면이다.
도 2를 참조하면, 본 발명에 따른 내장 시스템 소프트웨어를 테스트하기 위한 시스템은, 하이레벨 메시지 시퀀스 챠트(110), 결정 테이블(120) 그리고 인터페이스 명세(130)를 저장하고 출력하기 위한 데이터베이스(100), 그리고 하이레벨 메시지 시퀀스 챠트(110), 결정 테이블(120) 그리고 인터페이스 명세(130)에 의거하여 테스트 스크립트(310) 및 테스트 드라이버(320)를 생성하기 위한 테스트 케이스 생성기(200)를 포함한다.
여기에서, 상기 테스트 케이스 생성기(200)는 시스템을 구성하는 컴포너트를 인스턴스로 나타내고, 그들간의 상호 작용을 메시지로 표현하고 있는 베이직 메시지 시퀀스 챠트와 베이직 메시지 시퀀스 챠트간의 관계를 계층적으로 표현하고 있는 하이레벨 메시지 시퀀스 챠트(110)를 생성하고, 생성된 하이레벨 메시지 시퀀스 챠트(110)로부터 기본 메시지 시퀀스 챠트(212)를 생성하기 위한 메시지 시퀀스 챠트 에디터(210), 메시지 시퀀스 챠트 에디터(210)의 제어에 응답하여 기본 메시지 시퀀스 챠트(212)를 분석하여서 메시지 시퀀스 챠트(216)를 생성하고, 생성된 메시지 시퀀스 챠트(216)를 테스트 케이스 생성기(200)의 입력으로 사용하기 위해 생성된 메시지 시퀀스 챠트(216)를 읽어들이는 메시지 시퀀스 챠트 파서(214), 메시지 시퀀스 챠트 파서(214)의 제어에 응답하여 결정 테이블(120)을 분석하여서 테이블(220)을 생성하기 위한 테이블 파서(218), 테이블 파서(218)의 제어에 응답하여 메시지 시퀀스 챠트(216)를 이용하여서 테스트 시퀀스(224)를 생성하기 위한 테스트 시퀀스 생성기(222), 테스트 시퀀스 생성기(222)의 제어에 응답하여 테이블(220) 및 테스트 시퀀스(224)를 이용하여서 테스트 스크립트(310)를 생성하기 위한 테스트 케이스 선택기(226) 그리고 인터페이스 명세(130)를 이용하여서 테스트 스크립트(310)를 내장 시스템 소프트웨어(embedded system software)에서 테스트하기 위한 테스트 드라이버(320)를 생성하기 위한 테스트 드라이버 생성기(228)를 갖는다.
이때, 상기 데이터베이스(100) 및 테스트 케이스 생성기(200)는 컴퓨터 시스템에 의해서 제어되고, 상기 컴퓨터 시스템은 테스트 드라이버 생성기(228)에 의해 생성된 상기 테스트 드라이버를 함수 호출에 따라 체크하고, 그 결과를 화면으로 출력한다.
또한, 테스트 드라이버 생성기(228)는 인터페이스 명세(130)를 통해 함수들의 프로토 타입 정보를 읽어들이고, 이 함수들의 프로토 타입 정보에 의거하여 초기화 코드, 각 함수에 대한 파라미터 입력 루틴 그리고 함수 호출 부분을 삽입한다.
또한, 메시지 시퀀스 챠트(216), 테이블(220) 그리고 테스트 시퀀스(224)는 상기 컴퓨터 시스템의 데이터베이스(100)에 저장된다.
이하, 도 3 및 도 4을 참조하여 본 발명에 따른 내장 시스템 소프트웨어를 테스트하기 위한 방법을 설명한다.
도 3은 본 발명의 일 실시예에 따른 내장 시스템 소프트웨어를 테스트하기 위한 방법을 설명하기 위한 순서도이다.
도 3을 참조하면, 먼저, 메시지 시퀀스 챠트 에디터는 하이레벨 메시지 시퀀스 챠트(110)를 생성하고, 테이블 에디터는 결정 테이블(120)을 생성하고 그리고 인터페이스 명세(130)는 별도로 생성된다. 하이레벨 메시지 시퀀스 챠트(110), 결정 테이블(120) 그리고 인터페이스 명세(130)는 정형 명세(formal specification)로서 상기 컴퓨터 시스템의 데이터베이스(100)에 저장된다(단계 S400).
다음, 메시지 시퀀스 챠트 에디터(210)는 하이레벨 메시지 시퀀스 챠트(110)로부터 기본 메시지 시퀀스 챠트(212)를 생성한다(단계 S410).
메시지 시퀀스 챠트 파서(214)는 메시지 시퀀스 챠트 에디터(210)의 제어에 응답하여 기본 메시지 시퀀스 챠트(212)로부터 메시지 시퀀스 챠트(216)를 생성한다(단계 S420).
이어서, 테이블 파서(218)는 메시지 시퀀스 챠트 파서(214)의 제어에 응답하여 결정 테이블(120)로부터 테이블(220)을 생성한다(단계 S430).
테스트 시퀀스 생성기(222)는 테이블 파서(218)의 제어에 응답하여 상기 메시지 시퀀스 챠트(216)로부터 테스트 시퀀스를 생성한다(단계 S440).
다음, 테스트 케이스 선택기(226)는 테스트 시퀀스 생성기(222)의 제어에 응답하여 테이블(220) 및 테스트 시퀀스(224)로부터 테스트 스크립트(310)를 생성한다(단계 S450).
상술한 테스트 스크립트(310) 단계(S450)은 각 단위 모듈에 관한 명세는 결정 테이블(120)를 사용하고, 모듈의 호출 패턴은 메시지 시퀀스 챠트(218)를 이용하여 명세한다. 한 모듈의 출력 값은 그 모듈에 영향을 미치는 입력 변수들의 가능한 범위들의 조합에 의해 결정되므로, 결정 테이블(120)을 이용하여 쉽게 기술할 수 있다.
그리고, 시스템의 발생 가능한 시나리오를 메시지 시퀀스 챠트(218)를 이용하여 명세하고, 기술된 메시지 시퀀스 챠트(218)로부터 테스트 시퀀스(224)를 생성한다.
상술한 메시지 시퀀스 챠트(218)는 수직선과 화살표와 같은 간단한 기호들을 이용하여 시스템을 구성하는 콤퍼넌트들 사이의 상호 작용을 표현하고 있기 때문에 직관적으로 이해하기 쉽고 작성하는 것이 간단하다.
상술한 각각의 컴포넌트를 인스턴스(또는 프로세스)로 나타내고, 그들 간의 상호 작용을 메시지로 표현하고 있는 베이직 메시지 시퀀스 챠트와 베이직 메시지 시퀀스 챠트간의 관계를 계층적으로 표현하고 있는 하이 레벨 메시지 시퀀스 챠트(218)로 구성된다. 상술한 하이레벨 메시지 시퀀스 챠트를 정의 함으로써 부분적인 행위만을 기술하는 기존의 메시지 시퀀스 챠트의 단점을 보완할 수 있다.
한편, 상술한 결정 테이블(120)은 상업 데이터 처리 분야에서 널리 사용되고 있는 명세 방법으로, 의미를 이해하기 쉽고, 일치성과 완전성 판별이 쉽다.
상술한 결정 테이블(120)을 후술하는 표1에 의해 설명하면 다음과 같다.
규칙 1 | 규칙 2 | 규칙 3 | 규칙 4 | |
조건 1 | YES | YES | NO | NO |
조건 2 | YES | I | NO | I |
조건 3 | NO | YES | NO | I |
조건 4 | NO | YES | NO | YES |
행위 1 | YES | YES | NO | NO |
행위 2 | NO | NO | YES | NO |
행위 3 | NO | NO | NO | YES |
상술한 표1에 나타낸 바와 같이 결정 테이블(120)은 상업 데이터 처리 분야에서 널리 사용되고 있는 명세 방법으로 의미를 이해하기 쉽고, 일치성과 완전성 판별이 쉽다.
표1에서 보는 바와 같이, 결정 테이블의 행은 조건과 행위를 나타내는 두 부분으로 구성되고, 열은 각 조건의 조합으로 가능한 규칙으로 구성된다. 일예를 들 어 상기 결정 테이블(120)의 명세를 만족하는 임의의 모듈이 있을 때, 그 모듈의 입력들이 만족하는 규칙이 존재하는 경우 그 모듈의 행위는 결정표에 정의 된 것과 같은 행위를 수행할 수 있다.
예를 들어 표1에서 열1의 경우, 조건 1과 조건 2가 만족하고, 조건 3과 조건 4가 만족하지 않은 경우 그 모듈은 행위 1을 수행하게 된다.
즉, 상술한 표1에 나타낸 결정 테이블(120)을 이용하여 명세하고, 이로부터 테스트 데이터를 생성하는 과정은 다음과 같다.
첫째, 전체 입력 변수와 전체 출력 변수를 찾는다. 즉 함수의 수행에 영향을 미치는 입력 변수로는 함수의 입력 파라미터와 전역 변수가 있고, 함수에 의해 영향을 받는 출력변수로는 출력 파라미터와 전역변수 그리고 리턴값이 있다.
둘째, 전체 입력 변수를 이용하여 조건을 찾아낸다. 함수의 수행에 영향을 미치는 전체 입력 변수들이 결정되면, 각 변수 별로 가능한 값의 범위를 나눈다. 각각의 범위는 하나의 조건이 된다. 각 조건들은 다른 변수의 조건과 함께 출력 값에 영향을 미친다. 따라서, 가능한 출력의 종류는 전체 입력변수로부터 가능한 조건들의 조합으로 나타날 수 있으나, 실제로 영향을 미치는 조건의 조합은 그보다 적다.
셋째, 전체 입력 변수들의 조건에 따라 함수의 명세의 맞게 YES, NO 값을 적용하여 결정표의 규칙을 완성한다.
넷째, 각 규칙별로 출력 변수들의 가능한 값을 결정해 준다. 결정 테이블(120)을 만드는 마지막 단계는 각 단계를 통해 생성된 조건 테이블의 각 규 칙에 대해서 전체 출력 변수 값을 정해주는 과정이다. 즉 주어진 전체 입력 변수값과 함수에 의해 수행이 마쳐진 출력 결과에 대한 올바른 범위를 여기서 표시하게 된다.
다섯째, 작성된 결정 테이블(120)에서 테스트 데이터를 생성한다. 결정 테이블(120)의 하나의 규칙을 만족하느 각 입력 변수들의 값이 하나의 테스트 데이터를 구성한다. 이때, 범위의 형식을 가지는 변수의 경우에는 기존의 영역 테스팅 방법을 이용하여 테스트 데이터를 구한다.
메시지 시퀀스 챠트(218)와 결정 테이블(120)을 이용한 테스트 데이터 생성의 마지막 과정은 이미 생성된 테스트 시퀀스(224)와 결정 테이블(120)의 정보를 합치는 것이다.
임의의 모듈을 테스팅하기 위해 TM(Test Manager)에서 IUT(Implementation Under Test)로의 메시지 전송을 테스팅하고자 하는 함수의 호출로 표현하였고, 이를 받은 IUT에서는 해당하는 함수의 명세를 행위 문에 결정 테이블(120) 형식으로 표현하여 테스팅하고자 하는 함수에 대한 데이터를 생성한다.
그리고, IUT에서는 TM으로의 메시지 전송은 함수의 결과가 변환되는 것을 나타낸다. 실제로 테스트 케이스는 테스트 시퀀스에 따라 함수가 나타나고, 함수를 호출하는 부분에서 결정 테이블(120)을 참조하여 필요한 값을 넘기게 된다.
이때, 여러개의 함수가 연속해서 호출될 때 각 함수에 대한 테스트 데이터들이 조합되어 스크립트 형식으로 출력된다.
상술한 테스트 케이스 생성기(200)는 메시지 시퀀스 챠트 에디터(210)를 이 용하여 작성된 메시지 시퀀스 명세와 수작업으로 기술한 결정 테이블(120)을 입력으로 받아 테스트 스크립트(310)를 자동으로 생성하게 된다. 이때 생성된 테스트 스크립트(310)를 수행하여 그 결과를 비교하고 저장할 수 있는 언어 형식의 테스트 드라이버 코드도 생성한다.
첨부 도면 도 5의 메시지 시퀀스 챠트(216)는 하나의 위도우 생성에 대한 간단한 시나리오를 작성한 일예로서, CreateMainWindow() 함수를 이용하여 메인 윈도우 하나를 생성하고, ShowWindow()와 HideWindow() 함수를 이용해서 화면에 보이는 상태를 조정한 후, DestroyWindow() 함수를 이용하여 소멸하는 과정을 기술한다.
메인 윈도우를 만들기 위해서는 타이틀이나 크기, 색깔과 같은 윈도우에 대한 기본적인 정보가 필요한데, 이에 대한 명세는 결정 테이블(120)을 이용하여 작성하는데, 상세한 설명은 생략하기로 한다.
테스트 케이스 생성기(200)는 첨부 도면 도 2에 도시된 바와 같이, 작성된 메시지 시퀀스 챠트(216)와 결정 테이블(120)이 테스트 생성기(200)의 입력으로 사용되는데, 각각의 명세를 읽어들이기 위해서 파서(214)(218)를 이용한다.
메시지 시퀀스 챠트(216) 명세로부터 테스트 시퀀스를 생성하고, 생성된 시퀀스 상에 행위가 나타나면 해당하는 결정 테이블(120)을 읽어들인다. 읽어들인 결정 테이블(120)로부터 테스트 데이터를 생성하는데, 만약 테스트 시퀀스 상에 여려개의 결정표가 연결된다면 각각의 테스트 데이터를 조합하여 테스트 스크립트(310)를 생성한다.
테스트케이스 생성기(200)에는 생성된 테스트 스크립트(310)를 수행하고, 그 결과를 비교하고 저장하는 테스트 드라이버 생성기(228)도 포함하고 있다. 이 과정은 테스트 케이스 생성과 독립적으로 진행되며, 각 함수의 시그너쳐를 입력으로 받는다.
도 6은 테스트케이스 생성기(200)의 실행화면으로 앞에서 작성한 메시지 시퀀스 챠트(218) 명세를 읽어들여 테스트케이스를 생성하는 것으로 'open' 메뉴를 사용하여 작성된 메시지 시퀀스 챠트(218)를 열고, 'run' 메뉴를 선택하여 메시지 시퀀스 챠트(218) 명세와 결정 테이블(120) 명세를 파싱하여 내부적으로 필요한 자료 구조를 만든다.
이때, 각 명세가 문법에 맞게 작성되어 있는지 검사한다. 그리고 나서, 'gernerate' 메뉴의 'testcase'를 선택하면 자동으로 테스트 스크립트(310)를 생성할 수 있다.
첨부 도면 도 7은 생성된 테스트 스크립트(310)의 일부분을 나타내는 것으로서 메시지 시퀀스 챠트(218)에 기술된 각 함수를 생성된 테스트 시퀀스(224)에 따라 호출하여 하나의 테스팅 과정을 완성한다.
이때, CreateMainWindow() 함수는 결정 테이블(120)로 그 기능이 기술되어 있으며, 그에 해당하는 테스트 데이터를 생성하여 파라미터의 이름과 함께 저장하고, 그 결과 값이 유효하게 되는 범위를 결정 테이블(120)로부터 구하여, 이함수의 결과가 올바른지를 자동으로 검사할 수 있도록 한다.
이렇게 테스트 케이스 생성기(200)에 의해 생성된 테스트 스크립트(310)는 시뮬레이터를 이용하여 실제로 수행해 볼 수 있는데, 이때, 테스트케이스 생성기(228)로부터 생성된 테스트 드라이버 코드도 함께 컴파일해 주어야 한다.
상술한 메시지 시퀀스 챠트 에디터(212)는 테스터가 메시지 시퀀스 챠트(216)를 보다 편리하게 작성할 수 있도록 도와준다. 이렇게 작성된 메시지 시퀀스 챠트(216)는 표준 텍스트 형식으로 저장된다.
테스트 드라이버 생성기(228)는 인터페이스 명세(130)로부터 테스트 스크립트(310)를 상기 내장 시스템 소프트웨어상에서 테스트하기 위한 테스트 드라이버(320)를 생성한다(단계 S460).
도 4는 도 3에 도시된 테스트 드라이버(320)를 생성하는 단계를 설명하기 위한 순서도이다.
도 4를 참조하면, 먼저, 테스트 드라이버 생성기(228)는 인터페이스 명세(130)에 의해 제공되는 함수들에 대한 프로토 타입 정보를 독출한다(단계 S500).
다음, 테스트 드라이버(320)를 생성하는 데 필요한 초기화 코드를 삽입하고(단계 S510), 상기 함수들의 각 함수에 대한 파라미터 입력 루틴을 삽입한다(단계 S520).
그리고, 테스트 드라이버 생성기(228)는 상기 각 함수의 함수 호출 부분을 삽입하고(단계 S530), 상기 호출된 결과를 결정 테이블(120)을 기준으로 체크하여서 그 결과를 출력한다(단계 S540).
상술한 바와 같은 내장 시스템 소프트웨어 테스트 시스템 및 방법에 따르면, 내장 시스템 소프트웨어를 테스트하는 데 필요한 테스트 스크립트 및 테스트 드라이버는 작업자의 손을 거치지 않고 컴퓨터 시스템에 탑재된 프로그램에 의해 자동으로 생성된다. 또한, 내장 시스템 소프트웨어의 각 모듈의 테스트에서 해당 모듈에 도달하기 위한 다양한 경로를 생성하는 방법을 제공한다.
따라서, 테스트 스크립트 및 테스트 드라이버의 오류를 방지할 수 있을뿐만 아니라 내장 시스템 소프트웨어를 테스트하는 데 소요되는 시간을 최소화할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
Claims (9)
- 제 1메시지 시퀀스 챠트, 결정 테이블 그리고 인터페이스 명세를 저장하고 출력하기 위한 데이터베이스; 및상기 제 1메시지 시퀀스 챠트를 통해 제 2시퀀스 챠트, 및 제 3시퀀스 챠트를 순차적으로 생성하고, 상기 생성된 제 3메시지 시퀀스 챠트에 의해 생성되는 테스트 시퀀스, 및 상기 결정 테이블로부터 생성되는 각 단위 모듈을 명세하는 테이블을 통해 테스트 스크립트를 생성하며, 상기 인터페이스 명세를 이용하여 테스트 드라이버를 생성하기 위한 테스트 케이스 생성기를 포함하고,상기 데이터베이스 및 테스트 케이스 생성기는 컴퓨터 시스템에 의해서 제어되는 것을 특징으로 하는 내장 시스템 소프트웨어를 테스트하기 위한 시스템.
- 제1항에 있어서, 상기 테스트 케이스 생성기는,상기 제1 메시지 시퀀스 챠트를 이용하여 상기 제2 메시지 시퀀스 챠트를 생성하기 위한 메시지 시퀀스 챠트 에디터;상기 메시지 시퀀스 챠트 에디터의 제어에 응답하여 상기 제2 메시지 시퀀스 챠트를 분석하여서 상기 제3 메시지 시퀀스 챠트를 생성하기 위한 메시지 시퀀스 챠트 파서;상기 메시지 시퀀스 챠트 파서의 제어에 응답하여 상기 결정 테이블을 분석하여서 테이블을 생성하기 위한 테이블 파서;상기 테이블 파서의 제어에 응답하여 상기 제3 메시지 시퀀스 챠트를 이용하여서 테스트 시퀀스를 생성하기 위한 테스트 시퀀스 생성기;상기 테스트 시퀀스 생성기의 제어에 응답하여 상기 테이블 및 테스트 시퀀스를 이용하여서 테스트 스크립트를 생성하기 위한 테스트 케이스 선택기; 및상기 인터페이스 명세를 이용하여서 상기 테스트 스크립트를 특정 오퍼레이팅 시스템에서 테스트하기 위한 테스트 드라이버를 생성하기 위한 테스트 드라이버 생성기를 포함하는 것을 특징으로 하는 내장 시스템 소프트웨어를 테스트하기 위한 시스템.
- 제2항에 있어서, 상기 컴퓨터 시스템은 상기 테스트 드라이버 생성기에 의해 생성된 상기 테스트 드라이버를 함수 호출에 따라 체크하고, 그 결과를 화면으로 출력하는 것을 특징으로 하는 내장 시스템 소프트웨어를 테스트하기 위한 시스템.
- 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 테스트 드라이버 생성기는 상기 인터페이스 명세를 통해 함수들의 프로토 타입 정보를 읽어들이고, 이 함수들의 프로토 타입 정보에 의거하여 초기화 코드, 각 함수에 대한 파라미터 입력 루틴 그리고 함수 호출 부분을 삽입하는 것을 특징으로 하는 내장 시스템 소프트웨어를 테스트하기 위한 시스템.
- 제2항에 있어서, 상기 제3 메시지 시퀀스 챠트, 테이블 그리고 테스트 시퀀스는 상기 데이터베이스에 저장되는 것을 특징으로 하는 내장 시스템 소프트웨어를 테스트하기 위한 시스템.
- 제2항에 있어서, 상기 특정 오퍼레이팅 시스템은 내장 시스템 소프트웨어인 것을 특징으로 하는 내장 시스템 소프트웨어를 테스트하기 위한 시스템.
- 제1 메시지 시퀀스 챠트, 결정 테이블 그리고 인터페이스 명세를 갖는 정형 명세를 생성하는 단계;상기 제1 메시지 시퀀스 챠트로부터 제2 메시지 시퀀스 챠트를 생성하는 단계;상기 제2 메시지 시퀀스 챠트로부터 제3 메시지 시퀀스 챠트를 생성하는 단계;상기 결정 테이블로부터 각 단위 모듈을 명세하는 테이블을 생성하는 단계;상기 제3 메시지 시퀀스 챠트로부터 테스트 시퀀스를 생성하는 단계;상기 테이블 및 테스트 시퀀스로부터 테스트 스크립트를 생성하는 단계; 및상기 인터페이스 명세로부터 상기 테스트 스크립트를 특정 오퍼레이팅 시스템에서 테스트하기 위한 테스트 드라이버를 생성하는 단계를 포함하는 것을 특징으로 하는 내장 시스템 소프트웨어를 테스트하기 위한 방법.
- 제7항에 있어서, 상기 테스트 드라이버를 생성하는 단계는,상기 인터페이스 명세에 의해 제공되는 함수들에 대한 프로토 타입 정보를 독출하는 단계;필요한 초기화 코드를 삽입하는 단계;상기 함수들의 각 함수에 대한 파라미터 입력 루틴을 삽입하는 단계;상기 각 함수의 함수 호출 부분을 삽입하는 단계; 및호출된 결과를 상기 결정 테이블을 기준으로 체크하고, 그 결과를 출력하는 단계를 포함하는 것을 특징으로 하는 내장 시스템 소프트웨어를 테스트하기 위한 방법.
- 제7항에 있어서, 상기 특정 오퍼레이팅 시스템은 내장 시스템 소프트웨어인 것을 특징으로 하는 내장 시스템 소프트웨어를 테스트하기 위한 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990027345A KR100621576B1 (ko) | 1999-07-07 | 1999-07-07 | 내장 시스템 소프트웨어를 테스트하기 위한 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990027345A KR100621576B1 (ko) | 1999-07-07 | 1999-07-07 | 내장 시스템 소프트웨어를 테스트하기 위한 시스템 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010009138A KR20010009138A (ko) | 2001-02-05 |
KR100621576B1 true KR100621576B1 (ko) | 2006-09-12 |
Family
ID=19600065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990027345A KR100621576B1 (ko) | 1999-07-07 | 1999-07-07 | 내장 시스템 소프트웨어를 테스트하기 위한 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100621576B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101019166B1 (ko) * | 2009-11-30 | 2011-03-04 | 재단법인대구경북과학기술원 | 내장형 소프트웨어의 테스트 자동화 장치 및 그 방법 |
CN114661615B (zh) * | 2022-04-11 | 2024-01-30 | 成都迪真计算机科技有限公司 | 一种fpga软件测试方法和设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06110733A (ja) * | 1992-09-30 | 1994-04-22 | Hitachi Ltd | プログラムのテストケース生成装置 |
JPH0830487A (ja) * | 1994-07-15 | 1996-02-02 | Fujitsu Ltd | プログラムのテスト方法および装置 |
JPH08263130A (ja) * | 1995-03-20 | 1996-10-11 | Hitachi Ltd | シミュレーション方式 |
JPH0922371A (ja) * | 1995-07-06 | 1997-01-21 | Fujitsu Ltd | 試験データ生成装置 |
JPH10207727A (ja) * | 1997-01-23 | 1998-08-07 | Hitachi Ltd | テストプログラム自動生成システム |
US5799266A (en) * | 1996-09-19 | 1998-08-25 | Sun Microsystems, Inc. | Automatic generation of test drivers |
JPH10340201A (ja) * | 1997-06-09 | 1998-12-22 | Matsushita Electric Ind Co Ltd | システムテスト自動化装置 |
-
1999
- 1999-07-07 KR KR1019990027345A patent/KR100621576B1/ko not_active IP Right Cessation
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06110733A (ja) * | 1992-09-30 | 1994-04-22 | Hitachi Ltd | プログラムのテストケース生成装置 |
JPH0830487A (ja) * | 1994-07-15 | 1996-02-02 | Fujitsu Ltd | プログラムのテスト方法および装置 |
JPH08263130A (ja) * | 1995-03-20 | 1996-10-11 | Hitachi Ltd | シミュレーション方式 |
JPH0922371A (ja) * | 1995-07-06 | 1997-01-21 | Fujitsu Ltd | 試験データ生成装置 |
US5799266A (en) * | 1996-09-19 | 1998-08-25 | Sun Microsystems, Inc. | Automatic generation of test drivers |
JPH10207727A (ja) * | 1997-01-23 | 1998-08-07 | Hitachi Ltd | テストプログラム自動生成システム |
JPH10340201A (ja) * | 1997-06-09 | 1998-12-22 | Matsushita Electric Ind Co Ltd | システムテスト自動化装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20010009138A (ko) | 2001-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6332211B1 (en) | System and method for developing test cases using a test object library | |
US6421822B1 (en) | Graphical user interface for developing test cases using a test object library | |
US5991537A (en) | VXI test executive | |
CN1703703B (zh) | 用于检验用来命令装备特别是站场装备的铁路逻辑软件引擎的设备和方法 | |
AU748588B2 (en) | Method for defining durable data for regression testing | |
EP1236104B1 (en) | Method for computer-assisted testing of software application components | |
AU2003233316B2 (en) | Automated software testing system and method | |
US4949253A (en) | Method and apparatus for automatically generating program | |
US6889337B1 (en) | Method and system for screen reader regression testing | |
US7895575B2 (en) | Apparatus and method for generating test driver | |
US20080270841A1 (en) | Test case manager | |
US20050028138A1 (en) | Programmatically determining calling information of a graphical program | |
WO1999021404A2 (en) | Apparatus and method for semi-automated generation and application of language conformity tests | |
US20050137844A1 (en) | Method for generating a language-independent regression test script | |
US5754442A (en) | Path analyzing displaying apparatus for designing logic circuit | |
KR100621576B1 (ko) | 내장 시스템 소프트웨어를 테스트하기 위한 시스템 및 방법 | |
US7620937B2 (en) | System and method for debugging programs | |
KR100621573B1 (ko) | 내장 시스템 소프트웨어를 테스트하기 위한 시스템 및 방법 | |
CN100367233C (zh) | 程序执行控制方式 | |
KR100621574B1 (ko) | 내장 시스템 소프트웨어 테스팅을 위한 테스트 드라이버 생성시스템 | |
EP0676111B1 (en) | Method and arrangement for testing services in a telecommunications system | |
JP2005316710A (ja) | ソフトウェア試験支援装置 | |
JPH1124904A (ja) | プログラム作成装置及びプログラム作成プログラムを記憶した記憶媒体 | |
US10937203B1 (en) | Devices, systems, and methods for integrated circuit verification | |
CN107122226B (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 | ||
FPAY | Annual fee payment |
Payment date: 20120730 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20130730 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20140730 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20150730 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20160728 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |