KR101648307B1 - 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법 - Google Patents

임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법 Download PDF

Info

Publication number
KR101648307B1
KR101648307B1 KR1020150074293A KR20150074293A KR101648307B1 KR 101648307 B1 KR101648307 B1 KR 101648307B1 KR 1020150074293 A KR1020150074293 A KR 1020150074293A KR 20150074293 A KR20150074293 A KR 20150074293A KR 101648307 B1 KR101648307 B1 KR 101648307B1
Authority
KR
South Korea
Prior art keywords
log information
log
unit test
objective function
information
Prior art date
Application number
KR1020150074293A
Other languages
English (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 KR1020150074293A priority Critical patent/KR101648307B1/ko
Application granted granted Critical
Publication of KR101648307B1 publication Critical patent/KR101648307B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 대상 임베디드 장치를 구동하기 위해 상기 장치 내 저장된 소프트웨어의 각각의 함수에 대한 단위 테스트를 수행하는 과정에서 함수수행경로에 대응하는 로그정보들 중에서, 중복되는 로그정보들은 폐기하여, 저장되는 로그정보의 양을 최소화하고, 임베디드 소프트웨어의 테스트 커버리지를 높일 수 있는 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법에 관한 것이다.
상기한 본 발명에 의하면, 종래의 기술보다 로그정보를 저장할 리소스를 최소화할 수 있으며, 적은 양의 로그정보만으로도 임베디드 소프트웨어 장치의 모든 수행 경로와 그 결과를 확인할 수 있는 효과가 있다.

Description

임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법{Log-based testing system and method for unit testing of Embedded software}
본 발명은 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 대상 임베디드 장치에 저장된 소프트웨어의 각각의 함수에 대한 단위 테스트를 수행하는 과정에서 저장되는 로그정보의 양을 최소화하는 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법에 관한 것이다.
임베디드 시스템은 하드웨어와 소프트웨어간의 높은 의존성을 지니고 있어, 소프트웨어의 수행을 위해서는 센서 및 엑추에이터(actuator) 등의 하드웨어를 통한 주변 환경과의 피드백(feedback)이 필요하다. 이러한 폐쇄 회로 (closed loop)의 피드백 환경이 제공되어야만 소프트웨어의 수행이 가능하기에, 임베디드 소프트웨어의 테스팅 기법에는 ① SW(Software) 가상 수행 환경 기반의 SiL(Software-in-the-Loop) 테스팅, ② 실물 프로토 타입 기반의 HiL(Hardware-in-the-Loop), ③ 가상 프로토 타입(Virtual Prototype; VP) 환경 기반의 VP 테스팅, ④ 실제 환경에서의 로그 기반 테스팅 등이 있다.
SiL, HiL, VP 기반의 테스팅 기법은 PC 또는 실물 HW(Hardware) 환경에서 가상 또는 실물 수행 환경을 구축하여 대상 소프트웨어를 수행하면서 테스트하는 기법으로 임베디드 소프트웨어의 초기 개발 단계부터 많이 사용되고 있는 대표적인 임베디드 소프트웨어 테스트 기법이다. 하지만, 이러한 테스트 기법들의 적용이 쉽지 않은 이유는 가상 수행환경을 구축하는 것이 추가적인 비용과 시간이 소요되는 어려운 일이기 때문이다. 즉, VP 기반에서는 VP의 설계 및 구현, 에뮬레이션을 위한 테스트 환경을 구축하여야 하고, HiL 기반의 테스팅에서는 하드웨어 기반의 테스팅 환경을 구축하여야 함으로 인해 많은 부가적인 노력이 필요하게 된다.
이에 반하여 플랜트 기반 테스팅 기법의 하나인 로그 기반 테스팅 기법은 실제 수행 환경에서 테스팅이 이루어지므로 가상 환경을 구축할 필요가 없으며, 로그 생성에 필요한 최소한의 명령 코드만을 대상 장치에 설치하여 그로부터 생성되는 로그정보를 이용하여 장치의 수행과정 및 결과를 확인한다.
일반적으로 로그 기반 테스팅 기법은 대상 장치에서 생성된 로그정보를 분석하여 의미 있는 행위를 추출하는 방식이다. 하지만 대상 장치에 추가된 명령 코드와 로그 저장 메모리 등의 리소스(resource)를 사용하여야 함으로 리소스가 부족한 임베디드 시스템에는 적용하기에는 어려움이 있었다.
한국등록특허 제10-0834915호 (2008. 05. 28 등록)
본 발명은 상술한 종래기술의 문제점을 극복하기 위한 것으로서, 대상 임베디드 장치에 저장된 소프트웨어의 각각의 함수에 대한 단위 테스트를 수행하는 과정에서 함수수행경로(path)에 대응하는 로그(log)정보들 중 중복되는 로그정보들은 폐기하여, 저장되는 로그정보의 양을 최소화하고, 리소스를 최소로 활용하면서도 대상 장치의 임베디드 소프트웨어의 테스트 커버리지(coverage)를 높일 수 있는 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법을 제공하는데 그 목적이 있다.
상기한 목적을 달성하기 위한 본 발명은, 장치를 구동시키는 소프트웨어가 저장되고, 상기 소프트웨어로부터 추출된 로그정보를 분석장치로 전달하는 대상 임베디드 장치; 및 상기 대상 임베디드 장치로부터 전달 받은 상기 로그정보 중에서 일정한 로그 정보만을 선택해서 저장하고, 나머지 로그정보는 폐기하는 분석장치;를 포함하는 장치를 제공한다.
상기 로그정보는, 상기 소프트웨어를 구성하는 하나 이상의 단위 테스트(unit test) 목적함수(function)의 호출정보; 상기 단위 테스트 목적함수의 호출 과정에서 상기 단위 테스트 목적함수로 전달되는 인자 정보; 및 상기 단위 테스트 목적함수가 수행되어 얻은 결과값;을 포함한다. 또한, 상기 로그정보는, 상기 대상 임베디드 장치에 저장된 상기 소프트웨어에 소정의 명령코드를 삽입하여 상기 단위 테스트 목적함수로부터 추출되는 것이 특징이다.
상기 분석장치는, 상기 대상 임베디드 장치로부터 전달 받은 상기 로그정보를 임시적으로 저장하는 로그 큐(queue of log); 상기 대상 임베디드 장치로부터 상기 단위 테스트 목적함수의 명령코드를 전달 받으면, 상기 단위 테스트 목적함수의 명령코드로부터 제어흐름그래프(control flow graph) 및 그래프구조정보를 생성하는 코드 분석기(code analyzer); 상기 로그정보와 상기 그래프구조정보를 입력 받아서 상기 단위 테스트 목적함수의 수행경로를 찾아낸 후, 상기 함수수행경로에 대응하는 상기 로그정보 중에서 일정한 로그정보만을 선택하는 로그 분석기(log analyzer); 및 상기 로그 분석기가 선택한 상기 일정한 로그정보를 저장하는 저장부;를 포함한다.
상기 제어흐름그래프는, 상기한 단위 테스트 목적함수가 수행될 때, 상기 단위 테스트 목적함수로 전달되는 인자 정보의 값에 상관없이, 상기 단위 테스트 목적함수가 수행되는 일정한 순서 및 경로를 나타내고, 상기 그래프구조정보는, 상기 제어흐름그래프를 표현하는 XML (Extensible Markup Language) 기반의 파일 형식으로 되어 있고, 상기 제어흐름그래프 구조에 관한 정보를 전달하는데 이용된다.
상기 로그 큐는, 상기 로그정보를 상기 로그 분석기로 전달하고, 상기 임시 저장된 로그정보를 삭제하는 것을 특징으로 하며, 상기 로그 분석기는, 상기 로그정보와 상기 그래프구조정보를 전달 받으면, 상기 단위 테스트 목적함수마다 ID를 부여하고, 상기 단위 테스트 목적함수의 ID별로 상기 로그정보 중에서 상기 함수수행경로에 대응하는 로그정보를 선택하는 과정에서 상기 함수수행경로에 대응하는 다른 로그정보가 이미 상기 저장부에 저장되어 있는 경우에는, 중복되는 로그정보를 선택하지 않고 폐기하는 것을 특징으로 한다.
그리고 본 발명은, (a) 대상 임베디드 장치의 저장된 소프트웨어에 소정의 명령코드가 삽입되는 단계; (b) 상기 소프트웨어로부터 로그정보를 추출하는 단계; (c) 상기 대상 임베디드 장치가 상기 추출한 로그정보를 분석장치로 전달하는 단계; (d) 상기 분석장치의 코드 분석기가 상기 단위 테스트 목적함수의 명령코드로부터 제어흐름그래프 및 그래프구조정보를 생성하는 단계; (e) 상기 분석장치의 로그 분석기가 상기 로그정보와 상기 그래프구조정보를 입력 받으면 상기 단위 테스트 목적함수의 수행경로를 찾아서 상기 로그정보 중에 상기 함수수행경로에 대응하는 일정한 로그정보만을 선택하고, 나머지 로그정보는 폐기하는 단계; 및 (f) 저장부가 상기 선택된 일정한 로그정보를 저장하는 단계;를 포함하는 방법을 제공한다.
상기 로그정보는, 상기 소프트웨어를 구성하는 하나 이상의 단위 테스트 목적함수의 호출정보; 상기 단위 테스트 목적함수의 호출 과정에서 상기 단위 테스트 목적함수로 전달되는 인자 정보; 및 상기 단위 테스트 목적함수가 수행되어 얻은 결과값;을 포함한다.
상기 분석장치는, 상기 대상 임베디드 장치로부터 전달 받은 상기 로그정보를 로그 큐에 임시로 저장하는 것을 특징으로 한다.
상기 제어흐름그래프는, 상기한 단위 테스트 목적함수가 수행될 때, 상기 단위 테스트 목적함수로 전달되는 인자 정보의 값에 상관없이, 상기 단위 테스트 목적함수가 수행되는 일정한 순서 및 경로를 나타내고, 상기 그래프구조정보는, 상기 제어흐름그래프를 표현하는 XML 기반의 파일 형식으로 되어 있고, 상기 제어흐름그래프 구조에 관한 정보를 전달하는데 이용된다.
상기 로그 큐는, 상기 로그정보를 상기 로그 분석기로 전달하고, 상기 로그정보를 상기 로그 큐에서 삭제하며, 상기 로그 분석기는, 상기 로그정보와 상기 그래프구조정보를 전달 받으면, 상기 단위 테스트 목적함수마다 ID를 부여하고, 상기 단위 테스트 목적함수의 ID별로 상기 로그정보 중에서 상기 함수수행경로에 대응하는 로그정보를 선택하는 과정에서 상기 함수수행경로에 대응하는 다른 로그정보가 이미 상기 저장부에 저장되어 있는 경우에는, 중복되는 로그정보를 선택하지 않고 폐기하는 것을 특징으로 한다.
상기한 본 발명에 의하면, 종래의 기술보다 로그 정보를 저장할 리소스를 최소화할 수 있고, 적은 양의 로그 데이터만으로도 임베디드 소프트웨어 장치의 모든 수행 경로와 그 결과를 확인할 수 있는 효과가 있다.
도 1은 본 발명의 바람직한 실시 예에 따른 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 방법을 설명하는 도면.
도 2는 본 발명의 바람직한 실시 예에 따른 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치를 나타내는 블록 구성도.
도 3은 본 발명의 바람직한 실시 예에 따른 단위 테스트 목적함수의 호출과 로그정보를 수집하는 과정을 설명하는 도면.
도 4는 본 발명의 바람직한 실시 예에 따른 제어흐름그래프 및 그래프구조정보를 나타내는 도면.
도 5는 본 발명의 바람직한 실시 예에 따른 로그 분석기의 작동 원리를 설명하는 도면.
도 6은 본 발명의 바람직한 실시 예에 따른 단위 테스트 목적함수의 수행경로에 대응하는 로그정보들이 저장되는 테이블을 나타내는 도면.
도 7은 본 발명의 바람직한 실시 예에 따른 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 방법을 설명하는 흐름도.
본 발명은 대상 임베디드 장치에 저장된 소프트웨어의 각각의 함수에 대한 단위 테스트를 수행하는 과정에서 함수수행경로에 대응하는 로그정보들 중 중복되는 로그정보들은 폐기하여, 저장되는 로그정보의 양을 최소화하고, 리소스를 최소로 활용하면서도 대상 장치의 임베디드 소프트웨어의 테스트 커버리지를 높일 수 있도록 하는 것을 기본적인 기술적 요지로 한다.
그리고 본 발명에 따른 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법은 소프트웨어의 함수 단위로 이루어지므로 그 대상을 전역변수가 없는 모듈화된 프로그램으로 한정하여 설명할 것이다.
이하, 본 발명에 따른 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법의 바람직한 실시 예들을 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 바람직한 실시 예에 따른 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅의 수행 목적을 설명하는 도면이다.
본 발명에 따른 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 방법은 일반적인 임베디드 단위 테스팅 기법과 다르게 사용자가 테스트를 주도할 수 없고, 예상되는 값을 가지고 실제 수행결과와 비교하는 과정도 없다. 일반적인 테스팅 과정에서 지속적으로 생성되는 로그정보는 각각의 의미 분석으로도 의미가 있지만, 로그정보의 조합을 이용하면 더욱 값진 정보를 얻을 수 있다.
본 발명에 따른 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 방법은, 단위 테스트를 수행하는 과정에서 생성되는 로그정보를 분석하여 대상 임베디드 장치의 소프트웨어를 테스트하는 과정을 보조하는 방법으로 정의할 수 있다.
도 1에서 도시한 바와 같이, 본 발명에 따른 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 방법은 단위 테스트 수행 과정(s10)에서 생성된 로그정보(1)와 테스트 결과(2)를 분석하여(s20) 다음 입력 데이터(3) 즉, 차후에 있을 테스트 케이스(case)를 선정하는데 필요한 정보로 사용된다. 생성된 로그정보(1) 자체로부터 테스트 수행의 성공과 실패 여부를 알기는 어렵지만, 각 시스템 테스팅 결과에 따라 로그정보(1)로부터 분석, 수집된 수행경로들을 구분하거나, 각 수행경로 별 시스템 테스팅의 결과 비율을 추출하는 것은 가능하다. 그러한 각 경로 별 결과는 차후에 있을 테스트에서 우선적으로 확인해야 할 수행경로를 판단하는데 도움을 줄 수 있다.
도 2는 본 발명의 바람직한 실시 예에 따른 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치를 설명하는 블록 구성도이다.
도2에서 도시한 바와 같이, 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치에는 대상 임베디드 장치(10) 및 분석장치(20)이 포함된다.
대상 임베디드 장치(10)는, 상기 대상 임베디드 장치(10)를 구동시키는 소프트웨어가 저장되어 있고, 상기 소프트웨어로부터 추출되는 로그정보를 분석장치(11)로 전달한다. 상기 로그정보는 상기 소프트웨어를 구성하는 하나 이상의 단위 테스트 목적함수의 호출정보, 상기 호출과정에서 상기 단위 테스트 목적함수로 전달되는 인자 정보 및 상기 단위 테스트 목적 함수가 수행되면 얻게 되는 결과값을 포함하지만, 소프트웨어 내 단위 테스트 목적함수의 수행경로를 알아내기 위한 여타의 정보도 가능하다고 할 것이다. 상기 로그정보는 단위 테스트 목적함수의 상태 변화를 추정할 수 있는 근거가 될 수 있다.
상기 로그정보에 대하여는 도3을 통해 구체적으로 살펴보도록 한다.
도 3은 본 발명의 바람직한 실시 예에 따른 단위 테스트 목적함수의 호출과 로그정보를 수집하는 과정을 설명하는 도면이다. 즉, 대상 임베디드 장치를 구동시키는 소프트웨어를 구성하고 있는 목적함수들 중 일부 함수가 호출되고, 호출에 따라 수행되면서 생성되는 로그정보들을 나타낸다.
도3에서 도시하는 바와 같이, 예를 들어 METHOD_A 함수가 수행되는 도중에 METHOD_B 함수를 호출하게 되고, 그에 따라서 METHOD_B 함수가 수행되면, METHOD_B 함수의 호출정보, METHOD_B 함수의 인자 arg1, arg2 및 METHOD_A 함수에서 METHOD_B 함수를 호출한 지점으로 전달되는 결과값들이 METHOD_B 함수에 관한 로그정보로 저장된다.
임베디드 소프트웨어 단위 테스트 대상으로부터 로그정보를 수집하기 위해서는 먼저 대상 임베디드 장치(10)에 로그정보를 추출할 수 있는 소정의 명령코드를 삽입할 수 있다. 특별히 관점지향 프로그래밍(Aspect Oriented Programming, AOP) 기반의 삽입방법과 사용자에 의하여 대상 임베디드 장치(10)에 수동적으로 로그정보 추출 명령코드를 삽입하는 방법이 있다. 그러나 상기 로그정보 추출방법은 예시에 불과하며, 이에 국한되지 않는다.
기존 프로그램은 주요 기능을 기반으로 함수(function) 혹은 클래스(class)들이 구성된다. 하지만 본 발명에 따른 로깅(logging) 기능처럼, 일부의 기능은 프로그램 전체에 걸쳐 여러 기능 사이에 동작되어야 한다. 관점지향 프로그래밍 기법은 이와 같이 구조적으로 정의된 행위와 더불어 시스템 전체에 걸쳐져 있는 기능을 효과적으로 정의하는 방법을 보인다. 예를 들어, 크게 3가지 기능을 가진 프로그램에서 로깅과 트랜젝션(transaction)과 같이 각각의 기능수행 도중에 함께 수행되어야 하는 로직을 선보이게 된다. 관점 지향 프로그래밍에서는 이러한 부가적인 기능을 횡단 관심사로 정의하고 이러한 코드들이 효과적으로 프로그램 중간에 삽입되어 수행되게 함으로써 설계와 구현 및 유지 보수의 편의를 가져올 수 있다.
이를 위하여 관점 지향 프로그램에서는 각각의 주 기능 사이에 수행될 부분을 어드바이스(advice)로 이들이 수행될 수 있는 모든 부분을 조인 포인트(join point)로 정의하고 그 중에서 실제로 어드바이스가 수행되는 부분을 포인트 컷(point cut)으로 명시하여 직접 코드를 수정하는 일 없이 주 기능과 보조 기능을 명확하게 분리한다. 이러한 관점 지향 프로그래밍 기법은 비록 지원되는 환경이 필요하다는 한계를 가지지만 주 기능인 종단 관심사와 로그정보와 같이 보조적으로 주 기능의 여러 부분에서 수행되는 횡단 관심사를 분리하여 정의 구현되고, 각각의 횡단 관심사와 종단 관심사가 만나는 점을 간단한 선언으로 정의할 수 있다.
소정의 로그정보 추출 명령코드를 직접 삽입하는 방법은 일반적으로 관점 지향 프로그래밍 기법을 적용할 수 없는 환경이거나, 대상 임베디드 장치(10)의 하드웨어 사양이 매우 낮은 경우에 사용한다. 기본적으로 함수의 정의 부분에 추가되며 해당 함수 내부에서 호출되는 모든 함수 중 ‘plus’와 같은 경우처럼 출력용 호출문을 제외한 호출문에 로그정보를 추출하는 명령코드를 추가하여야 한다.
다음으로 분석 장치(20)는, 상기 대상 임베디드 장치(10)로부터 전달 받은 상기 로그정보를 일정한 프로세스로 분석한다. 즉, 상기 대상 임베디드 장치(10)로부터 전달 받은 상기 로그정보들 중에서 일정한 로그정보만을 선택하고, 나머지 로그정보는 폐기한다.
이러한 분석 장치의 구성을 더 구체적으로 살펴보면, 상기 분석장치(20)에는 코드 분석기(21), 로그 분석기(22), 로그 큐(23) 및 저장부(24)가 포함된다.
코드 분석기(21)는, 단위 테스트 목적함수의 대표 수행경로를 파악하기 위하여 대상 임베디드 장치(11)로부터 단위 테스트 목적함수의 명령코드(instruction code)를 전달 받으면, 상기 단위 테스트 목적함수의 명령코드로부터 제어흐름그래프(control flow graph) 및 그래프구조정보를 생성한다.
상기 제어흐름그래프는, 상기 단위 테스트 목적함수가 수행될 때 상기 단위 테스트 목적함수에 전달되는 인자들이 어떠한 값을 가지는 가에 상관 없이 단위 테스트 목적함수가 수행되는 대표적인 경로 혹은 수행 순서를 나타낸다. 상기 제어흐름그래프는 디스플레이 장치(미도시)를 통해 사용자에게 표시되며, 그리하여 사용자로 하여금 경로분석을 할 수 있도록 해준다.
상기 그래프구조정보는, 상기 제어흐름그래프를 표현하는 XML(Extensible Markup Language) 기반의 파일 형식으로 되어 있고, 상기 제어흐름 그래프 구조에 관한 정보를 상기 로그 분석기로 전달하는데 이용된다.
상기 제어흐름그래프와 그래프구조정보에 대하여는 도4를 통해 구체적으로 살펴보도록 한다.
도 4는 본 발명의 바람직한 실시 예에 따른 제어흐름그래프 및 그래프구조정보를 나타내는 도면이다. 즉, 함수의 명령어 코드로부터 제어흐름그래프를 생성하는 도구 중 대표적인 도구인 Dr. Garbage Tools에 의해 생성된 제어흐름그래프와 그래프구조정보를 나타낸다.
도4에서는 정수값(integer value)을 입력 받은 후, 그 부호에 따라 3가지 형태의 결과를 출력하는 단위 테스트 목적함수의 명령코드로부터 수행경로 및 GraphXML을 출력한 실시 예를 보여준다.
Dr. Garbage Tools은 이클립스 플러그인 형태의 Bytecode Visualizer, Source Code Visualizer 및 Control Flow Graph Factory의 세 가지 도구로 이루어진 코드분석도구이다. 그 중 Control Flow Graph Factory는 자바 바이트 코드로부터 바이트 코드 그래프, 소스코드 그래프, 기본 블록 그래프 등의 3가지 종류의 그래프를 생성하고, GraphXML 및 DOT언어 형태로 그래프구조정보를 출력하는 기능을 가진다. 본 발명의 바람직한 실시 예에 따르면 경로 분석을 위하여 GraphXML를 이용하고, 전체 경로 중에 수행된 해당 경로를 표시하기 위해 DOT 형태의 결과물을 이용할 수 있다.
도4a는 Dr. Garbage Tools에 의해 생성된 제어흐름그래프의 한 예를 나타내고, 도4b는 Dr. Garbage Tools에 의해 생성된 제어흐름그래프를 표현하는 XML 기반의 파일 형식으로 된 그래프구조정보의 한 예를 나타낸다. 상기 제어흐름그래프는 단위 테스트를 실시할 함수의 시작과 종료 및 그 두 지점을 잇는 여러 가지 수행경로를 나타내고 있으며, 상기 그래프구조정보는 생성된 제어흐름그래프에 대한 GraphXML 및 DOT언어 형태로 출력된 정보를 의미한다.
로그 큐(23,31)는 대상 임베디드 장치(10)에서 생성된 로그정보를 전달받는다. 상기 로그 큐(23,31)는 상기 로그정보를 일시적으로 저장하는 역할을 수행하는데, 상기 로그정보를 로그 분석기(22)로 전달하게 되면, 로그 큐(23)에 저장된 상기 로그정보는 삭제된다.
로그 분석기((22)는 상기 단위 테스트 목적함수마다 ID를 부여하고, 상기 단위 테스트 목적함수의 로그정보와 제어흐름그래프를 입력 받아서 단위 테스트 목적함수의 수행경로를 찾아낸다. 그리고 상기 단위 테스트 목적함수의 ID 별로 상기 함수수행경로에 대응하는 상기 로그정보를 선택하는 과정에서 상기 함수수행경로에 대응하는 다른 로그정보가 이미 상기 저장부(24)에 저장되어 있는 경우에는 상기 로그정보를 선택하지 않고 폐기한다.
더욱 상세하게는, 도5를 참조하여 로그 분석기(22)를 설명하고자 한다.
도5는 본 발명의 바람직한 실시 예에 따른 로그 분석기의 작동 원리를 설명하는 도면이다.
도 5에서 도시한 바와 같이, 로그 큐(23,31)은 대상 임베디드 장치(10)로부터 수신한 로그정보를 일시적으로 저장한다. 로그 큐(23,31)에 일시적으로 저장된, 단위 테스트 목적함수의 호출정보와 상기 단위 테스트 목적함수로 전달되는 인자정보에 해당하는 로그정보 ‘Type H’는 코드 분석기(21)에서 생성된 제어흐름그래프와 함께 로그 분석기(22) 내에 존재하는 코드 수행기(code executor, 32)에서 취합되고, 해당되는 함수수행경로의 번호(path number)로 표시된다. 마찬가지로 로그 큐에 일시적으로 저장된 상기 단위 테스트 목적함수의 수행 결과값(result)을 의미하는 로그정보 ‘Type T’는 쌍을 이루는 로그정보 ‘Type H’와 함께 단위 테스트 목적 함수 ID 별로 결과 테이블에 저장되며, 이러한 분석과정은 함수수행경로와 결과값 쌍이 각 단위 테스트 목적함수의 순환복잡도(cyclomatic complexity) 값을 만족할 때까지 계속된다.
하나의 로직(logic)은 그 내부의 분기 혹은 반복 구조에 따라 여러 가지의 경로로 수행 가능하다. 예를 들어 노드 A로부터 노드 B까지 2개의 경로, 노드 B로부터 노드 C까지 다시 2개의 경로가 존재한다면, 노드 A부터 노드 C까지 수행 가능한 모든 경로의 수는 2 x 2 = 4, 즉, 4가지가 되는 것을 알 수 있다. 하지만 이러한 방법은 대상 임베디드 장치(10)에서 나올 수 있는 모든 경로를 찾는다는 관점에서는 의미가 있지만, 테스팅을 수행하는 관점에서는 모든 경로를 테스트할 수 없다는 점에서 효율적인 방법이라 할 수 없다. 그리하여 순환 복잡도는 상기와 같은 문제점을 해결하는 대표적인 방법이다. 순환 복잡도의 기본적인 식은 아래와 같다.
[수학식 1]
순환 복잡도 = 에지(edge)의 수 ? 노드(node)의 수 + 2
예를 들어, 상기 공식을 기반으로 하여 가장 간단한 형태, 즉 시작 노드 A와 종료 노드 C 그리고 그 사이에 중간 노드 B가 있고, A와 B, B와 C가 각각 하나의 에지로 연결된다고 할 때, 순환 복잡도는 ‘2 ? 3 + 2 = 1’에 따라서 1이 된다. 순환복잡도는 새로운 에지 혹은 새로운 경로가 하나 추가될 때마다 증가한다. 이는 특정 제어흐름그래프에서 가능한 모든 경로가 아닌 최소한 한 번 이상의 에지를 모두 수행하고 싶을 때 그 수행횟수가 바로 순환복잡도가 됨을 알 수 있다.
대상 임베디드 장치(10)로부터 생성된 로그정보는 로그 분석기(22)에서 실시간으로 분석된다. 이 과정에서 중복되는 로그정보가 없는지 단위 테스트 목적함수의 커버리지가 달성되었는지 확인한다
상기 로그정보가 분석장치(20)로 전송되면 상기 분석장치(20)의 로그 분석기(22)는 먼저 상기 단위 테스트 목적함수의 로그정보를 이용하여 코드 수행기(32)를 통해 단위 테스트 목적함수를 수행한다. 각각의 단위 테스트에서 추출된 함수수행경로를 이미 저장부(24)에 저장된 함수수행경로와 비교하여 중복되는 것을 제거하여 중복되지 않은 경로의 수가 커버리지를 달성하는지를 확인하는 과정을 거친다. 아직 커버리지가 달성되지 않았다면, 해당 단위 테스트 목적함수의 로그정보 분석을 계속 진행하고, 그것이 아니면 해당 단위 테스트 목적함수의 로그정보 분석을 중단한다.
코드 커버리지(Code coverage)는 동적 테스트 과정에서 테스트가 충분한 정도를 객관적으로 평가하기 위해 사용되는 지표이다. 널리 알려진 것처럼 코드 커버리지는 테스트 과정에서 명령코드의 실행 정도를 측정하는 것을 의미한다.
저장부(24)는 로그 분석기(22)에서 선택된 로그정보들을 전달 받아서 저장한다. 상기 저장부(24)에서 상기 로그정보가 저장되는 형태는 도 6에서 도시한 바와 같은 형태의 결과 테이블이 될 수 있다.
도6는 본 발명의 바람직한 실시 예에 따른 단위 테스트 목적함수의 수행경로에 대응하는 로그정보들이 저장되는 테이블을 나타내는 도면이다.
도 6에서 도시한 바와 같이, 저장부(24)에서는 테이블의 형태로 로그 분석기(22)로부터 선택된 로그정보들을 단위 테스트 목적함수의 ID별로 대응하는 함수수행경로번호와 쌍으로 저장할 수 있다.
결과 테이블의 첫 번째 행을 살펴보건대, 0x01은 단위 테스트 목적함수 중 하나로 볼 수 있는 Method_A 함수의 ID에 해당하고, CC는 순환복잡도를 의미하며, Path는 경로의 번호, Result는 단위 테스트 목적함수의 수행 결과값을 나타낸다. 다만, 이는 저장부(24)에 저장되는 로그정보 형태의 일 실시 예에 불과하며 로그정보가 저장되는 형태는 이에 국한되지 않는다.
이상, 본 발명의 바람직한 실시 예에 따른 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치에 대하여 설명하였으며, 이하에서는 도7를 참조하여 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 방법에 대하여 살펴보고자 한다.
도 7은 본 발명의 바람직한 실시 예에 따른 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 방법을 설명하는 흐름도이다.
도 7a에서 도시한 바와 같이, 대상 임베디드 장치의 소프트웨어에서 단위 테스트를 위하여, 로그정보를 추출하기 위한 소정의 명령코드가 삽입되면(s100), 상기 소프트웨어로부터 로그정보를 추출할 수 있다(s110). 그리고 나면 대상 임베디드 장치(10)는 상기 생성된 로그정보를 분석장치(20)로 전달하게 될 것이다(s120). 상기 추출된 로그정보는 상기 소프트웨어를 구성하는 하나 이상의 단위 테스트 목적함수의 호출정보, 상기 단위 테스트 목적함수의 호출 과정에서 상기 단위 테스트 목적함수로 전달되는 인자 정보 및 상기 단위 테스트 목적함수가 수행되어 얻은 결과값이 될 수 있으나, 이에 국한되는 것은 아니다. 상기 로그정보는 일시적으로 로그 큐(23)에 저장되었다가, 상기 분석장치(20)의 코드 분석기(21)에서 생성된 제어흐름그래프 및 그래프구조정보(s130)와 함께 상기 분석장치(20)의 로그 분석기(21)로 전달된다. 상기 로그 분석기(21)는 단위 테스트 목적함수의 수행경로를 찾아서 상기 로그정보 중에서 상기 함수수행경로에 대응하는 일정한 로그정보만을 선택하여 이를 저장부(24)에 저장하고, 나머지 로그정보는 폐기하게 된다(s140).
도 7b를 참조하여 단위 테스트 목적함수의 수행경로에 대응하는 로그정보를 저장하는 단계(s140)를 더욱 상세히 살펴보고자 한다.
도 7b에서 도시한 바와 같이, 코드 분석기(21)에서는 대상 임베디드 장치(10)로부터 단위 테스트 목적함수의 명령코드를 전달 받으면, 제어흐름그래프 및 그래프구조정보를 생성하게 되고(s130), 로그 분석기(22)는 제어흐름그래프, 그래프구조정보 및 로그정보를 코드 분석기(21)와 로그 큐(23)로부터 각각 전달 받으면 단위 테스트 목적함수의 수행경로를 탐색하게 되며(s200), 위 과정을 통해 탐색된 단위 테스트 목적함수에 대하여 ID를 부여하게 된다(s210).
상기 단위 테스트 목적함수의 ID별로 상기 로그정보 중에 상기 함수수행경로에 대응하는 로그정보를 선택하는 과정에서(s220), 상기 함수수행경로에 대응하는 다른 로그정보가 이미 저장부(24)에 저장되어 있지 않은 경우에는, 단위 테스트 목적함수 ID 별로 선택된 로그정보를 상기 저장부(24)에 저장하고(s230), 상기 함수수행경로에 대응하는 다른 로그정보가 이미 저장부(24)에 저장되어 있는 경우에는, 중복되는 로그정보는 선택되지 않고 폐기한다(s240).
상기와 같은 본 발명의 바람직한 실시 예에 따른 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법에 의하면 저장되는 로그정보를 최소로 할 수 있으며, 적은 양의 로그정보만으로도 임베디드 소프트웨어 대상장치의 모든 수행경로와 그 결과를 확인할 수 있는 효과가 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 따라서, 이상에서 기술한 실시 예는 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 그러므로 본 발명의 진정한 기술적 보호범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.
10: 대상 임베디드 장치
20: 분석장치
21: 코드 분석기
22: 로그 분석기
23, 31: 로그 큐
24: 저장부
32: 코드 수행기

Claims (11)

  1. 장치를 구동시키는 소프트웨어가 저장되고, 상기 소프트웨어로부터 추출된 로그정보를 분석장치로 전달하는 대상 임베디드 장치; 및
    상기 대상 임베디드 장치로부터 전달 받은 상기 로그정보 중에서 일부 로그 정보만을 선택해서 저장하고, 나머지 로그정보는 폐기하는 분석장치;를 포함하고,
    상기 로그정보는,
    상기 소프트웨어를 구성하는 하나 이상의 단위 테스트(unit test) 목적함수(function)의 호출정보;
    상기 단위 테스트 목적함수의 호출 과정에서 상기 단위 테스트 목적함수로 전달되는 인자 정보; 및
    상기 단위 테스트 목적함수가 수행되어 얻은 결과값;
    을 포함하고,
    상기 분석장치는,
    상기 대상 임베디드 장치로부터 전달 받은 상기 로그정보를 임시로 저장하는 로그 큐(queue of log);
    상기 대상 임베디드 장치로부터 상기 단위 테스트 목적함수의 명령코드를 전달 받으면, 상기 단위 테스트 목적함수의 명령코드로부터 제어흐름그래프(control flow graph) 및 그래프구조정보를 생성하는 코드 분석기(code analyzer);
    상기 로그정보와 상기 그래프구조정보를 입력 받아서 상기 단위 테스트 목적함수의 수행경로(path)를 찾아낸 후, 상기 함수수행경로에 대응하는 상기 로그정보 중에서 일부 로그정보만을 선택하는 로그 분석기(log analyzer); 및
    상기 로그 분석기가 선택한 상기 일부 로그정보를 저장하는 저장부;
    를 포함하는 것을 특징으로 하는 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치.
  2. 제1항에 있어서,
    상기 로그정보는,
    상기 대상 임베디드 장치에 저장된 상기 소프트웨어에 소정의 명령코드를 삽입하여 상기 단위 테스트 목적함수로부터 추출되는 것을 특징으로 하는 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치.
  3. 삭제
  4. 제1항에 있어서,
    상기 제어흐름그래프는,
    상기한 단위 테스트 목적함수가 수행될 때, 상기 단위 테스트 목적함수로 전달되는 인자 정보의 값에 상관없이, 상기 단위 테스트 목적함수가 수행되는 순서 및 경로를 나타내고,
    상기 그래프구조정보는,
    상기 제어흐름그래프를 표현하는 XML (Extensible Markup Language) 기반의 파일 형식으로 되어 있고, 상기 제어흐름그래프의 구조에 관한 정보를 전달하는데 이용되는 것을 특징으로 하는 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치.
  5. 제1항에 있어서,
    상기 로그 큐는,
    상기 로그정보를 상기 로그 분석기로 전달하고, 상기 임시 저장된 로그정보를 삭제하는 것을 특징으로 하는 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치.
  6. 제1항에 있어서,
    상기 로그 분석기는,
    상기 로그정보와 상기 그래프구조정보를 전달 받으면, 상기 단위 테스트 목적함수마다 ID를 부여하고,
    상기 단위 테스트 목적함수의 ID별로 상기 로그정보 중에서 상기 함수수행경로에 대응하는 로그정보를 선택하는 과정에서 상기 함수수행경로에 대응하는 다른 로그정보가 이미 상기 저장부에 저장되어 있는 경우에는, 중복되는 로그정보를 선택하지 않고 폐기하는 것을 특징으로 하는 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치.
  7. (a) 대상 임베디드 장치의 저장된 소프트웨어에 소정의 명령코드가 삽입되는 단계;
    (b) 상기 소프트웨어로부터 로그정보를 추출하는 단계;
    (c) 상기 대상 임베디드 장치가 상기 추출한 로그정보를 분석장치로 전달하는 단계;
    (d) 상기 분석장치의 코드 분석기가 단위 테스트 목적함수의 명령코드로부터 제어흐름그래프 및 그래프구조정보를 생성하는 단계;
    (e) 상기 분석장치의 로그 분석기가 상기 로그정보와 상기 그래프구조정보를 입력 받으면 상기 단위 테스트 목적함수의 수행경로를 찾아서 상기 로그정보 중에 상기 함수수행경로에 대응하는 일부 로그정보만을 선택하고, 나머지 로그정보는 폐기하는 단계; 및
    (f) 저장부가 상기 선택된 일부 로그정보를 저장하는 단계;
    를 포함하는 것을 특징으로 하는 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 방법.
  8. 제 7항에 있어서,
    상기 (b) 단계에서,
    상기 로그정보는,
    상기 소프트웨어를 구성하는 하나 이상의 단위 테스트 목적함수의 호출정보;
    상기 단위 테스트 목적함수의 호출 과정에서 상기 단위 테스트 목적함수로 전달되는 인자 정보; 및
    상기 단위 테스트 목적함수가 수행되어 얻은 결과값;
    을 포함하는 것을 특징으로 하는 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 방법.
  9. 제 7항에 있어서,
    상기 (c) 단계에서,
    상기 분석장치는, 상기 대상 임베디드 장치로부터 전달 받은 상기 로그정보를 로그 큐에 임시로 저장하는 것을 특징으로 하는 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 방법.
  10. 제 7항에 있어서,
    상기 제어흐름그래프는,
    상기한 단위 테스트 목적함수가 수행될 때, 상기 단위 테스트 목적함수로 전달되는 인자 정보의 값에 상관없이, 상기 단위 테스트 목적함수가 수행되는 순서 및 경로를 나타내고,
    상기 그래프구조정보는,
    상기 제어흐름그래프를 표현하는 XML 기반의 파일 형식으로 되어 있고, 상기 제어흐름그래프의 구조에 관한 정보를 전달하는데 이용되는 것을 특징으로 하는 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 방법.
  11. 제 7항에 있어서,
    상기 (e)단계에서,
    로그 큐는, 상기 대상 임베디드 장치로부터 전달 받은 상기 로그정보를 임시로 저장한 후 상기 로그정보를 상기 로그 분석기로 전달하고, 상기 임시 저장된 로그정보를 삭제하며,
    상기 로그 분석기는, 상기 로그정보와 상기 그래프구조정보를 전달 받으면, 상기 단위 테스트 목적함수마다 ID를 부여하고,
    상기 단위 테스트 목적함수의 ID별로 상기 로그정보 중에서 상기 함수수행경로에 대응하는 로그정보를 선택하는 과정에서 상기 함수수행경로에 대응하는 다른 로그정보가 이미 상기 저장부에 저장되어 있는 경우에는, 중복되는 로그정보를 선택하지 않고 폐기하는 것을 특징으로 하는 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 방법.
KR1020150074293A 2015-05-27 2015-05-27 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법 KR101648307B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150074293A KR101648307B1 (ko) 2015-05-27 2015-05-27 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150074293A KR101648307B1 (ko) 2015-05-27 2015-05-27 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR101648307B1 true KR101648307B1 (ko) 2016-08-23

Family

ID=56875628

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150074293A KR101648307B1 (ko) 2015-05-27 2015-05-27 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR101648307B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180051882A (ko) * 2016-11-09 2018-05-17 한국과학기술원 관점 지향 프로그래밍을 활용한 아키텍처 기반의 통합 결함 검출 방법 및 시스템 그리고 도구
KR101945229B1 (ko) * 2016-11-30 2019-02-08 한국철도기술연구원 테스트커버리지 기능을 가진 임베디드 소프트웨어 테스팅 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100834915B1 (ko) 2006-10-20 2008-06-03 삼성전기주식회사 Pc를 이용하여 테스트하기 위한 임베디드 시스템 및 그방법
KR20100031321A (ko) * 2008-09-12 2010-03-22 성균관대학교산학협력단 로봇 소프트웨어 컴포넌트의 계층별 테스트방법
KR20120058753A (ko) * 2010-11-30 2012-06-08 주식회사 케피코 디버거를 이용한 임베디드 소프트웨어 단위 테스트 자동화 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100834915B1 (ko) 2006-10-20 2008-06-03 삼성전기주식회사 Pc를 이용하여 테스트하기 위한 임베디드 시스템 및 그방법
KR20100031321A (ko) * 2008-09-12 2010-03-22 성균관대학교산학협력단 로봇 소프트웨어 컴포넌트의 계층별 테스트방법
KR20120058753A (ko) * 2010-11-30 2012-06-08 주식회사 케피코 디버거를 이용한 임베디드 소프트웨어 단위 테스트 자동화 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
'사물 인터넷 환경을 위한 BitTorrent 알고리즘 기반의 테스트 커버리지 측정기법', 정보처리학회논문지, 컴퓨터 및 통신시스템 제3권제10호(2014.10.) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180051882A (ko) * 2016-11-09 2018-05-17 한국과학기술원 관점 지향 프로그래밍을 활용한 아키텍처 기반의 통합 결함 검출 방법 및 시스템 그리고 도구
KR101905268B1 (ko) * 2016-11-09 2018-10-05 한국과학기술원 관점 지향 프로그래밍을 활용한 아키텍처 기반의 통합 결함 검출 방법 및 시스템 그리고 도구
KR101945229B1 (ko) * 2016-11-30 2019-02-08 한국철도기술연구원 테스트커버리지 기능을 가진 임베디드 소프트웨어 테스팅 장치

Similar Documents

Publication Publication Date Title
US10586053B2 (en) Method for automatically detecting security vulnerability based on hybrid fuzzing, and apparatus thereof
KR101132560B1 (ko) 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법
Korel et al. Application of Dynamic Slicing in Program Debugging.
US20110145653A1 (en) Method and system for testing complex machine control software
CN108073400A (zh) 软件自动化构建方法、服务器及存储介质
US7900198B2 (en) Method and system for parameter profile compiling
JP5208635B2 (ja) プログラミングを支援するための情報処理装置、情報処理システム、プログラミング支援方法およびプログラム
CN111026601A (zh) Java应用系统的监控方法、装置、电子设备及存储介质
CN101268448A (zh) 用于针对软件测试和软件监控进行数据注入和数据提取的动态探测器的方法和系统
US8752007B2 (en) Automatic generation of run-time instrumenter
Santiago et al. An environment for automated test case generation from statechart-based and finite state machine-based behavioral models
KR101722856B1 (ko) 프로그래밍 언어 기반의 plc 자동 테스트 장치
KR101648307B1 (ko) 임베디드 소프트웨어 단위 테스트를 위한 로그 기반 테스팅 장치 및 그 방법
US6502235B1 (en) Apparatus, method, and storage medium for generating input parameter
CN103176903B (zh) MapReduce分布式系统程序的测试方法及设备
CN109120473B (zh) 接口请求框架实现方法、接口测试方法及其对应的装置
KR102042996B1 (ko) 탐침을 이용하지 않는 코드 커버리지 측정 방법 및 장치, 그리고 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
Bedadala et al. Generation of Call Graph for Java Higher Order Functions
JP6228324B2 (ja) 解析装置及び解析方法
CN110362463A (zh) 一种自动挑选测试用例进行回归测试的方法和装置
Fayyad et al. Representing operations procedures using temporal dependency networks
Bangare et al. Automated testing in development phase
CN117520191B (zh) 一种基于程序路径的测试完备性检查方法、设备及存储介质
Butting et al. Shepherding Model Evolution in Model-Driven Development.
Hafemann Fragal Automatic generation of configurable test-suites for software product lines

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190725

Year of fee payment: 4