KR101452546B1 - system for generating test component of embedded software and method for generating test component using the same - Google Patents
system for generating test component of embedded software and method for generating test component using the same Download PDFInfo
- Publication number
- KR101452546B1 KR101452546B1 KR1020100124937A KR20100124937A KR101452546B1 KR 101452546 B1 KR101452546 B1 KR 101452546B1 KR 1020100124937 A KR1020100124937 A KR 1020100124937A KR 20100124937 A KR20100124937 A KR 20100124937A KR 101452546 B1 KR101452546 B1 KR 101452546B1
- Authority
- KR
- South Korea
- Prior art keywords
- test component
- meta
- software
- memory usage
- test
- 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/3696—Methods or tools to render software testable
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템 및 이를 이용한 테스트 컴포넌트 자동 생성 방법을 제공하기 위한 것으로, 본 발명의 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템은 테스트 컴포넌트 생성기를 구동시키기 위해 프로그램 코드를 출력하는 테스트 대상 소프트웨어; 실행시간 제약이나 메모리 사용량에 대한 요구사항들이 저장되어 있는 내장형 소프트웨어의 요구사항부; 상기 내장형 소프트웨어 요구사항부로부터 실행시간 제약에 대한 요구사항들을 입력받고, 상기 테스트 대상 소프트웨어의 프로그램 코드를 입력받아서 구동하는 실행시간 제약 테스트 컴포넌트 생성기; 상기 내장형 소프트웨어 요구사항부로부터 메모리 사용량에 대한 요구사항들을 입력받고, 상기 테스트 대상 소프트웨어의 프로그램 코드를 입력받아서 구동하는 메모리 사용량 테스트 컴포넌트 생성기; 및 상기 실행시간 제약 테스트 컴포넌트 생성기와 상기 메모리 사용량 테스트 컴포넌트 생성기로부터 각각 출력된 메타 프로그램 코드를 관점 지향 프로그래밍에서의 애스펙 코드로 자동 생성하여, 실행시간 제약 테스트 컴포넌트와 메모리 사용량 테스트 컴포넌트를 각각 생성하는 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)으로 구성되고, 상술한 본 발명은 테스터가 복잡한 애스펙 기반 테스트 컴포넌트들을 구현해야하는 노력을 최소화하고, 테스팅 과정에서의 모니터링을 위한 테스트 인터페이스를 구현할 필요가 없기 때문에 테스팅 시간을 단축시킬 수 있는 효과가 있다.The present invention provides a test component automatic generation system of built-in software and a method of automatically generating a test component using the same, wherein the system for automatically generating a test component of embedded software of the present invention includes a test Target software; Requirements of embedded software where requirements for runtime constraints or memory usage are stored; A runtime constraint test component generator for receiving requirements for execution time constraints from the embedded software requirements module and receiving and running program code of the software to be tested; A memory usage test component generator for receiving requirements for memory usage from the embedded software requirement unit and receiving and operating a program code of the software to be tested; And the meta program code output from the execution time constraint test component generator and the memory usage test component generator are automatically generated as the observation code in viewpoint oriented programming to generate the execution time constraint test component and the memory usage test component, Meta-AspectJ Add-on, and the present invention described above minimizes the effort of the tester to implement complicated test-based test components and provides a test interface for monitoring during the testing process There is an effect that the testing time can be shortened.
Description
본 발명은 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템에 관한 것으로서, 특히 실행시간이나 메모리 사용량에 관련된 요구사항을 효율적으로 테스팅할 수 있는 테스트 컴포넌트를 자동으로 생성하는 방법 및 이를 이용하여 테스트를 수행하는 시스템에 관한 것이다. The present invention relates to a test component automatic generation system of built-in software, and more particularly to a method of automatically generating a test component capable of effectively testing requirements related to execution time or memory usage and a system .
내장형 소프트웨어의 요구사항 명세 기반 테스팅은 각 요구사항에 명시된 내용을 바탕으로 테스트 대상이 올바른 동작을 하고 있는지를 검사하는 것이다. Requirements of Embedded Software Specification-based testing is based on what is specified in each requirement to check that the test object is behaving correctly.
이와 같이 내장형 소프트웨어의 요구사항 명세 기반 테스팅 기법은 요구사항별로 테스트를 수행할 수 있는 모듈이나 컴포넌트가 필요하다. 상기 명세 기반 테스팅에서 요구되는 테스트 모듈이나 컴포넌트들은 데이터를 입력하여 테스트 대상을 실행시키는 기능, 테스트 대상의 실행에 의해 발생하는 결과 값을 수집하는 기능, 결과 값이 요구사항에 명시된 값과 일치하는 지를 확인하는 기능을 갖는다. Thus, the requirements specification based testing method of embedded software requires a module or a component that can perform a test on a requirement basis. The test modules or components required in the specification-based testing may include a function to execute a test object by inputting data, a function to collect result values generated by the execution of the test object, and a function to determine whether the result value matches a value specified in the requirement .
상기 내장형 소프트웨어의 요구사항 명세 기반 테스팅에서 요구사항의 종류와 수가 많아질수록 필요한 테스트 모듈이나 컴포넌트가 많아지게 되어 테스트를 위해 필요한 노력이 증가하게 된다. 특히, 시스템의 성능에 관련된 요구사항, 즉, 시간제약 관련 요구사항, 메모리 사용량 관련 요구사항들에 관해서는 각 테스트 대상에 따라 요구하는 값이 서로 다르기 때문에 필요한 테스트 컴포넌트의 수가 일반 기능적 요구사항에 대한 테스팅보다 더 많이 요구된다.As the number and type of requirements in the requirements specification based testing of the embedded software increases, the number of required test modules or components increases, thereby increasing the effort required for testing. Particularly, since the requirements related to the performance of the system, that is, the time constraint requirements and the memory usage requirements, are different from each other depending on the test object, More than testing is required.
이와 같이 내장형 소프트웨어의 요구사항 명세 기반 테스팅을 효과적으로 수행하기 위해 종래에도 테스팅에 필요한 모듈이나 컴포넌트들을 자동으로 생성하기 위한 연구들이 많이 진행되어 왔다. In order to effectively perform requirements specification based testing of embedded software, many studies have been conducted to automatically generate modules or components necessary for testing.
그러나, 대부분의 연구들이 기능 테스트 측면의 테스트 컴포넌트에 관한 연구들이었고 내장형 소프트웨어의 중요한 요구사항인 시간제약이나 메모리 사용량에 대해서는 다루지 않았다. However, most of the studies were studies on test components in terms of functional testing and did not address time constraints or memory usage, which are important requirements of embedded software.
또한, 종래의 테스트 컴포넌트들은 소프트웨어 내부의 테스트 인터페이스를 통해 시스템 상태를 모니터링하기 때문에 테스트 인터페이스를 추가적으로 구현해야한다는 단점이 있다. In addition, since conventional test components monitor the system status through a test interface in the software, there is a disadvantage that a test interface must be additionally implemented.
따라서, 시간제약과 메모리 사용량 관련 요구사항을 테스트할 수 있고 테스트 인터페이스를 추가적으로 구현할 필요 없이 테스트 컴포넌트를 자동으로 생성할 수 있는 기법이 필요한 실정이다. Therefore, there is a need for techniques that can test time constraints and memory usage requirements and automatically generate test components without having to implement additional test interfaces.
본 발명은 상기한 종래기술에 따른 문제점을 해결하기 위해 제안된 것으로서, 메타-애스팩 제이(Meta-AspectJ)의 메타 프로그래밍 기법을 사용하여 애스펙 기반 테스트 컴포넌트를 자동으로 생성할 수 있는 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템 및 이를 이용한 테스트 컴포넌트 자동 생성 방법을 제공하는데 그 목적이 있다. Disclosure of Invention Technical Problem [8] The present invention has been made to solve the above-mentioned problems, and it is an object of the present invention to provide an embedded software capable of automatically generating an inspection-based test component using a meta-programming technique of Meta-AspectJ And a method for automatically generating a test component using the same.
상기 목적을 달성하기 위한 본 발명의 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템은 테스트 컴포넌트 생성기를 구동시키기 위해 프로그램 코드를 출력하는 테스트 대상 소프트웨어; 실행시간 제약이나 메모리 사용량에 대한 요구사항들이 저장되어 있는 내장형 소프트웨어의 요구사항부; 상기 내장형 소프트웨어 요구사항부로부터 실행시간 제약에 대한 요구사항들을 입력받고, 상기 테스트 대상 소프트웨어의 프로그램 코드를 입력받아서 구동하는 실행시간 제약 테스트 컴포넌트 생성기; 상기 내장형 소프트웨어 요구사항부로부터 메모리 사용량에 대한 요구사항들을 입력받고, 상기 테스트 대상 소프트웨어의 프로그램 코드를 입력받아서 구동하는 메모리 사용량 테스트 컴포넌트 생성기; 및 상기 실행시간 제약 테스트 컴포넌트 생성기와 상기 메모리 사용량 테스트 컴포넌트 생성기로부터 각각 출력된 메타 프로그램 코드를 관점 지향 프로그래밍에서의 애스펙 코드로 자동 생성하여, 실행시간 제약 테스트 컴포넌트와 메모리 사용량 테스트 컴포넌트를 각각 생성하는 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)으로 구성된 것을 특징으로 한다. According to another aspect of the present invention, there is provided a system for automatically generating a test component of embedded software, comprising: test target software for outputting a program code for driving a test component generator; Requirements of embedded software where requirements for runtime constraints or memory usage are stored; A runtime constraint test component generator for receiving requirements for execution time constraints from the embedded software requirements module and receiving and running program code of the software to be tested; A memory usage test component generator for receiving requirements for memory usage from the embedded software requirement unit and receiving and operating a program code of the software to be tested; And the meta program code output from the execution time constraint test component generator and the memory usage test component generator are automatically generated as the observation code in viewpoint oriented programming to generate the execution time constraint test component and the memory usage test component, And Meta-AspectJ Add-on.
상기 구성을 갖는 본 발명의 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 방법은, 내장형 소프트웨어 요구사항부로부터 실행시간 제약과 메모리 사용량에 대한 요구사항들을 각각 입력받고, 테스트 대상 소프트웨어의 프로그램 코드를 각각 입력받아서, 메타 프로그램 코드를 각각 출력하는 제1단계; 및 상기 실행시간 제약에 대한 요구사항들과 상기 메모리 사용량에 대한 요구사항들을 각각 입력받고, 상기 실행시간 제약 테스트 컴포넌트 생성기와 메모리 사용량 테스트 컴포넌트 생성기로부터 메타 프로그램 코드를 입력받아서 관점 지향 프로그래밍에서의 애스펙 코드로 자동 생성하여, 실행시간 제약 테스트 컴포넌트와 메모리 사용량 테스트 컴포넌트를 각각 생성하는 제2단계를 포함하는 것을 특징으로 한다. A method of automatically generating a test component of the embedded software according to the present invention having the above configuration comprises the steps of receiving from the built-in software requirement unit requirements for execution time restriction and memory usage, receiving program codes of the software to be tested, A first step of outputting each of the program codes; And receiving the meta program code from the execution time constraint test component generator and the memory usage test component generator to receive the meta program code from the execution time constraint test component generator and the meta program code in the viewpoint oriented programming, And a second step of automatically generating the execution time constraint test component and the memory usage test component by using the code.
상술한 본 발명은 내장형 소프트웨어를 구성하는 모듈의 실행시간 제약사항이나 메모리 사용량에 관련된 요구사항을 테스트하기 위한 애스펙 기반 테스트 컴포넌트를 자동으로 생성함으로써, 테스터가 복잡한 애스펙 기반 테스트 컴포넌트들을 구현해야하는 노력을 최소화하고 테스팅 과정에서의 모니터링을 위한 테스트 인터페이스를 구현할 필요가 없기 때문에 테스팅 시간을 단축시킬 수 있는 효과가 있다.The present invention described above automatically generates an assertion-based test component for testing the execution time constraints of the module constituting the built-in software or the requirements related to the memory usage, It is not necessary to implement a test interface for monitoring during the testing process, and thus the testing time can be shortened.
도 1은 본 발명의 실시예에 따른 내장형 소프트웨어의 테스트 컴포넌트를 자동으로 생성하는 시스템의 블록 구성도이다.
도 2는 본 발명에 따른 내장형 소프트웨어의 테스팅 과정에서 자동 생성된 테스트 컴포넌트의 기능을 나타낸 도면이다.
도 3은 본 발명에 따라 자동 생성된 테스트 컴포넌트 중, 실행시간 제약 테스트 컴포넌트의 동작 수행 과정을 나타낸 흐름도이다.
도 4는 본 발명에 따라 자동 생성된 테스트 컴포넌트 중, 메모리 사용량 테스트 컴포넌트의 동작 수행 과정을 나타낸 흐름도이다.
도 5는 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)의 동작 수행 과정을 나타낸 흐름도이다.
도 6은 본 발명의 실시예에 따른 실행시간 제약 테스트 컴포넌트 생성기를 구현한 코드에 대한 예시도이다.
도 7은 본 발명의 실시예에 따른 메모리 사용량 테스트 컴포넌트 생성기를 구현한 코드에 대한 예시도이다.1 is a block diagram of a system for automatically generating test components of embedded software according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating a function of a test component automatically generated in a testing process of embedded software according to the present invention.
3 is a flowchart illustrating an operation of an execution time constraint test component among test components automatically generated according to the present invention.
4 is a flowchart illustrating an operation of a memory usage test component among test components automatically generated according to the present invention.
FIG. 5 is a flowchart illustrating an operation of Meta-AspectJ Add-on.
6 is an exemplary diagram illustrating a code implementing a runtime constraint test component generator according to an embodiment of the present invention.
FIG. 7 is an exemplary diagram illustrating a code that implements a memory usage test component generator according to an embodiment of the present invention.
본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In order to facilitate the understanding of the technical idea of the present invention, a most preferred embodiment of the present invention will be described with reference to the accompanying drawings.
본 발명의 실시예에 따른 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템은, 실행시간 제약과 메모리 사용량에 관련된 요구사항들과 테스트 대상 소프트웨어로 부터 자료를 각각 입력받아 실행시간 제약과 메모리 사용량에 대한 테스트를 수행할 수 있는 테스트 컴포넌트를 각각 자동 생성하는 시스템이다. The system for automatically generating a test component of the built-in software according to the embodiment of the present invention receives data from the test target software and requirements related to the execution time restriction and the memory usage and tests the execution time constraint and the memory usage This is a system that automatically generates test components that can be used.
이와 같은 본 발명에 따른 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템은, 도 1에 도시한 바와 같이, 테스트 대상 소프트웨어(10)와 실행시간제약이나 메모리사용량에 대한 내장형 소프트웨어 요구사항부(20)가 구비되어 있다. As shown in FIG. 1, the system for automatically generating a test component of embedded software according to the present invention includes a software to be tested 10, an embedded
그리고, 상기 구성부들의 출력신호 및 데이터를 입력받아 실행시간 제약 테스트 컴포넌트(70)와 메모리 사용량 테스트 컴포넌트(80)를 생성하기 위한, 실행시간 제약 테스트 컴포넌트 생성기(30)와 메모리 사용량 테스트 컴포넌트 생성기(40)와 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)(60)이 구비되어 있다. The execution time constraint
그리고, 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)(60)의 컴포넌트 생성 동작을 도와 주기 위해 메타-애스펙 제이(Meta-AspectJ)(50)가 더 구비되어 있다. In addition, a Meta-AspectJ 50 is further provided to assist the component creation operation of the Meta-AspectJ add-on 60.
이때, 상기 실행시간 제약 테스트 컴포넌트 생성기(30)와 메모리 사용량 테스트 컴포넌트 생성기(40)는 각각 테스트 대상 소프트웨어(10)와 내장형 소프트웨어 요구사항부(20)로 부터 프로그램 코드 및 요구사항들을 각각 입력받아 메타 프로그램 코드를 생성하고, 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)(60)을 통해서 실행시간 제약 테스트 컴포넌트(70)와 메모리 사용량 테스트 컴포넌트(80)를 각각 생성하게 된다. At this time, the execution time constraint
상기 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)(60)은 메타-애스펙 제이(Meta-AspectJ)(50)의 코드 생성 기능을 이용하여 진행한다.The Meta-AspectJ Add-on 60 proceeds using the code generation function of the Meta-AspectJ 50.
상기에서 실행시간 제약 테스트 컴포넌트 생성기(30)는 실행시간 제약 관련 요구사항을 테스트하기 위한 실행시간 제약 테스트 컴포넌트(70)를 자동으로 생성하는 기능을 수행하기 위한 것이다. 그리고, 메모리 사용량 테스트 컴포넌트 생성기(40)는 메모리 사용량 관련 요구사항을 테스트하기 위한 메모리 사용량 테스트 컴포넌트(80)를 자동으로 생성하는 기능을 수행하기 위한 것이다. The execution time constraint
그리고, 상기 메타-애스펙 제이(Meta-AspectJ)(50)는 메타 프로그래밍 기법을 통해 관점 지향 프로그래밍(Aspect-Oriented Programming:AOP)에서의 애스펙 코드를 자동 생성해줌으로써 복잡한 애스펙 컴포넌트의 구현 없이 효율적인 관점 지향 프로그래밍을 할 수 있도록 도와주는 도구이다. The Meta-AspectJ 50 automatically generates the meta-programming-based meta-programming code (Aspect-Oriented Programming (AOP)), It is a tool to help you make efficient point-oriented programming.
상술한 바와 같이, 본 발명은 내장형 소프트웨어에 대한 요구사항 명세 기반 테스팅에서 실행시간 제약사항이나 메모리 사용량에 관련된 요구사항을 테스트하기 위해 관점 지향 프로그램의 메타 프로그래밍 기법을 사용하여 애스펙(Aspect) 기반 테스트 컴포넌트를 자동 생성할 수 있는 시스템에 대한 것이다. 이와 같은 시스템을 구현하면, 내장형 소프트웨어의 시간 제약과 메모리 사용량에 관련된 요구사항을 테스트 인터페이스의 구현 없이 효율적으로 테스트할 수 있다.As described above, the present invention uses an aspect-oriented program's metaprogramming technique to test runtime constraints or requirements related to memory usage in requirements specification-based testing of embedded software, It is a system that can automatically generate components. By implementing such a system, the time constraints and memory usage requirements of the embedded software can be efficiently tested without implementing a test interface.
상기에 설명한 바와 같이, 본 발명은 이러한 메타-애스펙 제이(Meta-AspectJ)(50)를 이용하여 테스팅 기능을 수행하는 테스트 컴포넌트를 애스펙 컴포넌트 형태로 생성하는 시스템 개발에 관한 것으로, 그 동작에 대하여 설명하면 다음과 같다. As described above, the present invention relates to a system development method for generating a test component that performs a testing function using the Meta-AspectJ (50) in the form of an assemble component, As follows.
먼저, 도 1에 도시한 바와 같이, 내장형 소프트웨어 요구사항부(20)로부터 실행시간 제약이나 메모리 사용량에 대한 요구사항들을 입력받고, 테스트 대상 소프트웨어(10)로부터 프로그램 코드를 입력받는다. First, as shown in FIG. 1, the embedded
이후에, 상기 실행시간 제약에 대한 요구사항들을 입력받은 실행시간 제약 테스트 컴포넌트 생성기(30)를 통해 실행시간 테스트용 메타 프로그램 코드를 출력한다. Thereafter, the execution time constraint
그리고, 상기 메모리 사용량에 대한 요구사항들을 입력받은 메모리 사용량 테스트 컴포넌트 생성기(40)를 통해 메모리 사용량 테스트용 메타 프로그램 코드를 출력한다. The memory usage
이때, 실행시간 제약 테스트 컴포넌트 생성기(30)와 메모리 사용량 테스트 컴포넌트 생성기(40)는 그 동작이 동시에 또는 순차적으로 이루어질 수 있다. At this time, the execution time constraint
다음에, 상기 출력된 메타 프로그램 코드를 관점 지향 프로그래밍에서의 애스펙 코드로 자동 생성하여 실행시간 제약 테스트 컴포넌트(70)와 메모리 사용량 테스트 컴포넌트(80)를 각각 생성한다. Next, the output meta-program code is automatically generated as an optimizing code in viewpoint-oriented programming to generate an execution time
상기에서 메타 프로그래밍 기법을 통해 관점 지향 프로그래밍에서의 애스펙 코드로 자동 생성하는 동작은, 상기 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)(60)에서 진행하는데, 이때, 메타-애스펙 제이(Meta-AspectJ)(50)의 코드 생성 기능을 이용하여 진행한다.In the above, the operation of automatically generating an interest code in viewpoint-oriented programming through the meta-programming technique proceeds in the Meta-AspectJ Add-on 60, And proceeds using the code generation function of the Meta-
상기 본 발명의 동작에 의해 자동 생성된 실행시간 테스트 컴포넌트(70)와 메모리 사용량 테스트 컴포넌트(80)가 테스팅 과정에서 어떠한 기능을 수행하는지에 대하여 부연 설명하면 다음과 같다. The functions of the execution
먼저, 도 2에 도시한 바와 같이, 실행시간 제약사항이나 메모리 사용량에 관련된 요구사항에 대한 테스트를 위해 내장형 소프트웨어의 요구사항부(20)로부터 실행시간 및 메모리 관련 요구사항을 도출한다(S21). First, as shown in FIG. 2, execution time and memory-related requirements are derived from the
이후, 도출된 요구사항으로 테스트 케이스를 생성한다(S22).Then, a test case is created with the derived requirements (S22).
다음에, 생성된 테스트 케이스는 테스트 드라이버(21)를 통해 테스트 대상 소프트웨어(10)의 구성 모듈 즉, 모듈1(10a), 모듈2(10b), 모듈3(10c)을 동작시키기 위해 입력된다.Next, the generated test case is inputted through the
이후에 자동 생성된 테스트 컴포넌트가 대상 모듈에 대해서 실행 과정을 모니터링하고 실행결과를 확인하여 테스팅 결과가 정상적인지 아닌지를 판단하여 테스터에게 알려주는 기능을 수행한다. Then, the automatically generated test component monitors the execution process of the target module and confirms the execution result to determine whether the test result is normal or not, and informs the tester.
즉, 자동 생성된 테스트 컴포넌트의 각 모듈에서의 기능은, 자동 생성된 실행시간 제약 테스트 컴포넌트(70)나 메모리 사용량 테스트 컴포넌트(80)가 테스트 대상 소프트웨어(10)의 대상 모듈(모듈1(10a), 모듈2(10b), 모듈3(10c))에 대해서 각각 테스트 수행 과정을 모니터링(S23a)하고, 테스트 수행을 진행(23b)하고, 그 테스트 결과를 확인(S23c)한다. That is, the function of each module of the automatically generated test component is set such that the automatically generated execution time
그리고, 테스트 대상 소프트웨어(10)에서 출력된 테스팅 결과가 정상적인지 아닌지를 판단하여 테스터에게 테스트 결과를 알려주는 기능을 수행한다(S24). Then, it is determined whether the test result output from the
이하, 상기 테스트 기능을 갖는 컴포넌트 중, 실행시간 제약 테스트 컴포넌트의 동작 수행 과정에 대하여 설명하면 다음과 같다. Hereinafter, an operation of the execution time restriction test component among the components having the test function will be described.
먼저, 도 3에 도시한 바와 같이, 테스트 대상 기능 모듈이 실행되기 전에 실행시간 모니터링을 위한 시간 측정 타이머를 동작시킨다.(S31) First, as shown in Fig. 3, a time measurement timer for execution time monitoring is operated before the test target function module is executed (S31)
그리고, 테스트 대상 기능 모듈을 실행(S32)시키고, 실행이 완료되면 시간 측정 타이머를 종료(S33)시킨다. Then, the test target function module is executed (S32), and when the execution is completed, the time measurement timer is ended (S33).
이후에, 타이머에 의해 측정된 대상 모듈의 실행시간이 실행시간 관련 요구사항을 만족하는지를 판단(S34)하여, 만족할 경우에는 테스트 성공(S35a), 만족하지 못할 경우에는 테스트 실패(S35b)라는 최종 테스트 결과를 출력(S36)한다. Thereafter, it is judged whether the execution time of the target module measured by the timer satisfies the execution time-related requirements (S34). If it is satisfied, the test success (S35a) The result is outputted (S36).
다음에, 상기 테스트 기능을 갖는 컴포넌트 중, 메모리 사용량 테스트 컴포넌트의 동작 수행 과정에 대하여 설명하기로 한다. Hereinafter, the operation of the memory usage test component among the components having the test function will be described.
먼저, 도 4에 도시한 바와 같이, 테스트 대상 기능 모듈이 실행되기 전에 현재 시스템에 남아 있는 제1메모리 가용량(M1)을 획득하기 위한 시스템 메모리 모니터링 동작을 수행한다.(S41) First, as shown in FIG. 4, a system memory monitoring operation is performed to acquire a first memory usable capacity M1 remaining in the current system before the test target function module is executed (S41)
이후에, 테스트 대상 기능 모듈을 실행(S42)시키고, 모듈이 실행된 후에는 시스템에 남아 있는 제2메모리 가용량(M2)을 획득하기 위한 시스템 메모리 모니터링 동작(S43)을 수행한다. Thereafter, a test target function module is executed (S42), and a system memory monitoring operation (S43) is performed to acquire a second memory available capacity (M2) remaining in the system after the module is executed.
다음에, 대상 모듈이 실행되기 전과 후의 시스템 메모리 가용량의 차이를 통해 대상 모듈을 실행하기 위해 사용한 메모리량을 계산(S44)한다. Next, the amount of memory used for executing the target module is calculated (S44) through the difference in the amount of available system memory before and after the target module is executed.
이후에, 대상 모듈의 실행에 사용된 메모리 사용량이 요구사항에 부합하는 지를 판단(S45)하여 만족할 경우에는 테스트 성공(S46a), 만족하지 못할 경우에는 테스트 실패(S46b)라는 최종 테스트 결과를 출력(S47)한다. Thereafter, it is judged whether or not the memory usage amount used for execution of the target module meets the requirements (S45). If the memory usage is satisfied, the test result S46a is obtained. If the memory usage is not satisfied, the final test result S46b is outputted S47).
다음에, 실행시간 제약 테스트 컴포넌트(70)와 메모리 사용량 테스트 컴포넌트(80)를 생성하기 위해 사용되는 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)의 동작 수행 과정에 대하여 설명하면 다음과 같다. Next, a description will be made of a process of performing the operation of the Meta-AspectJ Add-on used to generate the execution time
상기 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)은 테스트 컴포넌트 생성기의 코드 생성 기능을 지원하기 위해 메타-애스펙 제이(Meta-AspectJ)에 기능을 추가하여 구현되는 것이다. The Meta-AspectJ Add-on is implemented by adding functions to Meta-AspectJ to support the code generation function of the test component generator.
도 5에 도시한 바와 같이, 애드-온(Add-on)은 메타 프로그램 코드를 입력(S51)받고, 메타-애스펙 제이(Meta-AspectJ)의 언파스(Unparse) 방법을 호출(S52)한다. As shown in FIG. 5, the add-on receives a meta program code (S51) and calls the Unparse method of Meta-AspectJ (S52) .
그리고, 메타-애스펙 제이(Meta-AspectJ)의 메타 프로그램 코드를 파싱(S53)하여, 실행 가능한 코드를 생성(S54)한다.Then, meta program code of Meta-AspectJ is parsed (S53), and executable code is generated (S54).
이후에, 상기 코드 생성 결과가 성공적인지를 판별(S55)하는 동작을 수행한다. Thereafter, it is determined whether the code generation result is successful (S55).
상기 코드 생성 결과를 판별하여 성공적이면 테스트 컴포넌트 파일을 생성(S56a)하여 저장하고, 실패이면 생성 실패 원인을 화면상에 출력(S56b)한다. If it is determined that the code generation result is successful, a test component file is generated (S56a) and stored. If the code is not successful, the cause of failure is output on the screen (S56b).
상기와 같이 구동하는 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템에서, 실행시간 제약 테스트 컴포넌트 생성기(30)를 구현한 코드를 예시하여 나타내면 다음과 같다. In the test component automatic generation system of the built-in software to be driven as described above, the code implementing the execution time restriction
도 6에 도시한 바와 같이, 상기 실행시간 제약 테스트 컴포넌트 생성기(30)를 구현한 코드는, 테스트 대상이 되는 클래스 이름과 요구사항으로부터 도출된 실행시간 제약을 입력으로 받아 애스펙 기반의 테스트 컴포넌트를 생성한다. 라인번호 2의 “infer"는 메타-애스펙 제이(Meta-AspectJ)에서 제공하는 메타 프로그램 코드 템플릿으로 애스펙 컴포넌트 생성에 필요한 정보들을 담을 수 있다. 이 정보들을 바탕으로 코드 생성을 위한 메타 프로그램 코드가 만들어진다. 입력으로 받은 클래스 이름은 라인번호 4에서 애스펙 컴포넌트의 이름과 라인번호 8에서 포인트컷으로 사용된다. 라인번호 8의 ”around"에는 실행시간 제약사항 테스팅을 위한 타이머와 테스팅 로직이 정의된다. 마지막 라인의 "unparse(aspectCode)"는 라인번호 2의 “aspectCode”에 정의된 애스펙 컴포넌트 메타 프로그램 코드를 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)에 전달하여 실행시간 제약 테스트 컴포넌트(70)를 생성한다.As shown in FIG. 6, the code implementing the execution time constraint
그리고, 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템에서, 메모리 사용량 테스트 컴포넌트 생성기(200)를 구현한 코드를 예시하여 나타내면 다음과 같다. In the test component automatic generation system of the built-in software, the code implementing the memory usage test component generator 200 will be exemplified as follows.
도 7에 도시한 바와 같이, 상기 메모리 사용량 테스트 컴포넌트 생성기(200)를 구현한 코드는, 테스트 대상이 되는 클래스 이름과 요구사항으로부터 도출된 메모리 사용량 제약 사항을 입력으로 받아 메타 프로그램 코드를 생성하고, 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)을 이용하여 애스펙 기반의 메모리 사용량 테스트 컴포넌트(80)를 생성한다. As shown in FIG. 7, the code implementing the memory usage test component generator 200 receives the memory usage constraints derived from the name of the class to be tested and the requirements, generates the meta program code, Based memory
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아니다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다. 따라서, 본 발명의 범위는 설명된 예에 의해서가 아니라 청구범위에 의해서 정해져야 할 것이다.The technical idea of the present invention has been specifically described according to the above preferred embodiments, but the above-mentioned embodiments are intended to be illustrative and not restrictive. In addition, it will be understood by those of ordinary skill in the art that various embodiments are possible within the scope of the technical idea of the present invention. Accordingly, the scope of the present invention should be determined by the claims rather than the examples described.
* 도면의 주요 부분에 대한 부호의 설명
10 : 테스트 대상 소프트웨어
20 : 내장형 소프트웨어 요구사항부
30 : 실행시간 제약 테스트 컴포넌트 생성기
40 : 메모리 사용량 테스트 컴포넌트 생성기
50 : 메타-애스펙 제이(Meta-AspectJ)
60 : 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)
70 : 실행시간 제약 테스트 컴포넌트
80 : 메모리 사용량 테스트 컴포넌트 DESCRIPTION OF THE REFERENCE NUMERALS
10: Software to be tested
20: Embedded Software Requirements Section
30: Runtime Constraint Test Component Generator
40: Memory Usage Test Component Generator
50: Meta-AspectJ < RTI ID = 0.0 >
60: Meta-AspectJ Add-on
70: Runtime Constraint Test Component
80: Memory usage test component
Claims (5)
실행시간 제약이나 메모리 사용량에 대한 요구사항들이 저장되어 있는 내장형 소프트웨어의 요구사항부;
상기 내장형 소프트웨어 요구사항부로부터 실행시간 제약에 대한 요구사항들을 입력받고, 상기 테스트 대상 소프트웨어의 프로그램 코드를 입력받아서 구동하는 실행시간 제약 테스트 컴포넌트 생성기;
상기 내장형 소프트웨어 요구사항부로부터 메모리 사용량에 대한 요구사항들을 입력받고, 상기 테스트 대상 소프트웨어의 프로그램 코드를 입력받아서 구동하는 메모리 사용량 테스트 컴포넌트 생성기; 및
상기 실행시간 제약 테스트 컴포넌트 생성기와 상기 메모리 사용량 테스트 컴포넌트 생성기로부터 각각 출력된 메타 프로그램 코드를 관점 지향 프로그래밍에서의 애스펙 코드로 자동 생성하여, 실행시간 제약 테스트 컴포넌트와 메모리 사용량 테스트 컴포넌트를 각각 생성하는 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)으로 구성된 것을 특징으로 하는 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템. Test software for outputting program code for driving a test component generator;
Requirements of embedded software where requirements for runtime constraints or memory usage are stored;
A runtime constraint test component generator for receiving requirements for execution time constraints from the embedded software requirements module and receiving and running program code of the software to be tested;
A memory usage test component generator for receiving requirements for memory usage from the embedded software requirement unit and receiving and operating a program code of the software to be tested; And
A meta-program code generated from the execution-time constraint test component generator and the memory usage test component generator, respectively, as meta-code in viewpoint-oriented programming, and generating a meta-execution-time constraint test component and a memory usage- - Meta-AspectJ Add-on, a test component automatic generation system of built-in software.
상기 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)은 메타-애스펙 제이(Meta-AspectJ) 코드를 입력받아서 구동하는 것을 특징으로 하는 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템. The method according to claim 1,
Wherein the Meta-AspectJ Add-on receives a meta-AspectJ code and drives the Meta-AspectJ add-on.
실행시간 제약 테스트 컴포넌트 생성기와 메모리 사용량 테스트 컴포넌트 생성기로 부터 출력된 상기 메타 프로그램 코드를 입력받아서 관점 지향 프로그래밍에서의 애스펙 코드로 자동 생성하여, 실행시간 제약 테스트 컴포넌트와 메모리 사용량 테스트 컴포넌트를 각각 생성하는 제2단계를 포함하는 것을 특징으로 하는 내장형 소프트웨어의 테스트 컴포넌트 자동생성 방법. A first step of receiving from a built-in software requirement part a requirement for execution time restriction and a memory usage amount, receiving a program code of the software to be tested, and outputting the meta program code, respectively; And
The meta-program code output from the execution time constraint test component generator and the memory usage test component generator is input and automatically generated as an optimize code in perspective-oriented programming to generate a run-time constraint test component and a memory usage test component, respectively And a second step of automatically generating a test component of the embedded software.
상기 메타 프로그래밍 코드를 입력받아서 관점 지향 프로그래밍에서의 애스펙 코드로 자동 생성하는 동작은, 메타-애스펙 제이(Meta-AspectJ)의 코드 생성 기능을 이용한 메타-애스펙 제이 애드-온을 통해 진행됨을 특징으로 하는 내장형 소프트웨어의 테스트 컴포넌트 자동생성 방법. The method of claim 3,
The operation of receiving the meta-programming code and automatically generating the meta-programming code as an interest code in viewpoint-oriented programming is performed through a meta-specie add-on using the code generation function of Meta-AspectJ A method for automatically generating a test component of a built-in software.
상기 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)은 메타 프로그램 코드를 입력받는 단계,
상기 메타-애스펙 제이(Meta-AspectJ)의 언파스(Unparse) 방법을 호출하는 단계,
상기 메타-애스펙 제이(Meta-AspectJ)의 메타 프로그램 코드를 파싱하여, 실행 가능한 코드를 생성하는 단계,
상기 코드 생성 결과가 성공적인지를 판별하는 단계,
상기 코드 생성 결과를 판별하여 성공적이면 테스트 컴포넌트 파일을 생성하여 저장하고, 실패이면 생성 실패 원인을 화면상에 출력하는 단계로 진행하는 것을 특징으로 하는 내장형 소프트웨어의 테스트 컴포넌트 자동생성 방법.5. The method of claim 4,
The meta-AspectJ add-on includes receiving a meta program code,
Invoking the Unparse method of Meta-AspectJ,
Parsing meta-program code of Meta-AspectJ to generate executable code,
Determining whether the code generation result is successful,
Wherein the test component file is generated and stored if the code generation result is determined to be successful, and if failure is determined, the cause of the generation failure is displayed on the screen.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100124937A KR101452546B1 (en) | 2010-12-08 | 2010-12-08 | system for generating test component of embedded software and method for generating test component using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100124937A KR101452546B1 (en) | 2010-12-08 | 2010-12-08 | system for generating test component of embedded software and method for generating test component using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120063796A KR20120063796A (en) | 2012-06-18 |
KR101452546B1 true KR101452546B1 (en) | 2014-10-21 |
Family
ID=46684126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100124937A KR101452546B1 (en) | 2010-12-08 | 2010-12-08 | system for generating test component of embedded software and method for generating test component using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101452546B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102026662B1 (en) | 2013-04-22 | 2019-09-30 | 삼성전자 주식회사 | Apparatus and method for generating test case for processor verification and, verification apparatus |
-
2010
- 2010-12-08 KR KR1020100124937A patent/KR101452546B1/en not_active IP Right Cessation
Non-Patent Citations (3)
Title |
---|
김영길, "UML 기반 통합 테스팅에 관한 연구", 2006년12월 충주대학교 논문집, pp.369-373 * |
김종필, 홍장의, "임베디드 소프트웨어의 동적 테스팅을 위한 Aspect 컴포넌트의 설계", 임베디드공학 추계학술대회, pp.236-239, 2007 * |
허승현, 최은만,"관점지향 프로그래밍을 이용한 컴포넌트의 테스트 프로시저 모듈화 방안", 2006 한국컴퓨터종합학술대회 논문집 Vol. 33, No. 1(c), 2006.6 * |
Also Published As
Publication number | Publication date |
---|---|
KR20120063796A (en) | 2012-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6698012B1 (en) | Method and system for testing behavior of procedures | |
US8990779B2 (en) | Response time measurement system and method | |
CN104636254A (en) | Method and device for generating test case, testing method and testing equipment | |
US20070061641A1 (en) | Apparatus and method for generating test driver | |
US9317405B2 (en) | Test double generation | |
TW201312340A (en) | Handheld electronic device testing system and method | |
CN107329889B (en) | Method for automatically testing C compiler | |
US8140315B2 (en) | Test bench, method, and computer program product for performing a test case on an integrated circuit | |
Yang et al. | Specification-based test repair using a lightweight formal method | |
US20110029953A1 (en) | System and Method for Scalable Handling of Debug Information | |
Xie et al. | Automated test generation for AspectJ programs | |
US20080127061A1 (en) | Method and system for editing code | |
KR101452546B1 (en) | system for generating test component of embedded software and method for generating test component using the same | |
Stefanescu et al. | Using the UML testing profile for enterprise service choreographies | |
Naslavsky et al. | Towards traceability of model-based testing artifacts | |
CN117435483A (en) | Form tool-based simulation verification excitation generation method, device, medium and terminal | |
Naslavsky et al. | Using traceability to support model-based regression testing | |
CN115034165A (en) | Chip simulation verification method, system, equipment and storage medium | |
Massicotte et al. | Generating aspects-classes integration testing sequences a collaboration diagram based strategy | |
JP2005174045A (en) | Source program conversion device, source program conversion method, source program conversion program and program recording medium | |
Bhasin et al. | Software Architecture Based Regression Testing | |
Ramirez et al. | Verifying and analyzing adaptive logic through uml state models | |
Shukla et al. | Tool support for statistical testing of software components | |
EP1970810A2 (en) | Program creation support | |
El-Maddah et al. | The GOPCSD tool: An integrated development environment for process control requirements and design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170928 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |