1 |
1
대상 프로그램(target program)에 포함된 적어도 하나의 연산자(operator) 및 적어도 하나의 피연산자(operand) 중 적어도 하나를 변이(mutate)함으로써 상기 대상 프로그램에 대응하는 변이 프로그램들을 결정하는 단계;상기 변이 프로그램들의 실행 결과에 기초하여, 상기 대상 프로그램에서 미리 설정된 테스트 입력 세트에 의해 테스트되지 않은 구문을 테스트할 수 있는 가이드포스트들(guide posts)을 생성하는 단계;상기 대상 프로그램에 상기 가이드포스트들 각각을 삽입한 가이드 버전의 대상 프로그램들에 의해 테스트 입력을 생성하는 단계; 및 상기 테스트 입력에 기초하여 상기 대상 프로그램을 테스트하는 단계를 포함하고, 상기 테스트 입력을 생성하는 단계는상기 가이드포스트들 각각을 상기 대상 프로그램의 변이 위치 직전에 삽입하는 단계; 및 상기 변이 위치에 대응하는 연산자 및 상기 변이 위치에 대응하는 피연산자 중 적어도 하나가 계산되기 직전에 상기 가이드포스트들 각각을 실행함으로써 상기 가이드 버전의 대상 프로그램들을 생성하는 단계를 포함하는, 대상 프로그램을 테스트하는 방법
|
2 |
2
제1항에 있어서, 상기 변이 프로그램들을 결정하는 단계는상기 대상 프로그램에 포함된 적어도 하나의 연산자 및 적어도 하나의 피연산자 중 적어도 하나를 변이(mutate)하여 상기 변이된 적어도 하나의 연산자 및 상기 적어도 하나의 피연산자 각각에 대응하는 제1 변이 프로그램들을 생성하는 단계; 및 미리 설정된 테스트 입력 세트를 상기 제1 변이 프로그램들에 인가함으로써 상기 제1 변이 프로그램들 중 적어도 일부의 제2 변이 프로그램들을 선택하는 단계를 포함하는, 대상 프로그램을 테스트하는 방법
|
3 |
3
제2항에 있어서, 상기 제1 변이 프로그램들을 생성하는 단계는상기 대상 프로그램에 포함된 적어도 하나의 연산자 및 적어도 하나의 피연산자 중 적어도 하나를 미리 설정된 복수의 변이 연산자들에 의해 변이하여 상기 제1 변이 프로그램들을 생성하는 단계 를 포함하는, 대상 프로그램을 테스트하는 방법
|
4 |
4
제3항에 있어서, 상기 테스트 입력 세트에 따라 상기 대상 프로그램을 실행하여 상기 대상 프로그램의 기준 커버리지를 측정하는 단계를 더 포함하는, 대상 프로그램을 테스트하는 방법
|
5 |
5
제4항에 있어서, 상기 제2 변이 프로그램들을 선택하는 단계는상기 테스트 입력 세트에 따라 상기 제1 변이 프로그램들을 실행하여 상기 제1 변이 프로그램들의 커버리지를 측정하는 단계;상기 기준 커버리지와 상기 커버리지 간의 비교 결과에 기초하여, 상기 제1 변이 프로그램들 중 적어도 일부의 제2 변이 프로그램들을 선택하는 단계를 포함하는, 대상 프로그램을 테스트하는 방법
|
6 |
6
제5항에 있어서, 상기 적어도 일부의 제2 변이 프로그램들을 선택하는 단계는상기 커버리지가 상기 기준 커버리지에 의해 커버되지 않는 적어도 하나의 구문을 포함하는 경우, 상기 커버리지에 대응하는 제1 변이 프로그램을 상기 제2 변이 프로그램들로 선택하는 단계를 포함하는, 대상 프로그램을 테스트하는 방법
|
7 |
7
제1항에 있어서, 상기 가이드포스트들을 생성하는 단계는상기 대상 프로그램에서 미리 설정된 테스트 입력 세트에 의해 테스트되지 않는 구문을 테스트하기 위한 선행 조건들을 추론하는 단계; 및 상기 선행 조건들을 상기 가이드포스트들(guide posts)로 설정하는 단계를 포함하는, 대상 프로그램을 테스트하는 방법
|
8 |
8
제7항에 있어서, 상기 가이드포스트들은상기 선행 조건들이 만족되면 실행되고, 상기 선행 조건들이 만족되지 않는 경우에는 실행이 종료되는, 대상 프로그램을 테스트하는 방법
|
9 |
9
제7항에 있어서, 상기 선행 조건을 추론하는 단계는상기 변이 프로그램들에서 변이된 연산자의 계산 결과를 출력하는 프로브(prove)를 삽입하여 상기 선행 조건을 추론하는 단계를 포함하는, 대상 프로그램을 테스트하는 방법
|
10 |
10
제1항에 있어서, 상기 테스트 입력을 생성하는 단계는상기 가이드 버전의 대상 프로그램들에 컨커릭 테스트를 적용하여 상기 테스트 입력을 생성하는 단계를 포함하는, 대상 프로그램을 테스트하는 방법
|
11 |
11
삭제
|
12 |
12
제10항에 있어서, 상기 컨커릭 테스트를 적용하여 상기 테스트 입력을 생성하는 단계는상기 가이드포스트 이전에 실행되는 분기에 대하여는 깊이 우선 탐색(DFS) 기법에 기초한 컨커릭 테스트를 수행하고, 상기 가이드포스트 이후에 실행되는 분기에 대하여는 무작위 분기 부정 기법에 기초한 컨커릭 테스트를 수행함으로써 상기 테스트 입력을 생성하는 단계를 포함하는, 대상 프로그램을 테스트하는 방법
|
13 |
13
제1항에 있어서, 상기 대상 프로그램의 소스 코드 및 미리 설정된 테스트 입력 세트를 포함하는 정보를 수신하는 단계를 더 포함하는, 대상 프로그램을 테스트하는 방법
|
14 |
14
대상 프로그램을 단일 표현식 레벨에서 변이하여 상기 대상 프로그램에 대응하는 변이 프로그램들을 생성하는 단계;미리 설정된 테스트 입력의 집합을 상기 변이 프로그램들에 인가함으로써 상기 변이 프로그램들 중 커버 범위를 확장하는(coverage increasing) 변이 프로그램들의 집합을 결정하는 단계;상기 변이 프로그램들의 집합의 실행 결과에 기초하여, 상기 대상 프로그램에서 도달하지 못한 분기를 테스트하기 위해 추론된 선행 조건들인 가이드포스트들을 생성하는 단계;상기 가이드포스트들 각각을 상기 대상 프로그램에 삽입하여 가이드 버전의 대상 프로그램들을 생성하는 단계;상기 가이드 버전의 대상 프로그램들에 컨커릭 테스트를 적용하여 상기 가이드 버전의 대상 프로그램들에 대응하는 테스트 입력을 생성하는 단계; 및 상기 테스트 입력에 기초하여 상기 대상 프로그램을 테스트하는 단계를 포함하고, 상기 가이드 버전의 대상 프로그램들을 생성하는 단계는상기 가이드포스트들 각각을 상기 대상 프로그램의 변이 위치 직전에 삽입하는 단계; 및 상기 변이 위치에 대응하는 연산자 및 상기 변이 위치에 대응하는 피연산자 중 적어도 하나가 계산되기 직전에 상기 가이드포스트들 각각을 실행함으로써 상기 가이드 버전의 대상 프로그램들을 생성하는 단계를 포함하는, 대상 프로그램을 테스트하는 방법
|
15 |
15
하드웨어와 결합되어 제1항 내지 제10항, 제12항 내지 제14항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램
|
16 |
16
대상 프로그램의 소스 코드 및 미리 설정된 테스트 입력 세트를 포함하는 정보를 수신하는 통신 인터페이스; 및 상기 대상 프로그램에 포함된 적어도 하나의 연산자 및 적어도 하나의 피연산자 중 적어도 하나를 변이함으로써 상기 대상 프로그램에 대응하는 변이 프로그램들을 결정하고, 상기 변이 프로그램들의 실행 결과에 기초하여, 상기 대상 프로그램에서 미리 설정된 테스트 입력 세트에 의해 테스트되지 않는 구문을 커버하기 위한가이드포스트들을 생성하고, 상기 대상 프로그램에 상기 가이드포스트들 각각을 삽입한 가이드 버전의 대상 프로그램들에 의해 테스트 입력을 생성하며, 상기 테스트 입력에 기초하여 상기 대상 프로그램을 테스트하는,프로세서 를 포함하고, 상기 프로세서는상기 가이드포스트들을 상기 대상 프로그램의 변이 위치 직전에 삽입하고, 상기 변이 위치에 대응하는 연산자 및 상기 변이 위치에 대응하는 피연산자 중 적어도 하나가 계산되기 직전에 상기 가이드포스트들 각각을 실행함으로써 상기 가이드 버전의 대상 프로그램들을 생성하는, 대상 프로그램을 테스트하는 장치
|
17 |
17
제16항에 있어서, 상기 프로세서는 상기 대상 프로그램에 포함된 적어도 하나의 연산자 및 적어도 하나의 피연산자 중 적어도 하나를 변이(mutate)하여 상기 변이된 적어도 하나의 연산자 및 상기 적어도 하나의 피연산자 각각에 대응하는 제1 변이 프로그램들을 생성하고, 미리 설정된 테스트 입력 세트를 상기 제1 변이 프로그램들에 인가함으로써 상기 제1 변이 프로그램들 중 적어도 일부의 제2 변이 프로그램들을 선택하는, 대상 프로그램을 테스트하는 장치
|
18 |
18
제17항에 있어서, 상기 프로세서는상기 대상 프로그램에 포함된 적어도 하나의 연산자 및 적어도 하나의 피연산자 중 적어도 하나를 미리 설정된 복수의 변이 연산자들에 의해 변이하여 상기 제1 변이 프로그램들을 생성하는, 대상 프로그램을 테스트하는 장치
|
19 |
19
제18항에 있어서, 상기 프로세서는 상기 테스트 입력 세트에 따라 상기 대상 프로그램을 실행하여 상기 대상 프로그램의 기준 커버리지를 측정하고, 상기 테스트 입력 세트에 따라 상기 제1 변이 프로그램들을 실행하여 상기 제1 변이 프로그램들의 커버리지를 측정하며, 상기 기준 커버리지와 상기 커버리지 간의 비교 결과에 기초하여, 상기 제1 변이 프로그램들 중 적어도 일부의 제2 변이 프로그램들을 선택하는, 대상 프로그램을 테스트하는 장치
|
20 |
20
대상 프로그램을 단일 표현식 레벨에서 변이하여 상기 대상 프로그램에 대응하는 변이 프로그램들을 생성하고, 미리 설정된 테스트 입력의 집합을 상기 변이 프로그램들에 인가함으로써 상기 변이 프로그램들 중 커버 범위를 확장하는(coverage increasing) 변이 프로그램들의 집합을 결정하고,상기 변이 프로그램들의 집합의 실행 결과에 기초하여, 상기 대상 프로그램에서 도달하지 못한 분기를 테스트하기 위해 추론된 선행 조건들인 가이드포스트들을 생성하고, 상기 가이드포스트들 각각을 상기 대상 프로그램에 삽입하여 생성한 가이드 버전의 대상 프로그램들에 컨커릭 테스트를 적용하여 상기 가이드 버전의 대상 프로그램들에 대응하는 테스트 입력을 생성하며, 상기 테스트 입력에 기초하여 상기 대상 프로그램을 테스트하는,프로세서를 포함하고, 상기 프로세서는 상기 가이드포스트들 각각을 상기 대상 프로그램의 변이 위치 직전에 삽입하고, 상기 변이 위치에 대응하는 연산자 및 상기 변이 위치에 대응하는 피연산자 중 적어도 하나가 계산되기 직전에 상기 가이드포스트들 각각을 실행함으로써 상기 가이드 버전의 대상 프로그램들을 생성하는, 대상 프로그램을 테스트하는 장치
|