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 PDF

Info

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
Application number
KR1020100124937A
Other languages
Korean (ko)
Other versions
KR20120063796A (en
Inventor
홍장의
김종필
Original Assignee
충북대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 충북대학교 산학협력단 filed Critical 충북대학교 산학협력단
Priority to KR1020100124937A priority Critical patent/KR101452546B1/en
Publication of KR20120063796A publication Critical patent/KR20120063796A/en
Application granted granted Critical
Publication of KR101452546B1 publication Critical patent/KR101452546B1/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/3696Methods 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

내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템 및 이를 이용한 테스트 컴포넌트 자동 생성 방법{system for generating test component of embedded software and method for generating test component using the same}[0001] The present invention relates to a system and method for automatically generating a test component of embedded software and a method of automatically generating a test component using the same,

본 발명은 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템에 관한 것으로서, 특히 실행시간이나 메모리 사용량에 관련된 요구사항을 효율적으로 테스팅할 수 있는 테스트 컴포넌트를 자동으로 생성하는 방법 및 이를 이용하여 테스트를 수행하는 시스템에 관한 것이다. 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 software requirement unit 20 for an execution time restriction and a memory usage amount have.

그리고, 상기 구성부들의 출력신호 및 데이터를 입력받아 실행시간 제약 테스트 컴포넌트(70)와 메모리 사용량 테스트 컴포넌트(80)를 생성하기 위한, 실행시간 제약 테스트 컴포넌트 생성기(30)와 메모리 사용량 테스트 컴포넌트 생성기(40)와 메타-애스펙 제이 애드-온(Meta-AspectJ Add-on)(60)이 구비되어 있다. The execution time constraint test component generator 30 and the memory usage test component generator 70 for generating the execution time constraint test component 70 and the memory usage test component 80 by receiving the output signals and data of the components, 40 and Meta-AspectJ Add-on 60 are provided.

그리고, 메타-애스펙 제이 애드-온(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 test component generator 30 and the memory usage test component generator 40 receive the program codes and requirements from the test target software 10 and the embedded software requirement unit 20, respectively, And generates the execution time constraint test component 70 and the memory usage test component 80 through the Meta-AspectJ Add-on 60, respectively.

상기 메타-애스펙 제이 애드-온(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 test component generator 30 is for performing the function of automatically generating an execution time constraint test component 70 for testing the execution time constraint related requirements. The memory usage test component generator 40 is for automatically generating a memory usage test component 80 for testing memory usage related requirements.

그리고, 상기 메타-애스펙 제이(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 software requirement unit 20 receives requirements for execution time restriction and memory usage, and receives program codes from the software to be tested 10.

이후에, 상기 실행시간 제약에 대한 요구사항들을 입력받은 실행시간 제약 테스트 컴포넌트 생성기(30)를 통해 실행시간 테스트용 메타 프로그램 코드를 출력한다. Thereafter, the execution time constraint test component generator 30 receives the execution time constraint requirements and outputs the meta program code for the execution time test.

그리고, 상기 메모리 사용량에 대한 요구사항들을 입력받은 메모리 사용량 테스트 컴포넌트 생성기(40)를 통해 메모리 사용량 테스트용 메타 프로그램 코드를 출력한다. The memory usage test component generator 40 receives the memory usage requirements and outputs the meta program code for the memory usage test.

이때, 실행시간 제약 테스트 컴포넌트 생성기(30)와 메모리 사용량 테스트 컴포넌트 생성기(40)는 그 동작이 동시에 또는 순차적으로 이루어질 수 있다. At this time, the execution time constraint test component generator 30 and the memory usage test component generator 40 may be operated simultaneously or sequentially.

다음에, 상기 출력된 메타 프로그램 코드를 관점 지향 프로그래밍에서의 애스펙 코드로 자동 생성하여 실행시간 제약 테스트 컴포넌트(70)와 메모리 사용량 테스트 컴포넌트(80)를 각각 생성한다. Next, the output meta-program code is automatically generated as an optimizing code in viewpoint-oriented programming to generate an execution time constraint test component 70 and a memory usage test component 80, respectively.

상기에서 메타 프로그래밍 기법을 통해 관점 지향 프로그래밍에서의 애스펙 코드로 자동 생성하는 동작은, 상기 메타-애스펙 제이 애드-온(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-AspectJ 50. [

상기 본 발명의 동작에 의해 자동 생성된 실행시간 테스트 컴포넌트(70)와 메모리 사용량 테스트 컴포넌트(80)가 테스팅 과정에서 어떠한 기능을 수행하는지에 대하여 부연 설명하면 다음과 같다. The functions of the execution time test component 70 and the memory usage test component 80, which are automatically generated by the operation of the present invention, in the testing process are as follows.

먼저, 도 2에 도시한 바와 같이, 실행시간 제약사항이나 메모리 사용량에 관련된 요구사항에 대한 테스트를 위해 내장형 소프트웨어의 요구사항부(20)로부터 실행시간 및 메모리 관련 요구사항을 도출한다(S21). First, as shown in FIG. 2, execution time and memory-related requirements are derived from the requirements section 20 of the built-in software in order to test requirements related to execution time constraints and memory usage (S21).

이후, 도출된 요구사항으로 테스트 케이스를 생성한다(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 test driver 21 to operate the configuration modules of the test target software 10, that is, the module 1 10a, the module 2 10b, and the module 3 10c.

이후에 자동 생성된 테스트 컴포넌트가 대상 모듈에 대해서 실행 과정을 모니터링하고 실행결과를 확인하여 테스팅 결과가 정상적인지 아닌지를 판단하여 테스터에게 알려주는 기능을 수행한다. 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 constraint test component 70 or the memory usage test component 80 is the target module (module 1 10a) of the software under test 10, The module 2 10b and the module 3 10c are monitored in step S23a and the test is performed in step 23b and the test result is confirmed in step S23c.

그리고, 테스트 대상 소프트웨어(10)에서 출력된 테스팅 결과가 정상적인지 아닌지를 판단하여 테스터에게 테스트 결과를 알려주는 기능을 수행한다(S24). Then, it is determined whether the test result output from the test target software 10 is normal or not, and the test result is notified to the tester (S24).

이하, 상기 테스트 기능을 갖는 컴포넌트 중, 실행시간 제약 테스트 컴포넌트의 동작 수행 과정에 대하여 설명하면 다음과 같다. 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 constraint test component 70 and the memory usage test component 80. Next, Respectively.

상기 메타-애스펙 제이 애드-온(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 test component generator 30 will be exemplified as follows.

도 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 test component generator 30 receives an execution time constraint derived from a class name to be tested and a requirement, . "Infer" on line number 2 is a metaprogram code template provided by Meta-AspectJ, which can contain information necessary for generating the assertion component. Based on this information, a meta program code The class name received as input is used in the name of the aspec component on line number 4 and as a pointcut on line number 8. The "around" on line number 8 defines the timer for testing execution time constraints and the testing logic do. The last line "unparse (aspectCode)" passes the meta-AspectJ add-on to the meta-AspectJ add-on, which is defined in the "aspectCode" Component 70 is created.

그리고, 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템에서, 메모리 사용량 테스트 컴포넌트 생성기(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 usage test component 80 using Meta-AspectJ Add-on.

본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아니다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다. 따라서, 본 발명의 범위는 설명된 예에 의해서가 아니라 청구범위에 의해서 정해져야 할 것이다.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.
제1항에 있어서,
상기 메타-애스펙 제이 애드-온(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.
내장형 소프트웨어 요구사항부로부터 실행시간 제약과 메모리 사용량에 대한 요구사항들을 각각 입력받고, 테스트 대상 소프트웨어의 프로그램 코드를 입력받아서, 메타 프로그램 코드를 각각 출력하는 제1단계; 및
실행시간 제약 테스트 컴포넌트 생성기와 메모리 사용량 테스트 컴포넌트 생성기로 부터 출력된 상기 메타 프로그램 코드를 입력받아서 관점 지향 프로그래밍에서의 애스펙 코드로 자동 생성하여, 실행시간 제약 테스트 컴포넌트와 메모리 사용량 테스트 컴포넌트를 각각 생성하는 제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.
제3항에 있어서,
상기 메타 프로그래밍 코드를 입력받아서 관점 지향 프로그래밍에서의 애스펙 코드로 자동 생성하는 동작은, 메타-애스펙 제이(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.
제4항에 있어서,
상기 메타-애스펙 제이 애드-온(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.
KR1020100124937A 2010-12-08 2010-12-08 system for generating test component of embedded software and method for generating test component using the same KR101452546B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
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