KR101134735B1 - Software testing method and system using software component design information - Google Patents
Software testing method and system using software component design information Download PDFInfo
- 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
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
-
- 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
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
Abstract
Description
아래 실시예들은 다수의 소프트웨어 컴포넌트를 제공하는 소프트웨어를 테스트하는 방법 및 시스템에 관련되며, 보다 상세하게는 소프트웨어의 신뢰성을 확보하고 개발기간을 단축시키기 위하여 소프트웨어를 테스팅하는 과정을 표준화 및 자동화하는 방법에 관련된다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
각 포트는 하나 이상의 데이터 엘리먼트(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
한편, 소프트웨어 컴포넌트를 제외한 런타임 환경, 베이직 소프트 모듈의 설계는 설계 도구에 의해 자동으로 생성된다. 따라서, 호환성이 검증된 표준 설계 도구를 이용함으로써 소프트웨어 테스팅에 대한 최소한의 신뢰성을 보장할 수 있으며, 런타임 환경에 의해 소프트웨어 컴포턴트 통합의 신뢰성도 보장할 수 있다.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
상기의 런타임 환경 API(221)에 대한 정보는 오토모티브 오픈 시스템 아키텍쳐의 설정 XML에 모두 저장되어 있으며, 이러한 정보를 기초로 런타임 환경 API(221)가 정확하게 사용되고 있는 지를 테스트할 수 있다. 이처럼 소프트웨어 컴포넌트 내부에 대하여 런타임 API 호출에 대한 테스트를 실시하는 것을 아래에서는, '인터페이스 테스트'라 칭한다. 또한, 소프트웨어 컴포넌트의 기능이 요구사항을 만족하는 지를 검증하는 것을 '블랙박스 테스트'라 칭한다.
The information about the
도 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
소프트웨어 컴포넌트 설계정보(300)는 소프트웨어 컴포넌트 설계 명세정보(301) 및 소프트웨어 구현정보(302)를 포함할 수 있다.The software
이때, 소프트웨어 컴포넌트 설계 명세정보(301)는 소프트웨어 내 소프트웨어 컴포넌트들이 어떻게 구성되고 어떤 구조로 구현되었는 지를 나타내는 명세정보로서, 본 발명의 일 실시예에 따라 XML 파일에 저장될 수 있다.At this time, the software component
또한, 소프트웨어 구현정보(302)는 소프트웨어의 소스 코드가 코딩된 소스 파일로서, 예컨대, 임베디드 소스 파일이 될 수 있다.In addition, the
테스트 자동화 장치(310)는 정보 추출부(311), 테스트 케이스 생성부(312), 및 테스트 시스템 생성부(313)를 포함할 수 있다.The
정보 추출부(311)는 오토모티브 오픈 시스템 아키텍쳐를 위한 XML 파서 및 소프트웨어 설계 정보를 추출하는 추출기를 포함할 수 있다. 정보 추출부(311)는 테스트 케이스를 자동으로 생성하기 위한 정보들을 추출하며, 특히 테스트 케이스로서 테스트할 대상의 소프트웨어 컴포넌트의 런어블, 포트, 인터 런어블 변수, 데이터 타입 및 상기 데이터 타입의 클래스 중 적어도 하나 이상에 관련된 정보들을 소프트웨어 컴포넌트 설계 명세정보(301)로부터 추출한다.The
테스트 케이스 생성부(312)는 정보 추출부(311)에 의해 추출된 정보들을 기초로, 상기 소프트웨어 컴포넌트 각각에 대응하여 입력 데이터 및 예상 출력 데이터를 포함하는 하나 이상의 테스트 케이스들을 생성한다.The
이때, 생성된 테스트 케이스들은 상기 소프트웨어 컴포넌트의 인터페이스를 테스트하기 위한 인터페이스 테스트 케이스(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
인터페이스 처리부(312a)는 테스트할 대상의 소프트웨어 컴포넌트의 오토모티브 오픈 시스템 아키텍쳐의 입출력 인터페이스가 정확히 구현되었는 지를 테스트하기 위한 인터페이스 테스트 케이스(321)를 생성한다. 상기 입출력 인터페이스에는 클라이언트/서버 통신 인터페이스, 송신자/수신자 통신 인터페이스, 인터 러너블 변수, 제한영역(exclusive area) 중 하나 이상을 포함할 수 있다.The
블랙박스 처리부(312b)는 정보 추출부(311)에 의해 추출된 정보들을 기초로, 상기 테스트할 대상의 소프트웨어 컴포넌트의 기능을 검증하기 위한 블랙박스 테스트 케이스(322)를 생성한다.The
이를 위하여, 블랙박스 처리부(312b)는 정보 추출부(311)에 의해 추출된 정보들을 기초로, 상기 소프트웨어 컴포넌트의 입출력 변수 및 상기 입출력 변수의 데이터 타입, 상기 데이터 타입의 각각에 대한 등가 클래스 중 적어도 하나 이상을 추출할 수 있다. 블랙박스 처리부(312b)는 상기 추출된 정보를 이용하여, 경계 값 분석(boundary value analysis test case) 테스트 케이스를 생성하고, 페어와이즈(pairwise testing) 테스트 케이스와 같은 다양한 블랙박스 테스트 케이스 알고리즘을 적용하여 블랙박스 테스트 케이스를 생성할 수 있다.To this end, the black
나아가, 블랙박스 처리부(312b)는 상기 생성된 블랙박스 테스트 케이스 각각에 대응하여, 입력정보, 예상 출력값, 마감시간 및 부가 테스트 정보를 설정할 수 있다.In addition, the black
테스트 케이스(320)는 상기 소프트웨어 컴포넌트의 인터페이스를 테스트하기 위한 인터페이스 테스트 케이스(321) 및 상기 소프트웨어 컴포넌트의 기능 검증을 위한 블랙박스 테스트 케이스(322)를 포함할 수 있다.The
테스트 시스템 생성부(313)는 소프트웨어 컴포넌트 설계 명세정보(301)로부터 추출된 정보를 기초로, 테스터(331) 및 타겟 시스템 처리부(332)를 포함하는 테스트 시스템을 생성할 수 있다.The
상기 테스트 시스템 내 테스터(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
410 단계는 상기 소프트웨어 컴포넌트 설계정보를 기초로, 소프트웨어 컴포넌트를 구현하는 절차가 코딩된 소스 코드를 생성한다. 그리고, 410 단계는 상기 소스 코드를 테스트하기 위한 테스터 및 타겟 시스템 처리부를 생성한다.In
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
440 단계에서, 상기 타겟 시스템 처리부는 상기 입력된 입력 데이터를 기초로, 상기 소스 코드를 실행하고, 상기 실행에 따른 결과 데이터를 상기 테스터로 전달한다.In
450 단계에서, 상기 테스터는 상기 440 단계로부터 전달된 결과 데이터를 기초로, 상기 전달된 결과 데이터와, 미리 설정된 예상 데이터간의 비교를 통해 테스트의 성공 여부를 판단할 수 있다. 또한, 450 단계에서, 상기 테스터는 상기 블랙박스 테스트 케이스로부터 전달된 상기 기준 실행시간이 있는 경우, 상기 실행에 소요된 시간이 상기 기준 실행시간을 미달하는 지에 따라 상기 테스트의 성공여부를 결정할 수도 있다.
In
도 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
또한, 510 단계는 TTCN-3에서 실행 가능한 테스트 케이스 모듈을 생성할 수 있으며, 각 런어블의 입출력 인터페이스를 테스트하기 위한 소프트웨어 시뮬레이션 모듈을 생성할 수 있다.In
520 단계에서, 테스터는 대상 시스템 처리부로 테스트 대상의 런어블 아이디를 전달한다. 즉, 테스트는 런어블 단위로 수행될 수 있으며, 런어블 내부에서 오토모티브 오픈 시스템 아키텍쳐의 입출력 인터페이스의 호출이 발생할 수 있다.In
530 단계는 소스코드를 기초로, 상기 획득된 런어블 아이디에 대응하는 런어블을 수행한다. In
540 단계는 상기 530 단계의 런어블 수행에서, 호출되는 인터페이스를 기록하고, 상기 런어블 수행에서 인터페이스에 대한 잘못된 호출이 발생하였는 지를 체크한다. 여기서, 인터페이스에 대한 잘못된 호출은, 지정된 인터페이스가 호출되지 않았거나 또는 존재하지 않는 인터페이스가 호출되었는 지 등에 따라 잘못되었음이 판단될 수 있다.Step 540 records the interface to be called in the runable execution of
550 단계는 상기 540 단계의 체크의 결과를 나타내는 데이터를 테스터로 전달한다.Step 550 delivers data indicating the result of the check of
이후, 테스터는 550 단계에 의해 전달된 출력 데이터를 기초로, 상기 테스트의 성공 여부를 판단할 수 있다. 즉, 테스터는 테스트 케이스에서의 예상 출력 데이터와, 상기 전달된 출력 데이터를 비교하고, 상기 비교 결과에 따라 상기 테스트의 성공 여부를 결정할 수 있다.Thereafter, the tester may determine whether the test is successful based on the output data transmitted in
다시 말해서, 소프트웨어 컴포넌트는 통신 인터페이스를 통해 외부와 통신할 수 있으므로, 소프트웨어 인터페이스 테스트를 통해, 소프트웨어 컴포넌트가 설계 명세에 충실하게 구현되었는지 검증할 수 있다.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
620 단계는 상기 생성된 블랙박스 테스트 케이스 내 포함된 테스트 입력 아이디 각각의 데이터 타입 및 등가 클래스를 이용하여, 경계 값 분석 테스트 케이스(boundary value analysis test cases)를 생성한다.In
여기서, 620 단계는 각 등가 클래스의 경계 값을 테스트하며, 테스트 입력 및 등가 클래스의 조합을 기초로 경계 값 분석 테스트 케이스를 생성할 수 있다.Here, in
630 단계는 상기 생성된 블랙박스 테스트 케이스 내 포함된 테스트 입력 아이디 각각의 등가 클래스를 조합하여, 콤비네이션 테스트 케이스(Combinational Test cases)를 생성한다.In
이때, 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.
상기 소프트웨어 플랫폼은
오토모티브 오픈 시스템 아키텍쳐(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.
상기 소프트웨어 컴포넌트의 인터페이스를 테스트하기 위한 인터페이스 테스트 케이스 및 상기 소프트웨어 컴포넌트의 기능 검증을 위한 블랙박스 테스트 케이스 중 적어도 하나 이상을 생성하는 단계는
상기 블랙박스 테스트 케이스를 생성하는 경우,
상기 소프트웨어 컴포넌트 설계정보로부터 소프트웨어 컴포넌트의 입출력 신호의 포트, 데이터 엘리먼트, 데이터 타입, 데이터 타입의 등가 클래스 중 적어도 하나 이상에 대한 정보를 추출하고, 경계 값 분석을 통해 블랙박스 테스트 케이스를 생성하는
소프트웨어 테스트 방법.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.
소프트웨어 컴포넌트 각각의 구성 및 구조를 나타내는 소프트웨어 컴포넌트 설계정보를 기초로, 테스트 케이스를 생성하기 위한 정보를 추출하는 정보 추출부;
상기 추출된 정보를 기초로, 상기 소프트웨어 컴포넌트 각각에 대응하여 입력 데이터 및 예상 출력 데이터를 포함하는 상기 소프트웨어 컴포넌트의 인터페이스를 테스트하기 위한 인터페이스 테스트 케이스 또는 상기 소프트웨어 컴포넌트의 기능 검증을 위한 블랙박스 테스트 케이스를 생성하는 테스트 케이스 생성부; 및
상기 생성된 인터페이스 테스트 케이스를 이용하여 테스트의 대상이 되는 소프트웨어 컴포넌트의 런어블별로 관련된 소스 코드를 실행하고, 상기 실행된 소스 코드에 의하여 인터페이스에 대한 잘못된 호출이 발생하였는지에 따라 상기 소프트웨어의 테스트 성공 여부를 판단하는 테스트 시스템
을 포함하는 소프트웨어 테스트 시스템.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.
상기 소프트웨어 플랫폼은
오토모티브 오픈 시스템 아키텍쳐(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.
상기 테스트 케이스 생성부는
상기 소프트웨어 컴포넌트 설계정보로부터 소프트웨어 컴포넌트의 입출력 신호의 포트, 데이터 엘리먼트, 데이터 타입, 데이터 타입의 등가 클래스 중 적어도 하나 이상에 대한 정보를 추출하고, 경계 값 분석을 통해 블랙박스 테스트 케이스를 생성하는
소프트웨어 테스트 시스템.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.
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)
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 |
-
2010
- 2010-11-03 KR KR1020100108551A patent/KR101134735B1/en active IP Right Grant
Non-Patent Citations (4)
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)
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 |