1 |
1
테스트 대상 멀티스레드 프로그램 및 사용자가 테스트를 위해 제공하는 테스트 입력값을 수신받는 입력부;상기 수신된 테스트 대상 멀티스레드 프로그램 및 상기 수신된 테스트 입력값을 이용하여 커버리지 예측정보를 생성하고, 상기 생성된 커버리지 예측정보를 이용하여 상기 테스트 대상 멀티스레드 프로그램의 테스트를 수행하고, 상기 수행된 테스트의 결과 정보를 산출하는 제어부; 및상기 테스트 대상 멀티스레드 프로그램, 상기 커버리지 예측정보 및 상기 테스트의 결과 정보 중 적어도 하나가 저장되는 저장부;를 포함하고,상기 제어부는,상기 수신된 테스트 대상 멀티스레드 프로그램 및 상기 수신된 테스트 입력값을 이용하여 스레드 스케줄링을 조건으로 표현한 테스트 커버리지를 추정하고, 상기 추정된 테스트 커버리지를 이용하여 커버리지 예측정보를 생성하는 커버리지 예측부; 및상기 생성된 커버리지 예측정보, 상기 테스트 대상 멀티스레드 프로그램 및 상기 테스트 입력값을 이용하여 테스트를 실행하고, 상기 실행된 테스트의 결과 정보를 산출하는 테스트 생성부를 포함하며,상기 커버리지 예측부는,상기 테스트 대상 멀티스레드 프로그램의 데이터 조작 코드 및 동기화 코드 전에 자동으로 탐침을 삽입하고, 상기 삽입된 탐침이 추출하는 프로그램의 동적 정보를 이용하여 실행 모델 데이터(execution model data)를 생성하고,상기 생성된 실행 모델 데이터를 분석하여 상기 스레드 스케줄링으로 달성 가능한 테스트 커버리지 조건의 집합을 추정하며,상기 실행 모델 데이터는,실행 코드 정보, 실행한 명령(operation)의 종류 및 참조한 메모리 주소에 대한 기록을 지시하는 명령의 순열로 지시되며, 상기 테스트 대상 멀티스레드 프로그램의 테스트 입력값에 대한 실행을 구성하는 복수의 스레드로 구성되고,상기 달성 가능한 테스트 커버리지의 추정은,코드 라인의 숫자 조합으로 표현되는 테스트 커버리지 조건을 추정조건에 따라 추정하며,상기 추정조건은,상기 생성된 실행 모델 데이터가 상기 테스트 커버리지 조건에 따라 소스코드 주소 집합과 동일한 액션의 집합을 포함하는 것을 만족시키는 제1 조건;상기 제1 조건을 만족하는 각각의 상기 액션이 상기 테스트 커버리지 조건에 따라 순서대로 연산자 조건을 만족시키는 제2 조건;각각의 상기 액션이 상기 테스트 커버리지 조건에 기술된 피연산자 조건을 만족시키는 제3 조건; 및상기 액션 사이의 동기화 명령에 따른 실행 순서 조건을 검사한 결과, 상기 액션이 인접하여 실행 가능한 것으로 추정되어 상기 실행 순서 조건에 기술된 순서대로 실행이 가능한 것을 만족시키는 제4 조건을 포함하는 것을 특징으로 하는 자동 테스트 생성 장치
|
2 |
2
제 1항에 있어서,상기 테스트 생성부는,상기 테스트 대상 멀티스레드 프로그램의 실행상태 정보, 상기 커버리지 예측정보 및 기 설정된 커버리지 달성정보(achieved coverage information)를 기초로 각 차례에 실행될 스레드 순서를 결정하는 것을 특징으로 하는 자동 테스트 생성 장치
|
3 |
3
제 2항에 있어서,상기 테스트 생성부는,상기 스레드 스케줄링 시점을 기준으로 이전에 달성하지 못한 테스트 커버리지 조건을 달성하게 하는 제1 명령의 스레드를 선택하는 것을 특징으로 하는 자동 테스트 생성 장치
|
4 |
4
제 3항에 있어서,상기 테스트 생성부는,상기 제1 명령의 스레드가 없는 경우, 다음 스레드 스케줄링 시점에서 이전에 달성하지 못한 테스트 커버리지를 달성하도록 하는 동작을 포함하는 제2 명령의 스레드를 선택하는 것을 특징으로 하는 자동 테스트 생성 장치
|
5 |
5
제 4항에 있어서,상기 테스트 생성부는,상기 제1 및 제2 명령의 스레드를 만족하는 스레드가 없는 경우, 현재까지 달성되지 않았지만 향후 달성될 것으로 추정되는 테스트 커버러지 조건들과 가장 연관이 적은 제3 명령의 스레드를 실행하는 것을 특징으로 하는 자동 테스트 생성 장치
|
6 |
6
삭제
|
7 |
7
제 1항에 있어서,상기 테스트 생성부는, 상기 테스트 대상 멀티스레드 프로그램의 데이터 조작 코드, 동기화 명령 코드의 전후에 각 차례에 실행될 스레드 순서를 결정하는 코드 및 현재 실행에서 달성한 테스트 커버리지 조건을 측정하고 기록하는 코드를 삽입하는 것을 특징으로 하는 자동 테스트 생성 장치
|
8 |
8
제 1항에 있어서,상기 테스트 생성부는,상기 테스트 대상 멀티스레드 프로그램의 실행 중간에 스레드 스케줄링을 통제하는 작업을 동적으로 수행하여 상기 스레드 스케줄링을 생성하는 것을 특징으로 하는 자동 테스트 생성 장치
|
9 |
9
컴퓨터 프로세서가 테스트 대상 멀티스레드 프로그램 및 사용자가 테스트를 위해 제공하는 테스트 입력값을 수신받는 단계;상기 컴퓨터 프로세서가 상기 수신된 테스트 대상 멀티스레드 프로그램 및 상기 수신된 테스트 입력값을 이용하여 커버리지 예측정보를 생성하는 단계; 및상기 컴퓨터 프로세서가 상기 생성된 커버리지 예측정보 및 상기 테스트 입력값을 이용하여 상기 테스트 대상 멀티스레드 프로그램의 테스트를 수행하고, 상기 수행된 테스트의 결과 정보를 산출하는 단계를 포함하고,상기 커버리지 예측정보를 생성하는 단계는,상기 테스트 대상 멀티스레드 프로그램의 데이터 조작 코드 및 동기화 코드 전에 자동으로 탐침을 삽입하고, 상기 삽입된 탐침이 추출하는 프로그램의 동적 정보를 이용하여 실행 모델 데이터(execution model data)를 생성하고,상기 생성된 실행 모델 데이터를 분석하여 상기 스레드 스케줄링으로 달성 가능한 테스트 커버리지 조건의 집합을 추정하며,상기 실행 모델 데이터는,실행 코드 정보, 실행한 명령(operation)의 종류 및 참조한 메모리 주소에 대한 기록을 지시하는 명령의 순열로 지시되며, 상기 테스트 대상 멀티스레드 프로그램의 테스트 입력값에 대한 실행을 구성하는 복수의 스레드로 구성되고,상기 달성 가능한 테스트 커버리지의 추정은,코드 라인의 숫자 조합으로 표현되는 테스트 커버리지 조건을 추정조건에 따라 추정하며,상기 추정조건은,상기 생성된 실행 모델 데이터가 상기 테스트 커버리지 조건에 따라 소스코드 주소 집합과 동일한 액션의 집합을 포함하는 것을 만족시키는 제1 조건;상기 제1 조건을 만족하는 각각의 상기 액션이 상기 테스트 커버리지 조건에 따라 순서대로 연산자 조건을 만족시키는 제2 조건;각각의 상기 액션이 상기 테스트 커버리지 조건에 기술된 피연산자 조건을 만족시키는 제3 조건; 및상기 액션 사이의 동기화 명령에 따른 실행 순서 조건을 검사한 결과, 상기 액션이 인접하여 실행 가능한 것으로 추정되어 상기 실행 순서 조건에 기술된 순서대로 실행이 가능한 것을 만족시키는 제4 조건을 포함하는 것을 특징으로 하는 자동 테스트 생성 방법
|
10 |
10
제 9항에 기재된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
|