KR101134735B1 - Software testing method and system using software component design information - Google Patents

Software testing method and system using software component design information Download PDF

Info

Publication number
KR101134735B1
KR101134735B1 KR1020100108551A KR20100108551A KR101134735B1 KR 101134735 B1 KR101134735 B1 KR 101134735B1 KR 1020100108551 A KR1020100108551 A KR 1020100108551A KR 20100108551 A KR20100108551 A KR 20100108551A KR 101134735 B1 KR101134735 B1 KR 101134735B1
Authority
KR
South Korea
Prior art keywords
software
software component
test
test case
interface
Prior art date
Application number
KR1020100108551A
Other languages
Korean (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 KR1020100108551A priority Critical patent/KR101134735B1/en
Application granted granted Critical
Publication of KR101134735B1 publication Critical patent/KR101134735B1/en

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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Abstract

PURPOSE: A software test method and a system thereof through software component design information are provided to reduce necessary time for testing by automatically generating a test case and a system for a unit test of a software component. CONSTITUTION: An information extracting unit(311) extracts information for generating a test case based on software component design information. A test case generating unit(312) generates a black box test case for function inspection of the software component or an interface test case. A test system(330) determines software test success through the interface test case.

Description

소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스트 방법 및 시스템{SOFTWARE TESTING METHOD AND SYSTEM USING SOFTWARE COMPONENT DESIGN INFORMATION}Software test method and system using software component design information {SOFTWARE TESTING METHOD AND SYSTEM USING SOFTWARE COMPONENT DESIGN INFORMATION}

아래 실시예들은 다수의 소프트웨어 컴포넌트를 제공하는 소프트웨어를 테스트하는 방법 및 시스템에 관련되며, 보다 상세하게는 소프트웨어의 신뢰성을 확보하고 개발기간을 단축시키기 위하여 소프트웨어를 테스팅하는 과정을 표준화 및 자동화하는 방법에 관련된다The embodiments below relate to methods and systems for testing software that provide a plurality of software components, and more particularly to methods for standardizing and automating the process of testing software to ensure software reliability and to shorten development time. Related

최근 들어서, 소프트웨어는 탑재되는 기능이 많아짐에 따라 점차 복잡하게 구현되고 있으며, 이에 따른 테스트 실행 환경 및 테스트 케이스를 설계하는 데에도 많은 시간과 비용이 소요된다. 또한, 복잡하게 구현된 소프트웨어는 테스트 단계에서 많은 오류가 발생할 수 있다. In recent years, software is increasingly complicated as more functions are installed, and it is time-consuming and expensive to design test execution environments and test cases. In addition, complex implementations of the software can introduce many errors during the test phase.

이러한 문제를 해결하기 위하여, 종래에는 소프트웨어 플랫폼을 표준화하는 방법이 있다. 그러나, 이러한 방법은 소프트웨어의 최소한의 신뢰성을 보장시킬 수는 있지만, 철저한 테스트를 수행하고 테스트 기간을 단축시키는 데 한계가 있을 수 있다.In order to solve this problem, there is a method of standardizing a software platform. However, while this method can guarantee the minimum reliability of the software, there may be limitations in performing thorough testing and shortening the test period.

본 발명의 일 실시예에 의하면, 소프트웨어 컴포넌트 설계정보를 기초로 소프트웨어 컴포넌트의 유닛 테스트를 위한 환경을 자동으로 생성함으로써, 소프트웨어의 설계 변경 및 오류 수정을 반복적으로 수행하고 테스트하는 데 소요되는 노력 및 시간을 최소화할 수 있는 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스트 방법 및 시스템을 제공할 수 있다.According to an embodiment of the present invention, by automatically generating an environment for unit testing of software components based on software component design information, the effort and time required to repeatedly perform and test design changes and error corrections of software. It is possible to provide a software test method and system using software component design information that can be minimized.

또한, 본 발명의 실시예에 의하면, 오토모티브 오픈 시스템 아키텍쳐 (Automotive Open System Architecture, AUTOSAR) 설계정보로 구현된 소프트웨어 컴포넌트 설계정보를 활용하며, 인터페이스를 테스트하기 위한 인터페이스 테스트 케이스 및 기능 검증을 위한 블랙박스 테스트 케이스를 자동으로 생성할 수 있는 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스트 방법 및 시스템을 제공할 수 있다.In addition, according to an embodiment of the present invention, utilizing the software component design information implemented by the Automotive Open System Architecture (AUTOSAR) design information, an interface test case for testing the interface and a black box for functional verification A software test method and system using software component design information that can automatically generate test cases can be provided.

또한, 본 발명의 실시예에 의하면, 소프트웨어 컴포넌트의 신뢰성 및 재사용성이 높아지도록, TTCN-3(Testing and Test Control Notation version 3) 표준이 적용된 테스트 시스템을 생성할 수 있는 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스트 방법 및 시스템을 제공할 수 있다.In addition, according to an embodiment of the present invention, the software using the software component design information that can create a test system to which the TTCN-3 (Testing and Test Control Notation version 3) standard is applied to increase the reliability and reusability of the software component Test methods and systems can be provided.

본 발명의 일 실시예에 따른 소프트웨어 테스트 방법은 소프트웨어를 소프트웨어 컴포넌트 단위로 설계하는 소프트웨어 플랫폼에서 소프트웨어를 테스트하는 방법에 있어서, 상기 소프트웨어 컴포넌트 각각의 구성 및 구조를 나타내는 소프트웨어 컴포넌트 설계정보를 생성하는 단계와, 상기 생성된 소프트웨어 컴포넌트 설계정보를 기초로, 상기 소프트웨어 컴포넌트 내 런어블에 대응하는 입력 데이터 및 예상 출력 데이터를 포함하는 하나 이상의 테스트 케이스들을 생성하는 단계와, 상기 생성된 테스트 케이스들 중 적어도 하나를 이용하여, 테스트 대상의 소프트웨어 컴포넌트를 실행하는 단계와, 상기 실행 결과에 의해 출력되는 출력 데이터와, 상기 테스트 대상의 테스트 케이스에 대응하는 상기 예상 출력 데이터를 비교하여 상기 테스트의 성공 여부를 판단하는 단계를 포함한다.According to an aspect of the present invention, there is provided a method for testing software in a software platform for designing software in software component units, the method comprising: generating software component design information representing a configuration and a structure of each of the software components; Generating one or more test cases including input data and expected output data corresponding to a runable in the software component, based on the generated software component design information, and generating at least one of the generated test cases. Executing the software component of the test object, comparing the output data output by the execution result with the expected output data corresponding to the test case of the test object. And a step for judging whether or not the ball.

이때, 상기 소프트웨어 플랫폼은 오토모티브 오픈 시스템 아키텍쳐(Automotive Open System Architecture, AUTOSAR)를 기반으로 하는 플랫폼이 될 수 있다.In this case, the software platform may be a platform based on an Automotive Open System Architecture (AUTOSAR).

또한, 상기 테스트 케이스를 생성하는 단계는 상기 소프트웨어 컴포넌트 설계정보를 기초로, 상기 소프트웨어 컴포넌트의 인터페이스를 테스트하기 위한 인터페이스 테스트 케이스 및 상기 소프트웨어 컴포넌트의 기능 검증을 위한 블랙박스 테스트 케이스 중 적어도 하나 이상을 생성할 수 있다.The generating of the test case may include generating at least one of an interface test case for testing an interface of the software component and a black box test case for function verification of the software component based on the software component design information. can do.

또한, 상기 테스트 케이스 생성부는 상기 블랙박스 테스트 케이스를 생성하는 경우, 상기 소프트웨어 컴포넌트 설계정보로부터 소프트웨어 컴포넌트의 입출력 신호의 포트, 데이터 엘리먼트, 데이터 타입, 데이터 타입의 등가 클래스 중 적어도 하나 이상에 대한 정보를 추출하고, 경계 값 분석을 통해 블랙박스 테스트 케이스를 생성할 수 있다.In addition, when the black case test case is generated, the test case generator generates information on at least one or more of an equivalent class of an input / output signal port, a data element, a data type, and a data type of a software component from the software component design information. We can extract and generate black box test cases through boundary value analysis.

또한, 상기 테스트 케이스들 중 인터페이스 테스트 케이스를 이용하는 경우, 상기 테스트 대상의 소프트웨어 컴포넌트를 실행하는 단계는 상기 테스트 대상의 소프트웨어 컴포넌트 내 런어블에 대응하는 런어블 아이디를 획득하는 단계와, 상기 획득된 런어블 아이디의 런어블에 관련된 소스 코드를 실행하는 단계와, 상기 실행된 소스 코드에 의해서 인터페이스에 대한 잘못된 호출이 발생하였는 지를 체크하는 단계와, 상기 체크의 결과를 나타내는 데이터를 상기 출력 데이터로 출력하는 단계를 포함할 수 있다.In addition, when using an interface test case among the test cases, executing the software component of the test target may include obtaining a runable ID corresponding to a runable in the software component of the test target; Executing source code related to a runable of an enable ID, checking whether an invalid call to an interface has been caused by the executed source code, and outputting data representing the result of the check as the output data. It may include a step.

본 발명의 다른 실시예에 따른 소프트웨어 시스템은 소프트웨어를 소프트웨어 컴포넌트 단위로 설계하는 소프트웨어 플랫폼에 구현되는 소프트웨어를 테스트하는 시스템에 있어서, 상기 소프트웨어 컴포넌트 각각의 구성 및 구조를 나타내는 소프트웨어 컴포넌트 설계정보를 기초로, 테스트 케이스를 생성하기 위한 정보들을 추출하는 정보 추출부와, 상기 추출된 정보들을 기초로, 상기 소프트웨어 컴포넌트 각각에 대응하여 입력 데이터 및 예상 출력 데이터를 포함하는 하나 이상의 테스트 케이스들을 생성하는 테스트 케이스 생성부와, 상기 생성된 테스트 케이스들 중 적어도 하나를 이용하여 상기 소프트웨어 내 소프트웨어 컴포넌트 중 테스트 대상의 소프트웨어 컴포넌트를 실행하고, 상기 실행 결과에 의해 출력되는 출력 데이터를 기초로 상기 소프트웨어의 테스트 성공 여부를 판단하는 테스트 시스템을 포함한다.A software system according to another embodiment of the present invention is a system for testing software implemented in a software platform for designing software in software component units, based on software component design information representing a configuration and a structure of each of the software components. An information extracting unit for extracting information for generating a test case, and a test case generating unit generating one or more test cases including input data and expected output data corresponding to each of the software components based on the extracted information; And executing a software component of a test target among the software components in the software using at least one of the generated test cases, and based on the output data output by the execution result. The test system includes a test to determine the success or failure of the software.

이때, 상기 소프트웨어 플랫폼은 오토모티브 오픈 시스템 아키텍쳐(Automotive Open System Architecture, AUTOSAR)를 기반으로 하는 플랫폼이 될 수 있다.In this case, the software platform may be a platform based on an Automotive Open System Architecture (AUTOSAR).

또한, 상기 테스트 케이스 생성부는 상기 소프트웨어 컴포넌트 설계정보를 기초로, 상기 소프트웨어 컴포넌트의 인터페이스를 테스트하기 위한 인터페이스 테스트 케이스 및 상기 소프트웨어 컴포넌트의 기능 검증을 위한 블랙박스 테스트 케이스 중 적어도 하나 이상을 생성할 수 있다.The test case generator may generate at least one of an interface test case for testing an interface of the software component and a black box test case for verifying the function of the software component based on the software component design information. .

또한, 상기 테스트 케이스 생성부는 상기 소프트웨어 컴포넌트 설계정보로부터 소프트웨어 컴포넌트의 입출력 신호의 포트, 데이터 엘리먼트, 데이터 타입, 데이터 타입의 등가 클래스 중 적어도 하나 이상에 대한 정보를 추출하고, 경계 값 분석을 통해 블랙박스 테스트 케이스를 생성할 수 있다.The test case generation unit may extract information about at least one or more of a port, a data element, a data type, and an equivalent class of the data type of the input / output signal of the software component from the software component design information, and analyze the black box through boundary value analysis. You can create test cases.

또한, 상기 테스트 시스템은 상기 테스트 케이스들 중 인터페이스 테스트 케이스를 이용하는 경우, 상기 테스트 대상의 소프트웨어 컴포넌트의 런어블별로 관련된 소스 코드를 실행하고, 상기 실행된 소스 코드에 의해서 인터페이스에 대한 잘못된 호출이 발생하였는 지에 따라 상기 소프트웨어의 테스트 성공 여부를 판단할 수 있다.In addition, when the test system uses an interface test case among the test cases, the test system executes source code related to each runable of the software component of the test object, and an incorrect call to the interface is generated by the executed source code. It is possible to determine whether the test was successful.

본 발명의 실시예에 의하면, 소프트웨어 컴포턴트 설계정보를 기초로, 소프트웨어 컴포넌트의 유닛 테스트를 위한 테스트 케이스 및 테스트 시스템을 자동으로 생성함으로써, 즉시 테스트가 가능하며, 실제 환경에서 테스팅하는 데 필요한 시간 및 노력을 줄여줄 수 있다.According to an embodiment of the present invention, based on the software component design information, the test case and the test system for the unit test of the software component are automatically generated so that the test can be performed immediately, and the time required for testing in the real environment and You can save effort.

또한, 개발 초기 단계에서는, 하드웨어 및 베이직 소프트웨어의 설계가 완료되기 전에 쉽고 빠르게 테스트를 수행할 수 있는 환경을 제공할 수 있으며, 응용 소프트웨어 컴포넌트의 신뢰성 향상에 도움을 줄 수 있다. 또한, TTCN-3와 같은 테스트 표준을 적용함으로써 재사용성을 향상시킬 수 있다.In addition, in the early stages of development, it can provide an environment that can be quickly and easily tested before the design of hardware and basic software is completed, and can help improve the reliability of application software components. In addition, reusability can be improved by applying test standards such as TTCN-3.

도 1은 오토모티브 오픈 시스템 아키텍쳐의 구현환경에서 이용되는 소프트웨어 컴포넌트의 구성을 설명하기 위한 도면.
도 2는 본 발명의 일 실시에에 따른 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스팅 방법에서, 소프트웨어 컴포넌트 설계 명세정보를 생성하는 과정을 설명하기 위한 도면.
도 3은 본 발명의 일 실시예에 따른 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스팅 방법이 적용된 시스템을 설명하기 위한 도면.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스팅 방법의 동작과정을 설명하기 위한 개념도.
도 5는 본 발명의 일 실시예에 따른 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스팅 방법에서, 인터페이스 테스팅을 수행하는 과정을 설명하기 위한 도면.
1 is a view for explaining the configuration of a software component used in the implementation environment of the automotive open system architecture.
2 is a view for explaining a process of generating software component design specification information in a software testing method using software component design information according to an embodiment of the present invention.
3 is a diagram illustrating a system to which a software testing method using software component design information according to an embodiment of the present invention is applied.
4 is a conceptual diagram illustrating an operation process of a software testing method using software component design information according to an embodiment of the present invention.
5 is a view for explaining a process of performing interface testing in a software testing method using software component design information according to an embodiment of the present invention.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 아래에서 실시되는 소프트웨어 테스트 방법은 소프트웨어의 재사용 및 확장성을 위해 하드웨어 및 소프트웨어 간의 분리를 지원하고, XML과 같이 표준화된 문서의 연동을 지원하는 소프트웨어 플랫폼을 기반으로 구현될 수 있다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. The software test method described below may be implemented based on a software platform that supports separation between hardware and software for reusability and extensibility of software, and supports interworking of standardized documents such as XML.

이러한 소프트웨어 플랫폼은 소프트웨어를 응용 소프트웨어의 재사용성 향상을 위하여 소프트웨어 컴포넌트 단위로 설계될 수 있으며, 자동차 소프트웨어 표준 기술 중 하나인 오토모티브 오픈 시스템 아키텍쳐를 기반으로 하는 플랫폼이 될 수 있다.Such a software platform can be designed in software component units to improve the reusability of application software, and can be a platform based on the automotive open system architecture, which is one of automotive software standard technologies.

본 발명에서 이용되는 소프트웨어 컴포넌트는 도 1에 도시된 바와 같이 구성될 수 있다. The software component used in the present invention may be configured as shown in FIG.

도 1을 참조하면, 소프트웨어 컴포넌트(100)는 하나 이상의 런어블(101, 102)(Runnable)을 포함하며, 각 런어블(101, 102)은 포트(port) 또는 서비스 포트(service port) 등을 통해 다른 소프트웨어 컴포넌트들과 연동할 수 있다. 또한, 하나의 소프트웨어 컴포넌트 내에서도, 각 런어블(101, 102)은 인터 런어블 변수(Inter Runnable Variable)를 통해 데이터를 송수신할 수 있다. Referring to FIG. 1, the software component 100 includes one or more runables 101 and 102, each runable 101 and 102 including a port or a service port. This allows you to interact with other software components. In addition, even within one software component, each runable 101 or 102 may transmit and receive data through an interrunnable variable.

각 포트는 하나 이상의 데이터 엘리먼트(Data Element) 또는 오퍼레이션(operation)으로 구성될 수 있으며, 상기 오퍼레이션은 하나 이상의 아규먼트(argument)를 포함할 수 있다. 또한, 상기 하나 이상의 데이터 엘리먼트 및 상기 하나 이상의 아규먼트는 하나 이상의 등가 클래스(equivalence class)로 구분되는 데이터 타입을 가질 수 있다.Each port may consist of one or more data elements or operations, and the operations may include one or more arguments. In addition, the one or more data elements and the one or more arguments may have a data type that is divided into one or more equivalence classes.

상기와 같은 소프트웨어 컴포넌트들은 표준화된 XML 형태로 저장될 수 있다. 도 2는 본 발명의 일 실시예에 따른 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스트 방법에서, 소프트웨어 컴포넌트 설계 명세정보를 생성하는 과정을 설명한다.Such software components may be stored in a standardized XML format. 2 illustrates a process of generating software component design specification information in a software test method using software component design information according to an exemplary embodiment of the present invention.

도 2를 참조하면, 런타임 환경(Run-Time Environment, RTE)(220)에서 하나 이상의 소프트웨어 컴포넌트(200 및 210)의 구조적 및 기능적 결함을 발견하기 위한 유닛 테스트를 실시할 수 있다. 상기 유닛 테스트를 위하여, 하나 이상의 소프트웨어 컴포넌트(200 및 210)의 구성 및 구조를 표준화된 문서 형식의 소프트웨어 컴포넌트 설계정보(230)로 표현할 수 있다.Referring to FIG. 2, a unit test may be performed to detect structural and functional defects of one or more software components 200 and 210 in a run-time environment (RTE) 220. For the unit test, the configuration and structure of one or more software components 200 and 210 may be represented by software component design information 230 in a standardized document format.

한편, 소프트웨어 컴포넌트를 제외한 런타임 환경, 베이직 소프트 모듈의 설계는 설계 도구에 의해 자동으로 생성된다. 따라서, 호환성이 검증된 표준 설계 도구를 이용함으로써 소프트웨어 테스팅에 대한 최소한의 신뢰성을 보장할 수 있으며, 런타임 환경에 의해 소프트웨어 컴포턴트 통합의 신뢰성도 보장할 수 있다.On the other hand, the design of the runtime environment, the basic soft modules, except for the software components, is automatically generated by the design tool. Thus, the use of standard design tools with proven compatibility ensures minimal reliability for software testing, and also ensures the reliability of software component integration by the runtime environment.

그러나, 각 소프트웨어 컴포넌트의 입출력 인터페이스 및 기능에 대한 신뢰성은 유닛 테스트를 통해 검증할 필요가 있다. 이를 위하여, 상기 유닛 테스트는, 오토모티브 오픈 시스템 아키텍쳐를 위한 인터페이스 테스트, 소프트웨어 컴포넌트의 기능 검증을 위한 블랙박스 테스트, 및 내부 소스 코드의 구조에 대한 화이트 박스 테스트의 3가지로 구분될 수 있다. However, the reliability of the input and output interfaces and functions of each software component needs to be verified through unit tests. To this end, the unit test may be divided into three types: an interface test for an automotive open system architecture, a black box test for functional verification of a software component, and a white box test for an internal source code structure.

본 발명에서는 소프트웨어 컴포넌트의 설계 명세정보를 이용하는 인터페이스 테스트 및 블랙박스 테스트를 자동으로 수행하는 방법을 제안한다.The present invention proposes a method for automatically performing an interface test and a black box test using design specification information of a software component.

각 소프트웨어 컴포넌트(200, 210)는 런타임 환경(220)을 통해 다른 소프트웨어 컴포턴트 및 베이직 소프트웨어와 통신할 수 있으며, 필요에 따라 런타임 환경 API(221)를 호출할 수 있다. Each software component 200, 210 may communicate with other software components and basic software via the runtime environment 220, and may invoke the runtime environment API 221 as needed.

상기의 런타임 환경 API(221)에 대한 정보는 오토모티브 오픈 시스템 아키텍쳐의 설정 XML에 모두 저장되어 있으며, 이러한 정보를 기초로 런타임 환경 API(221)가 정확하게 사용되고 있는 지를 테스트할 수 있다. 이처럼 소프트웨어 컴포넌트 내부에 대하여 런타임 API 호출에 대한 테스트를 실시하는 것을 아래에서는, '인터페이스 테스트'라 칭한다. 또한, 소프트웨어 컴포넌트의 기능이 요구사항을 만족하는 지를 검증하는 것을 '블랙박스 테스트'라 칭한다.
The information about the runtime environment API 221 is all stored in the configuration XML of the automotive open system architecture, and based on this information, it is possible to test whether the runtime environment API 221 is correctly used. This test of the runtime API calls inside the software component is referred to as 'interface testing' below. In addition, verifying that the functionality of a software component satisfies the requirements is called a 'black box test'.

도 3은 본 발명의 일 실시예에 따른 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스팅 방법이 적용된 시스템을 설명하기 위한 도면이다.3 is a diagram illustrating a system to which a software testing method using software component design information is applied according to an embodiment of the present invention.

도 3을 참조하면, 상기 시스템은 소프트웨어 컴포넌트 설계정보(300)를 기초로, 테스트 자동화 장치(310)를 구동하고 소프트웨어 컴포넌트의 유닛 테스트를 위한 테스트 시스템(320) 및 테스트 케이스(330)를 자동으로 생성한다.Referring to FIG. 3, the system drives the test automation device 310 based on the software component design information 300 and automatically generates a test system 320 and a test case 330 for unit test of the software component. Create

소프트웨어 컴포넌트 설계정보(300)는 소프트웨어 컴포넌트 설계 명세정보(301) 및 소프트웨어 구현정보(302)를 포함할 수 있다.The software component design information 300 may include software component design specification information 301 and software implementation information 302.

이때, 소프트웨어 컴포넌트 설계 명세정보(301)는 소프트웨어 내 소프트웨어 컴포넌트들이 어떻게 구성되고 어떤 구조로 구현되었는 지를 나타내는 명세정보로서, 본 발명의 일 실시예에 따라 XML 파일에 저장될 수 있다.At this time, the software component design specification information 301 is specification information indicating how the software components in the software are configured and implemented in a structure, and may be stored in an XML file according to an embodiment of the present invention.

또한, 소프트웨어 구현정보(302)는 소프트웨어의 소스 코드가 코딩된 소스 파일로서, 예컨대, 임베디드 소스 파일이 될 수 있다.In addition, the software implementation information 302 may be a source file coded with source code of software, for example, an embedded source file.

테스트 자동화 장치(310)는 정보 추출부(311), 테스트 케이스 생성부(312), 및 테스트 시스템 생성부(313)를 포함할 수 있다.The test automation device 310 may include an information extractor 311, a test case generator 312, and a test system generator 313.

정보 추출부(311)는 오토모티브 오픈 시스템 아키텍쳐를 위한 XML 파서 및 소프트웨어 설계 정보를 추출하는 추출기를 포함할 수 있다. 정보 추출부(311)는 테스트 케이스를 자동으로 생성하기 위한 정보들을 추출하며, 특히 테스트 케이스로서 테스트할 대상의 소프트웨어 컴포넌트의 런어블, 포트, 인터 런어블 변수, 데이터 타입 및 상기 데이터 타입의 클래스 중 적어도 하나 이상에 관련된 정보들을 소프트웨어 컴포넌트 설계 명세정보(301)로부터 추출한다.The information extractor 311 may include an XML parser for an automotive open system architecture and an extractor for extracting software design information. The information extracting unit 311 extracts information for automatically generating a test case, and in particular, among runables, ports, inter-runable variables, data types, and classes of the data type of a software component to be tested as a test case. Information related to at least one or more is extracted from the software component design specification 301.

테스트 케이스 생성부(312)는 정보 추출부(311)에 의해 추출된 정보들을 기초로, 상기 소프트웨어 컴포넌트 각각에 대응하여 입력 데이터 및 예상 출력 데이터를 포함하는 하나 이상의 테스트 케이스들을 생성한다.The test case generator 312 generates one or more test cases including input data and expected output data corresponding to each of the software components based on the information extracted by the information extractor 311.

이때, 생성된 테스트 케이스들은 상기 소프트웨어 컴포넌트의 인터페이스를 테스트하기 위한 인터페이스 테스트 케이스(321) 및 상기 소프트웨어 컴포넌트의 기능 검증을 위한 블랙박스 테스트 케이스(322) 중 적어도 하나 이상이 될 수 있다.In this case, the generated test cases may be at least one of an interface test case 321 for testing the interface of the software component and a black box test case 322 for verifying the function of the software component.

이를 위하여, 테스트 케이스 생성부(312)는 인터페이스 테스트 케이스(321)를 생성하기 위한 인터페이스 처리부(312a) 및 블랙박스 테스트 케이스(322)를 생성하기 위한 블랙박스 처리부(312b)를 포함할 수 있다.To this end, the test case generator 312 may include an interface processor 312a for generating the interface test case 321 and a black box processor 312b for generating the black box test case 322.

인터페이스 처리부(312a)는 테스트할 대상의 소프트웨어 컴포넌트의 오토모티브 오픈 시스템 아키텍쳐의 입출력 인터페이스가 정확히 구현되었는 지를 테스트하기 위한 인터페이스 테스트 케이스(321)를 생성한다. 상기 입출력 인터페이스에는 클라이언트/서버 통신 인터페이스, 송신자/수신자 통신 인터페이스, 인터 러너블 변수, 제한영역(exclusive area) 중 하나 이상을 포함할 수 있다.The interface processor 312a generates an interface test case 321 for testing whether the input / output interface of the automotive open system architecture of the software component to be tested is correctly implemented. The input / output interface may include one or more of a client / server communication interface, a sender / receiver communication interface, an interrunable variable, and an exclusive area.

블랙박스 처리부(312b)는 정보 추출부(311)에 의해 추출된 정보들을 기초로, 상기 테스트할 대상의 소프트웨어 컴포넌트의 기능을 검증하기 위한 블랙박스 테스트 케이스(322)를 생성한다.The black box processor 312b generates a black box test case 322 for verifying a function of the software component to be tested, based on the information extracted by the information extractor 311.

이를 위하여, 블랙박스 처리부(312b)는 정보 추출부(311)에 의해 추출된 정보들을 기초로, 상기 소프트웨어 컴포넌트의 입출력 변수 및 상기 입출력 변수의 데이터 타입, 상기 데이터 타입의 각각에 대한 등가 클래스 중 적어도 하나 이상을 추출할 수 있다. 블랙박스 처리부(312b)는 상기 추출된 정보를 이용하여, 경계 값 분석(boundary value analysis test case) 테스트 케이스를 생성하고, 페어와이즈(pairwise testing) 테스트 케이스와 같은 다양한 블랙박스 테스트 케이스 알고리즘을 적용하여 블랙박스 테스트 케이스를 생성할 수 있다.To this end, the black box processing unit 312b is based on the information extracted by the information extracting unit 311, and includes at least one of an input / output variable of the software component, a data type of the input / output variable, and an equivalent class for each of the data types. One or more can be extracted. The black box processing unit 312b generates a boundary value analysis test case test case using the extracted information, and applies various black box test case algorithms such as a pairwise testing test case. You can create a black box test case.

나아가, 블랙박스 처리부(312b)는 상기 생성된 블랙박스 테스트 케이스 각각에 대응하여, 입력정보, 예상 출력값, 마감시간 및 부가 테스트 정보를 설정할 수 있다.In addition, the black box processing unit 312b may set input information, an expected output value, a deadline, and additional test information corresponding to each of the generated black box test cases.

테스트 케이스(320)는 상기 소프트웨어 컴포넌트의 인터페이스를 테스트하기 위한 인터페이스 테스트 케이스(321) 및 상기 소프트웨어 컴포넌트의 기능 검증을 위한 블랙박스 테스트 케이스(322)를 포함할 수 있다.The test case 320 may include an interface test case 321 for testing the interface of the software component and a black box test case 322 for verifying the function of the software component.

테스트 시스템 생성부(313)는 소프트웨어 컴포넌트 설계 명세정보(301)로부터 추출된 정보를 기초로, 테스터(331) 및 타겟 시스템 처리부(332)를 포함하는 테스트 시스템을 생성할 수 있다.The test system generator 313 may generate a test system including the tester 331 and the target system processor 332 based on the information extracted from the software component design specification 301.

상기 테스트 시스템 내 테스터(331) 및 타겟 시스템 처리부(332)는 UDP/IP 네트워크 통신을 이용하여 테스트 입력과 실행 결과를 주고받을 수 있다.The tester 331 and the target system processor 332 in the test system may exchange test inputs and execution results using UDP / IP network communication.

테스터(331)는 테스트 컴포넌트, 코덱 및 통신 인터페이스를 포함하며, 테스트 대상의 테스트 입력을 타겟 시스템 처리부(332)로 전달하고, 타겟 시스템 처리부(332)로부터 실행 결과를 수신한다. 그리고, 테스터(331)는 상기 수신된 실행 결과와 미리 설정된 예상 결과값을 비교하여, 성공 여부를 판단할 수 있다.The tester 331 includes a test component, a codec, and a communication interface, transmits a test input of a test target to the target system processor 332, and receives an execution result from the target system processor 332. In addition, the tester 331 may compare the received execution result with a preset expected result value and determine success.

이를 위하여, 테스터(331)는 TTCN-3의 함수, 알트스탭(Altstep), 및 테스트케이스에 의해 구현된 모듈을 포함할 수 있다. To this end, the tester 331 may include a module implemented by a function of the TTCN-3, an Altstep, and a test case.

타겟 시스템 처리부(332)는 오토모티브 오픈 시스템 아키텍쳐 플랫폼을 기반으로 하는 응용 소프트웨어 컴포넌트의 실행환경을 제공한다. 즉, 타겟 시스템 처리부(332)는 테스터(331)로부터 입력되는 입력 정보를 기초로, 상기 입력 정보에 대응하는 소프트웨어 컴포넌트를 실행하고, 상기 실행 결과를 나타내는 값을 테스터(331)로 전달한다.The target system processor 332 provides an execution environment of application software components based on the automotive open system architecture platform. That is, the target system processor 332 executes a software component corresponding to the input information based on the input information input from the tester 331, and transmits a value indicating the execution result to the tester 331.

즉, 타겟 시스템 처리부(332)는 소프트웨어 컴포넌트의 실행을 위한 시뮬레이션 환경과 테스트 입력을 수신하고, 결과 값을 송신할 수 있는 인터페이스를 제공한다. 타겟 시스템 처리부(332)는 테스터(331)와 UDP/IP 통신을 통해 테스트 입력을 수신하고, 상기 실행 결과를 송신할 수 있다. 이러한 송수신을 위하여, 타겟 시스템 처리부(332)는 테스터(331)와 동일한 테스트 ID 모듈을 생성하고, 각 테스트 ID 모듈을 소프트웨어 컴포넌트의 입출력 포트에 연결시키는 SUT 맵핑 모듈을 제공할 수 있다. 또한, 타겟 시스템 처리부(332)는 소프트웨어 컴포넌트의 실행에 필요한 런타임 환경 및 운영체제 환경을 제공하는 시뮬레이션 모듈을 제공할 수 있다.
That is, the target system processor 332 provides an interface for receiving a simulation environment and test input for executing a software component and transmitting a result value. The target system processor 332 may receive a test input through the UDP / IP communication with the tester 331 and transmit the execution result. For the transmission and reception, the target system processing unit 332 may provide a SUT mapping module that generates the same test ID module as the tester 331 and connects each test ID module to the input / output port of the software component. In addition, the target system processor 332 may provide a simulation module that provides a runtime environment and an operating system environment required for the execution of the software component.

도 4는 본 발명의 일 실시예에 따른 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스팅 방법의 동작과정을 설명하기 위한 개념도이다.4 is a conceptual diagram illustrating an operation process of a software testing method using software component design information according to an embodiment of the present invention.

400 단계에서, 소프트웨어 컴포넌트 설계정보는 오토모티브 오픈 시스템 아키텍쳐를 기반으로 설계된 소프트웨어 컴포넌트의 구성 및 구조를 표현하는 정보로 생성되며, 본 발명의 일 실시예에 따라 XML 형태로 저장될 수 있다.In step 400, the software component design information is generated as information representing the configuration and structure of the software component designed based on the automotive open system architecture, and may be stored in an XML form according to an embodiment of the present invention.

410 단계는 상기 소프트웨어 컴포넌트 설계정보를 기초로, 소프트웨어 컴포넌트를 구현하는 절차가 코딩된 소스 코드를 생성한다. 그리고, 410 단계는 상기 소스 코드를 테스트하기 위한 테스터 및 타겟 시스템 처리부를 생성한다.In step 410, a source code coded for a procedure of implementing a software component is generated based on the software component design information. In operation 410, a tester and a target system processor for testing the source code are generated.

420 단계는 상기 저장된 소프트웨어 컴포넌트 설계정보를 기초로, 상기 소프트웨어 컴포넌트가 코딩된 소스 코드를 자동으로 테스트하기 위한 테스트 케이스를 생성한다.Step 420 generates a test case for automatically testing the source code coded by the software component, based on the stored software component design information.

이때, 상기 생성된 테스트 케이스는, 소프트웨어 컴포넌트의 입출력 기능이 정상적으로 구현되었는 지를 테스트하는 인터페이스 테스트 케이스 및, 소스 코드의 기능을 검증하는 블랙박스 테스트 케이스를 포함할 수 있다.In this case, the generated test case may include an interface test case for testing whether the input / output function of the software component is normally implemented and a black box test case for verifying the function of the source code.

상세하게는, 인터페이스 테스트 케이스는 각 런어블의 입력 및 출력이 정상적으로 동작하는 지를 테스트하기 위하여, 테스트 대상의 런어블의 입력 데이터 및 출력 데이터를 상기 테스터로 전달한다.In detail, the interface test case transfers the input data and the output data of the runable of the test target to the tester to test whether the input and output of each runable are normally operated.

블랙박스 테스트 케이스는 소스 코드의 기능을 검증하기 위하여 특정 입력 데이터, 상기 특정 입력 데이터에 대응하여 예상되는 출력 데이터, 및 미리 설정된 기준 실행시간을 상기 테스터로 전달한다.The black box test case delivers specific input data, output data expected corresponding to the specific input data, and a preset reference execution time to the tester to verify the function of the source code.

430 단계에서, 상기 테스터는 인터페이스 테스트 케이스 또는 블랙박스 테스트 케이스 중 하나로부터 전달되는 입력 데이터를 타겟 시스템 처리부에 입력한다. In step 430, the tester inputs input data transferred from one of the interface test case or the black box test case to the target system processor.

440 단계에서, 상기 타겟 시스템 처리부는 상기 입력된 입력 데이터를 기초로, 상기 소스 코드를 실행하고, 상기 실행에 따른 결과 데이터를 상기 테스터로 전달한다.In operation 440, the target system processor executes the source code based on the input data and delivers the result data according to the execution to the tester.

450 단계에서, 상기 테스터는 상기 440 단계로부터 전달된 결과 데이터를 기초로, 상기 전달된 결과 데이터와, 미리 설정된 예상 데이터간의 비교를 통해 테스트의 성공 여부를 판단할 수 있다. 또한, 450 단계에서, 상기 테스터는 상기 블랙박스 테스트 케이스로부터 전달된 상기 기준 실행시간이 있는 경우, 상기 실행에 소요된 시간이 상기 기준 실행시간을 미달하는 지에 따라 상기 테스트의 성공여부를 결정할 수도 있다.
In operation 450, the tester may determine whether the test is successful based on the comparison between the transmitted result data and preset expected data based on the result data transmitted from the step 440. In operation 450, the tester may determine whether the test is successful according to whether the execution time is less than the reference execution time when the reference execution time is transmitted from the black box test case. .

도 5는 본 발명의 일 실시예에 따른 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스팅 방법에서, 인터페이스 테스팅을 수행하는 과정을 설명하기 위한 도면이다.FIG. 5 is a diagram illustrating a process of performing interface testing in a software testing method using software component design information according to an embodiment of the present invention.

도 5를 참조하면, 500 단계는 소프트웨어 컴포넌트 설계 명세정보로부터 입출력 인터페이스에 관련된 정보를 추출한다. 이때, 입출력 인터페이스에 관련된 정보는 런어블, 포트, 인터페이스, 데이터 엘리먼트 중 적어도 하나 이상이 될 수 있다. Referring to FIG. 5, step 500 extracts information related to an input / output interface from software component design specification information. In this case, the information related to the input / output interface may be at least one of a runable, a port, an interface, and a data element.

510 단계는 510 단계에서 추출된 상기 입출력 인터페이스에 관련된 정보를 기초로, 각 런어블에 대응하는 인터페이스 테스트 케이스를 생성한다.In operation 510, an interface test case corresponding to each runable is generated based on the information related to the input / output interface extracted in operation 510.

또한, 510 단계는 TTCN-3에서 실행 가능한 테스트 케이스 모듈을 생성할 수 있으며, 각 런어블의 입출력 인터페이스를 테스트하기 위한 소프트웨어 시뮬레이션 모듈을 생성할 수 있다.In operation 510, a test case module executable in the TTCN-3 may be generated, and a software simulation module for testing an input / output interface of each runable may be generated.

520 단계에서, 테스터는 대상 시스템 처리부로 테스트 대상의 런어블 아이디를 전달한다. 즉, 테스트는 런어블 단위로 수행될 수 있으며, 런어블 내부에서 오토모티브 오픈 시스템 아키텍쳐의 입출력 인터페이스의 호출이 발생할 수 있다.In operation 520, the tester delivers the runable ID of the test target to the target system processor. That is, the test may be performed in a runable unit, and the call of the input / output interface of the automotive open system architecture may occur inside the runable.

530 단계는 소스코드를 기초로, 상기 획득된 런어블 아이디에 대응하는 런어블을 수행한다. In operation 530, a runable corresponding to the obtained runable ID is performed based on the source code.

540 단계는 상기 530 단계의 런어블 수행에서, 호출되는 인터페이스를 기록하고, 상기 런어블 수행에서 인터페이스에 대한 잘못된 호출이 발생하였는 지를 체크한다. 여기서, 인터페이스에 대한 잘못된 호출은, 지정된 인터페이스가 호출되지 않았거나 또는 존재하지 않는 인터페이스가 호출되었는 지 등에 따라 잘못되었음이 판단될 수 있다.Step 540 records the interface to be called in the runable execution of step 530, and checks whether a wrong call to the interface has occurred in the runable execution. Here, the wrong call to the interface may be determined to be wrong depending on whether the designated interface is not called or a non-existent interface is called.

550 단계는 상기 540 단계의 체크의 결과를 나타내는 데이터를 테스터로 전달한다.Step 550 delivers data indicating the result of the check of step 540 to the tester.

이후, 테스터는 550 단계에 의해 전달된 출력 데이터를 기초로, 상기 테스트의 성공 여부를 판단할 수 있다. 즉, 테스터는 테스트 케이스에서의 예상 출력 데이터와, 상기 전달된 출력 데이터를 비교하고, 상기 비교 결과에 따라 상기 테스트의 성공 여부를 결정할 수 있다.Thereafter, the tester may determine whether the test is successful based on the output data transmitted in operation 550. That is, the tester may compare the expected output data in the test case with the delivered output data, and determine whether the test is successful according to the comparison result.

다시 말해서, 소프트웨어 컴포넌트는 통신 인터페이스를 통해 외부와 통신할 수 있으므로, 소프트웨어 인터페이스 테스트를 통해, 소프트웨어 컴포넌트가 설계 명세에 충실하게 구현되었는지 검증할 수 있다.In other words, the software component can communicate with the outside through the communication interface, so that the software interface test can verify that the software component is faithfully implemented in the design specification.

소프트웨어 컴포넌트 설계정보를 이용하면, 소프트웨어 인터페이스 테스트를 위한 테스트 시스템과 테스트 케이스를 자동으로 생성할 수 있다. 테스트 대상의 소프트웨어 컴포넌트의 각 런어블에 해당하는 테스트 아이디와 테스트 케이스를 생성하고, 소프트웨어 컴포넌트의 인터페이스를 검증할 수 있는 시뮬레이션 모듈을 생성할 수 있다.Software component design information can be used to automatically generate test systems and test cases for software interface testing. A test ID and a test case corresponding to each runable of the software component to be tested may be generated, and a simulation module for verifying an interface of the software component may be generated.

주요, RTE API는 소프트웨어 컴포넌트 사이의 송신자-수신자 통신방식에 사용되는 Rte_Write, Rte_Read, 클라이언트-서버 통신 방식에 사용되는 Rte_Call, 런어블 간의 통신에 사용되는 Rte_IrvRead, Rte_IrvWrite, 및 Exclusive Area에 사용되는 Rte_Enter, Rte_Exit 등의 API를 포함할 수 있다.Mainly, the RTE APIs include Rte_Write, Rte_Read for sender-receiver communication between software components, Rte_Call for client-server communication, Rte_IrvRead, Rte_IrvWrite for communication between runables, and Rte_Enter for exclusive area. It can include APIs such as Rte_Exit.

대부분의 소프트웨어 컴포넌트는 런어블로 구성되며, RTE API의 호출은 런어블 내부에서 이루어진다. 따라서, 본 발명에서는 오토모티브 오픈 시스템 아키텍쳐의 인터페이스 테스트도 런어블 단위로 수행하였으며, 런어블의 실행 중 호출된 RTE API를 분석하여 검증할 수 있다. 이와 같은 검증은 소프트웨어 컴포넌트 내부의 코드 삽입없이도, 시뮬레이션 모듈에서 수행할 수 있다.Most software components consist of runables, and calls to the RTE APIs are made inside the runables. Therefore, in the present invention, the interface test of the automotive open system architecture was also performed in the runable unit, and the RTE API called during the execution of the runable can be analyzed and verified. This verification can be performed in the simulation module without having to insert code inside the software component.

즉, 테스트 시스템은 테스트 대상의 소프트웨어 컴포넌트에 포함된 런어블을 차례로 실행할 수 있다. 또한, 테스트 시스템은 런어블의 실행 전의 함수에서 RTE API의 호출 여부를 판단할 수 있는 플래그를 해제하고(Clear_RTEAPI()), 런어블 실행 중 RTE API가 호출될 때 해당 플래그를 설정한다(Set_RTEAPI()). 런어블의 실행이 완료되고 나서 호출된 API를 확인하여 모든 호출이 정확히 실행되었는지를 검증할 수 있다(Check_RTEAPI()). 시뮬레이션 모듈은 AUTOSAR 인터페이스를 테스트할 수 있는 환경을 고려하여 소프트웨어 컴포넌트 설계 명세정보로부터 생성될 수 있다.That is, the test system may sequentially execute the runables included in the software component under test. In addition, the test system releases a flag for determining whether the RTE API is called from a function before executing the runable (Clear_RTEAPI ()), and sets the corresponding flag when the RTE API is called during the runable execution (Set_RTEAPI ( )). After the runable has finished executing, you can check the called API to verify that all calls were executed correctly (Check_RTEAPI ()). Simulation modules can be generated from software component design specifications in consideration of the environment in which the AUTOSAR interface can be tested.

테스트 시스템은 소프트웨어 컴포넌트에 포함된 각 런어블마다 테스트 아이디와 테스트케이스를 생성한다. 런어블에 해당하는 테스트 아이디를 타겟 시스템으로 송신하면, 타겟 시스템은 해당 런어블의 실행 중 호출된 RTE API를 확인하여 합격 여부를 TTCN-3 테스터 측으로 회신하고, 모든 RTE API가 정상적으로 호출되었으며 성공으로 처리할 수 있다.
The test system generates a test ID and a test case for each runable included in the software component. When the test ID corresponding to the runable is sent to the target system, the target system checks the RTE API called during the execution of the runable and returns a pass / fail to the TTCN-3 tester side. Can be processed.

도 6은 본 발명의 일 실시예에 따른 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스팅 방법에서의 블랙박스 테스팅 과정을 설명하기 위한 도면이다.6 is a diagram illustrating a black box testing process in a software testing method using software component design information according to an embodiment of the present invention.

여기서, 블랙 박스 테스트는 소프트웨어 컴포넌트의 외부 인터페이스에 대한 검증을 완료 후 소프트웨어 컴포넌트의 기능 검증을 위하여 실행될 수 있으며, 요구 사항 검증을 위한 다양한 테스트 케이스 설계기법이 적용될 수 있다.Here, the black box test may be executed to verify the function of the software component after completing verification of the external interface of the software component, and various test case design techniques for verifying requirements may be applied.

도 6을 참조하면, 600 단계는 소프트웨어 컴포넌트 설계 명세정보(AUTOSAR SEC XML)로부터 블랙박스 테스트에 관련된 정보를 추출한다.Referring to FIG. 6, step 600 extracts information related to a black box test from software component design specification information (AUTOSAR SEC XML).

이때, 블랙박스 테스트에 관련된 정보는 런어블, 포트, 인터페이스, 데이터 엘리먼트, 데이터 타입, 데이터 타입의 등가 클래스 중 적어도 하나 이상이 될 수 있다.In this case, the information related to the black box test may be at least one of a runable, a port, an interface, a data element, a data type, and an equivalent class of the data type.

610 단계는 상기 600 단계에서 추출된 정보를 기초로, 테스트 입력 아이디, 출력 아이디를 포함하는 블랙박스 테스트 케이스(Test cases)를 생성한다.In step 610, a black box test case including a test input ID and an output ID is generated based on the information extracted in step 600.

620 단계는 상기 생성된 블랙박스 테스트 케이스 내 포함된 테스트 입력 아이디 각각의 데이터 타입 및 등가 클래스를 이용하여, 경계 값 분석 테스트 케이스(boundary value analysis test cases)를 생성한다.In step 620, a boundary value analysis test cases are generated by using a data type and an equivalent class of each test input ID included in the generated black box test case.

여기서, 620 단계는 각 등가 클래스의 경계 값을 테스트하며, 테스트 입력 및 등가 클래스의 조합을 기초로 경계 값 분석 테스트 케이스를 생성할 수 있다.Here, in operation 620, the boundary value of each equivalent class may be tested and a boundary value analysis test case may be generated based on a combination of a test input and an equivalent class.

630 단계는 상기 생성된 블랙박스 테스트 케이스 내 포함된 테스트 입력 아이디 각각의 등가 클래스를 조합하여, 콤비네이션 테스트 케이스(Combinational Test cases)를 생성한다.In operation 630, a combination test case is generated by combining equivalent classes of each test input ID included in the generated black box test case.

이때, 630 단계는 페어와이즈(pairwise)와 같은 블랙박스 테스트 케이스 생성 알고리즘을 적용할 수 있다.In this case, step 630 may apply a black box test case generation algorithm such as pairwise.

앞서 생성된 블랙박스 테스트 케이스는 예상 결과 데이터가 포함될 수 있으며, 필요에 따라 기준 실행시간과 같은 부가 정보가 삽입될 수 있다. 또한, 상기 블랙박스 테스트 케이스는 TTCN-3에서 실행 가능한 테스트 케이스 모듈로 생성될 수 있고, 다양한 테스트 케이스 관리를 위하여 XML 파일로 저장될 수 있다.
The previously generated black box test case may include expected result data, and additional information such as a reference execution time may be inserted as needed. In addition, the black box test case may be generated as a test case module executable in TTCN-3, and may be stored as an XML file for various test case management.

본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. Methods according to an embodiment of the present invention can be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.

Claims (10)

소프트웨어를 소프트웨어 컴포넌트 단위로 설계하는 소프트웨어 플랫폼에서 소프트웨어를 테스트하는 방법에 있어서,
소프트웨어 컴포넌트 각각의 구성 및 구조를 나타내는 소프트웨어 컴포넌트 설계정보를 기초로, 테스트 케이스를 생성하기 위한 정보를 추출하는 단계;
상기 추출된 정보를 기초로, 상기 소프트웨어 컴포넌트 각각에 대응하여 입력 데이터 및 예상 출력 데이터를 포함하는 상기 소프트웨어 컴포넌트의 인터페이스를 테스트하기 위한 인터페이스 테스트 케이스 또는 상기 소프트웨어 컴포넌트의 기능 검증을 위한 블랙박스 테스트 케이스를 생성하는 단계; 및
상기 생성된 인터페이스 테스트 케이스를 이용하여 테스트의 대상이 되는 소프트웨어 컴포넌트의 런어블별로 관련된 소스 코드를 실행하고, 상기 실행된 소스 코드에 의하여 인터페이스에 대한 잘못된 호출이 발생하였는지에 따라 상기 소프트웨어의 테스트 성공 여부를 판단하는 단계
를 포함하는 소프트웨어 테스트 방법.
In a method for testing software on a software platform that designs software in software components,
Extracting information for generating a test case based on software component design information representing a configuration and a structure of each software component;
Based on the extracted information, an interface test case for testing an interface of the software component including input data and expected output data corresponding to each of the software components, or a black box test case for function verification of the software component Generating; And
Using the generated interface test case, the source code related to each runable of the software component to be tested is executed, and whether the test success of the software is determined according to whether the wrong source call is generated by the executed source code. Judgment Step
Software testing method comprising a.
제1항에 있어서,
상기 소프트웨어 플랫폼은
오토모티브 오픈 시스템 아키텍쳐(Automotive Open System Architecture, AUTOSAR)를 기반으로 하는 플랫폼인
소프트웨어 테스트 방법.
The method of claim 1,
The software platform
A platform based on the Automotive Open System Architecture (AUTOSAR)
Software test method.
삭제delete 제1항에 있어서,
상기 소프트웨어 컴포넌트의 인터페이스를 테스트하기 위한 인터페이스 테스트 케이스 및 상기 소프트웨어 컴포넌트의 기능 검증을 위한 블랙박스 테스트 케이스 중 적어도 하나 이상을 생성하는 단계는
상기 블랙박스 테스트 케이스를 생성하는 경우,
상기 소프트웨어 컴포넌트 설계정보로부터 소프트웨어 컴포넌트의 입출력 신호의 포트, 데이터 엘리먼트, 데이터 타입, 데이터 타입의 등가 클래스 중 적어도 하나 이상에 대한 정보를 추출하고, 경계 값 분석을 통해 블랙박스 테스트 케이스를 생성하는
소프트웨어 테스트 방법.
The method of claim 1,
Generating at least one of an interface test case for testing an interface of the software component and a black box test case for functional verification of the software component
When creating the black box test case,
Extracting information on at least one or more of an equivalent class of an input / output signal port, data element, data type, and data type of the software component from the software component design information, and generating a black box test case through boundary value analysis
Software test method.
삭제delete 소프트웨어를 소프트웨어 컴포넌트 단위로 설계하는 소프트웨어 플랫폼에 구현되는 소프트웨어 테스트 시스템에 있어서,
소프트웨어 컴포넌트 각각의 구성 및 구조를 나타내는 소프트웨어 컴포넌트 설계정보를 기초로, 테스트 케이스를 생성하기 위한 정보를 추출하는 정보 추출부;
상기 추출된 정보를 기초로, 상기 소프트웨어 컴포넌트 각각에 대응하여 입력 데이터 및 예상 출력 데이터를 포함하는 상기 소프트웨어 컴포넌트의 인터페이스를 테스트하기 위한 인터페이스 테스트 케이스 또는 상기 소프트웨어 컴포넌트의 기능 검증을 위한 블랙박스 테스트 케이스를 생성하는 테스트 케이스 생성부; 및
상기 생성된 인터페이스 테스트 케이스를 이용하여 테스트의 대상이 되는 소프트웨어 컴포넌트의 런어블별로 관련된 소스 코드를 실행하고, 상기 실행된 소스 코드에 의하여 인터페이스에 대한 잘못된 호출이 발생하였는지에 따라 상기 소프트웨어의 테스트 성공 여부를 판단하는 테스트 시스템
을 포함하는 소프트웨어 테스트 시스템.
A software test system implemented in a software platform for designing software in software component units,
An information extraction unit for extracting information for generating a test case based on software component design information representing a configuration and a structure of each software component;
Based on the extracted information, an interface test case for testing an interface of the software component including input data and expected output data corresponding to each of the software components, or a black box test case for function verification of the software component Generating a test case generator; And
Using the generated interface test case, the source code related to each runable of the software component to be tested is executed, and whether the test success of the software is determined according to whether the wrong source call is generated by the executed source code. Judging test system
Software testing system comprising a.
제6항에 있어서,
상기 소프트웨어 플랫폼은
오토모티브 오픈 시스템 아키텍쳐(Automotive Open System Architecture, AUTOSAR)를 기반으로 하는 플랫폼인
소프트웨어 테스트 시스템.
The method of claim 6,
The software platform
A platform based on the Automotive Open System Architecture (AUTOSAR)
Software testing system.
삭제delete 제6항에 있어서,
상기 테스트 케이스 생성부는
상기 소프트웨어 컴포넌트 설계정보로부터 소프트웨어 컴포넌트의 입출력 신호의 포트, 데이터 엘리먼트, 데이터 타입, 데이터 타입의 등가 클래스 중 적어도 하나 이상에 대한 정보를 추출하고, 경계 값 분석을 통해 블랙박스 테스트 케이스를 생성하는
소프트웨어 테스트 시스템.
The method of claim 6,
The test case generation unit
Extracting information on at least one or more of an equivalent class of an input / output signal port, data element, data type, and data type of the software component from the software component design information, and generating a black box test case through boundary value analysis
Software testing system.
삭제delete
KR1020100108551A 2010-11-03 2010-11-03 Software testing method and system using software component design information KR101134735B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100108551A KR101134735B1 (en) 2010-11-03 2010-11-03 Software testing method and system using software component design information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100108551A KR101134735B1 (en) 2010-11-03 2010-11-03 Software testing method and system using software component design information

Publications (1)

Publication Number Publication Date
KR101134735B1 true KR101134735B1 (en) 2012-04-13

Family

ID=46143453

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100108551A KR101134735B1 (en) 2010-11-03 2010-11-03 Software testing method and system using software component design information

Country Status (1)

Country Link
KR (1) KR101134735B1 (en)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101414720B1 (en) 2013-05-31 2014-07-04 한국철도기술연구원 Functional safety testing device for train control system software and the method thereof
KR101419646B1 (en) 2013-02-19 2014-07-15 강원대학교산학협력단 Method and appratus for automatic generation of expected results for testing composite component
CN104008051A (en) * 2014-05-16 2014-08-27 南京邮电大学 Method for positioning software defects by redundancy removing and optimizing of frequency spectrum information
CN105302718A (en) * 2015-10-26 2016-02-03 浪潮电子信息产业股份有限公司 Reusable software-oriented test model design method
CN105760295A (en) * 2015-12-28 2016-07-13 天津大学 Multi-defect positioning method based on search algorithm
DE102017212612A1 (en) 2017-07-21 2019-01-24 Ford Global Technologies, Llc Method for automatically generating tests for the software of a vehicle
KR20190110314A (en) * 2018-03-20 2019-09-30 주식회사 만도 Method for testing AT based on AUTOSAR standard
KR20200113831A (en) * 2019-03-26 2020-10-07 한국전자통신연구원 Apparatus and method for developing component
CN112711532A (en) * 2020-12-29 2021-04-27 中国航空工业集团公司西安飞机设计研究所 Automatic test method for undercarriage partition software
WO2021107183A1 (en) * 2019-11-27 2021-06-03 주식회사 알티스트 Autosar-based software design method and device for performing same
CN113688037A (en) * 2021-08-19 2021-11-23 上海核工程研究设计院有限公司 Nuclear power plant instrument control system software configuration debugging and packaging integrated method
KR102470683B1 (en) * 2021-11-25 2022-11-25 숭실대학교 산학협력단 Security design flaw detection method based on unit test case, recording medium and device for performing the same
KR20240009773A (en) 2022-07-14 2024-01-23 국민대학교산학협력단 Port virtualization device and method for simulation of automotive software platform
KR20240009766A (en) 2022-07-14 2024-01-23 국민대학교산학협력단 Network virtualization apparatus and method for simulation of automotive software platform
KR20240009783A (en) 2022-07-14 2024-01-23 국민대학교산학협력단 Code parsing apparatus and method for simulation of automotive software platform
KR20240009757A (en) 2022-07-14 2024-01-23 국민대학교산학협력단 Windows-based automotive software simulation device and method through autosar stack virtualization
KR20240009779A (en) 2022-07-14 2024-01-23 국민대학교산학협력단 Device driver virtualization apparatus and method for simulation of automotive software platform
KR20240009786A (en) 2022-07-14 2024-01-23 국민대학교산학협력단 Operating system virtualization device and method for simulation of automotive software platform

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"AUTOSAR 응용 소프트웨어 컴포넌트의 테스트 방법", 2009년 한국자동차공학회 학술대회 및 전시회, page(s): 1861~1866 (2009.11.) *
"TTCN-3을 이용한 차량 소프트웨어 컴포넌트의 테스팅 자동화 방법", 정보과학회논문지 : 컴퓨팅의 실제 및 레터 제16권 제5호, page(s): 513-633 (2010.5.) *
"AUTOSAR 응용 소프트웨어 컴포넌트의 테스트 방법", 2009년 한국자동차공학회 학술대회 및 전시회, page(s): 1861~1866 (2009.11.)*
"TTCN-3을 이용한 차량 소프트웨어 컴포넌트의 테스팅 자동화 방법", 정보과학회논문지 : 컴퓨팅의 실제 및 레터 제16권 제5호, page(s): 513-633 (2010.5.)*

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101419646B1 (en) 2013-02-19 2014-07-15 강원대학교산학협력단 Method and appratus for automatic generation of expected results for testing composite component
KR101414720B1 (en) 2013-05-31 2014-07-04 한국철도기술연구원 Functional safety testing device for train control system software and the method thereof
CN104008051A (en) * 2014-05-16 2014-08-27 南京邮电大学 Method for positioning software defects by redundancy removing and optimizing of frequency spectrum information
CN105302718A (en) * 2015-10-26 2016-02-03 浪潮电子信息产业股份有限公司 Reusable software-oriented test model design method
CN105760295A (en) * 2015-12-28 2016-07-13 天津大学 Multi-defect positioning method based on search algorithm
DE102017212612A1 (en) 2017-07-21 2019-01-24 Ford Global Technologies, Llc Method for automatically generating tests for the software of a vehicle
KR20190110314A (en) * 2018-03-20 2019-09-30 주식회사 만도 Method for testing AT based on AUTOSAR standard
KR102553472B1 (en) 2018-03-20 2023-07-10 에이치엘만도 주식회사 Method for testing AT based on AUTOSAR standard
KR20200113831A (en) * 2019-03-26 2020-10-07 한국전자통신연구원 Apparatus and method for developing component
KR102354808B1 (en) * 2019-03-26 2022-01-25 한국전자통신연구원 Apparatus and method for developing component
WO2021107183A1 (en) * 2019-11-27 2021-06-03 주식회사 알티스트 Autosar-based software design method and device for performing same
CN112711532A (en) * 2020-12-29 2021-04-27 中国航空工业集团公司西安飞机设计研究所 Automatic test method for undercarriage partition software
CN112711532B (en) * 2020-12-29 2023-10-20 中国航空工业集团公司西安飞机设计研究所 Automatic testing method for undercarriage partition software
CN113688037A (en) * 2021-08-19 2021-11-23 上海核工程研究设计院有限公司 Nuclear power plant instrument control system software configuration debugging and packaging integrated method
KR102470683B1 (en) * 2021-11-25 2022-11-25 숭실대학교 산학협력단 Security design flaw detection method based on unit test case, recording medium and device for performing the same
KR20240009773A (en) 2022-07-14 2024-01-23 국민대학교산학협력단 Port virtualization device and method for simulation of automotive software platform
KR20240009766A (en) 2022-07-14 2024-01-23 국민대학교산학협력단 Network virtualization apparatus and method for simulation of automotive software platform
KR20240009783A (en) 2022-07-14 2024-01-23 국민대학교산학협력단 Code parsing apparatus and method for simulation of automotive software platform
KR20240009757A (en) 2022-07-14 2024-01-23 국민대학교산학협력단 Windows-based automotive software simulation device and method through autosar stack virtualization
KR20240009779A (en) 2022-07-14 2024-01-23 국민대학교산학협력단 Device driver virtualization apparatus and method for simulation of automotive software platform
KR20240009786A (en) 2022-07-14 2024-01-23 국민대학교산학협력단 Operating system virtualization device and method for simulation of automotive software platform

Similar Documents

Publication Publication Date Title
KR101134735B1 (en) Software testing method and system using software component design information
KR101019210B1 (en) Test Device of Embedded Software using the emulator and Method thereof
US8601436B2 (en) Simulation-based interface testing automation system and method for robot software components
Wu et al. UML-based integration testing for component-based software
US8352907B2 (en) Software application recreation
US20090089618A1 (en) System and Method for Providing Automatic Test Generation for Web Applications
US8819831B2 (en) Remote procedure call (RPC) services fuzz attacking tool
CN108182359B (en) Method, device and storage medium for testing API security in trusted environment
JP2010539576A (en) Method for automatic script generation for testing the validity of operational software of an airborne system and device for implementing the method
WO2010018415A1 (en) A method and system for testing complex machine control software
US20100005455A1 (en) Managing software dependencies during software testing and debugging
US11888885B1 (en) Automated security analysis of software libraries
Pasareanu et al. Model based analysis and test generation for flight software
Gu et al. An empirical study on api-misuse bugs in open-source c programs
US20160275000A1 (en) System and method of automated application screen flow generation for detecting aberration in mobile application
KR20140088963A (en) System and method for testing runtime error
KR101019166B1 (en) Automated testing method and system for embedded software
WO2017092391A1 (en) Middle-tier database virtual control and testing method and system utilizing same
CN110781081A (en) Mobile application callback forced triggering method, system and storage medium
US20190073292A1 (en) State machine software tester
CN115757084A (en) Test method and test device and storage medium
US11321218B1 (en) Automated generation of source code models from machine code for code analysis
EP3316171A1 (en) Apparatus and method for dynamic binary analysis on hardware board
Wang et al. Application of model-based testing on a quorum-based distributed storage
Zakharov et al. Compositional environment modelling for verification of GNU C programs

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: 20150430

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160401

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170328

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180403

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190325

Year of fee payment: 8