탐색 기법을 이용한 제약 조건 기반의 프로그램 수정 방법 및 장치
CONSTRAINT-BASED AUTOMATIC PROGRAM REPAIR METHOD USING SEARCH BASED TECHNIQUE AND APPARATUS
특허 요약
탐색 기법을 이용한 제약 조건 기반의 프로그램 수정 방법은 분석장치가 버그 수정 대상인 소스 코드를 입력받는 단계, 상기 분석장치가 스펙트럼 기반 결함 위치 식별 기법을 이용하여 상기 소스 코드에서 오류가 의심되는 후보 표현식들을 선별하는 단계, 상기 분석장치가 상기 후보 표현식들을 기준으로 일정한 테스트를 통과한 후보 경로를 선별하는 단계 및 상기 분석장치가 상기 후보 경로를 기준으로 패치(patch)를 생성하는 단계를 포함한다.
청구항
번호청구항
1

분석장치가 버그 수정 대상인 소스 코드를 입력받는 단계;상기 분석장치가 스펙트럼 기반 결함 위치 식별 기법을 이용하여 상기 소스 코드에서 오류가 의심되는 후보 표현식들을 선별하는 단계;상기 분석장치가 상기 후보 표현식들을 기준으로 일정한 테스트를 통과한 후보 경로를 선별하는 단계; 및상기 분석장치가 상기 후보 경로를 기준으로 패치(patch)를 생성하는 단계를 포함하고, 상기 후보 경로를 선별하는 단계는 상기 분석장치가 탐색 기반의 샘플링 기법으로 탐색된 경로의 비용을 기준으로 비용이 더 낮은 경로를 찾는 과정을 반복하되, 상기 비용은 분석 대상인 경로가 출력하는 값과 목표하는 출력값의 차이로 결정되고,상기 비용이 더 낮은 경로를 찾는 과정에서 상기 분석장치가 MCMC(Markov Chain Monte Carlo) 샘플링 기법을 이용하여 현재 실행 경로로부터 새로운 경로를 생성하고, 상기 새로운 경로의 비용이 상기 현재 실행 경로의 비용보다 적은 경우 상기 새로운 경로를 상기 현재 실행 경로로 설정하는 탐색 기법을 이용한 제약 조건 기반의 프로그램 수정 방법.

2

삭제

3

제1항에 있어서,상기 분석 장치는 상기 테스트를 통과한 후보 경로가 출력하는 값이 상기 목표하는 출력값과 동일한 경우 경로 탐색을 종료하는 탐색 기법을 이용한 제약 조건 기반의 프로그램 수정 방법.

4

제1항에 있어서,상기 분석장치는 상기 소스 코드가 최초 수행되면서 획득한 상기 후보 표현식들에 대한 실행값을 나타내는 참조 비트 벡터를 획득하는 단계; 및상기 분석장치가 상기 테스트를 통과하는 조건으로 상기 후보 경로에서 상기 후보 표현식들에 대한 실행값을 나타내는 타깃 비트 벡터가 상기 참조 비트 벡터와 가장 차이가 적도록 적어도 하나의 비트를 수정하는 후처리 단계를 더 포함하고,상기 분석장치는 상기 후처리 단계가 수행된 상기 후보 경로를 기준으로 상기 패치를 생성하는 탐색 기법을 이용한 제약 조건 기반의 프로그램 수정 방법.

5

버그 수정 대상인 소스 코드를 입력받는 입력장치;스펙트럼 기반 결함 위치 식별 프로그램, 탐색 기반의 샘플링 프로그램 및 패치 합성 프로그램을 저장하는 저장장치; 및 상기 스펙트럼 기반 결함 위치 식별 프로그램을 이용하여 상기 소스 코드에서 오류가 의심되는 후보 표현식들을 선별하고, 상기 후보 표현식들을 기준으로 일정한 테스트를 통과한 후보 경로를 선별하고, 상기 패치 합성 프로그램을 이용하여 상기 후보 경로를 기준으로 패치를 생성하는 연산장치를 포함하되,상기 연산장치는 상기 탐색 기반의 샘플링 프로그램을 이용하여 경로의 비용을 기준으로 비용이 더 낮은 경로를 찾는 과정을 반복하면서 상기 후보 경로를 탐색하고, 상기 비용은 분석 대상인 경로가 출력하는 값과 목표하는 출력값의 차이로 결정되고,상기 비용이 더 낮은 경로를 찾는 과정에서 상기 연산장치가 MCMC(Markov Chain Monte Carlo) 샘플링 기법을 이용하여 현재 실행 경로로부터 새로운 경로를 생성하고, 상기 새로운 경로의 비용이 상기 현재 실행 경로의 비용보다 적은 경우 상기 새로운 경로를 상기 현재 실행 경로로 설정하는 제약 조건 기반의 프로그램 수정을 실행하는 분석 장치.

6

삭제

7

제5항에 있어서,상기 연산장치는 상기 테스트를 통과한 후보 경로가 출력하는 값이 상기 목표하는 출력값과 동일한 경우 경로 탐색을 종료하는 제약 조건 기반의 프로그램 수정을 실행하는 분석 장치.

8

제5항에 있어서,상기 연산장치는 상기 소스 코드가 최초 수행되면서 획득한 상기 후보 표현식들에 대한 실행값을 나타내는 참조 비트 벡터를 생성하고, 상기 테스트를 통과하는 조건으로 상기 후보 경로에서 상기 후보 표현식들에 대한 실행값을 나타내는 타깃 비트 벡터가 상기 참조 비트 벡터와 가장 차이가 적도록 적어도 하나의 비트를 수정하는 후처리 수행하고, 상기 후처리가 수행된 상기 후보 경로를 기준으로 상기 패치를 생성하는 제약 조건 기반의 프로그램 수정을 실행하는 분석 장치.