KR101940486B1 - 저비용 오류 기반 프로그램 테스트 장치 및 그 방법 - Google Patents
저비용 오류 기반 프로그램 테스트 장치 및 그 방법 Download PDFInfo
- Publication number
- KR101940486B1 KR101940486B1 KR1020110085323A KR20110085323A KR101940486B1 KR 101940486 B1 KR101940486 B1 KR 101940486B1 KR 1020110085323 A KR1020110085323 A KR 1020110085323A KR 20110085323 A KR20110085323 A KR 20110085323A KR 101940486 B1 KR101940486 B1 KR 101940486B1
- Authority
- KR
- South Korea
- Prior art keywords
- error
- program
- test
- code
- unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
저비용 오류 기반 프로그램 테스트 장치 및 그 방법이 개시된다. 본 발명의 일 실시예에 따른 테스트 장치는 테스트 대상 프로그램에 오류를 추가하여 오류 프로그램들을 생성하고, 오류 추가를 통해 획득한 오류정보를 이용하여 오류 프로그램들 중에서 테스트 데이터와 관련 있는 테스트 대상 오류 프로그램을 선정하며, 테스트 데이터를 입력받아 테스트 대상 오류 프로그램을 수행하여 오류 여부를 테스트한다. 이에 따라 테스트 수행 시간과 테스트 비용을 줄일 수 있다.
Description
본 발명의 일 양상은 컴퓨터 소프트웨어에 관한 것으로, 보다 상세하게는 오류 주입을 통해 프로그램의 품질을 평가하는 오류 기반 프로그램 테스트 기술에 관한 것이다.
오류 기반 테스트는 과거에 자주 발생한 오류 타입이 현재 테스트 중인 시스템, 시스템 컴포넌트 또는 프로그램에서도 자주 발생할 것이라는 예측적 지식에 근거하여 테스트 데이터를 선택하는 방법이다. 오류 기반 테스트 프로세스는 크게 오류 삽입을 통한 오류 프로그램 생성 단계와 테스트 데이터를 이용한 오류 프로그램 수행 단계로 구분된다.
오류 프로그램 생성 프로세스를 통해 오류 프로그램들이 생성되면, 생성된 오류 프로그램들은 오류 프로그램 수행 프로세스를 통해 테스트된다. 오류 프로그램들은 자신이 포함하고 있는 오류가 발견될 때까지 테스트 데이터들의 집합인 테스트 집합을 이용하여 수행된다.
오류 기반 테스트 프로세스는 오류 프로그램 수행에 고가의 비용이 소요된다. 즉, 오류 프로그램들은 해당 오류가 검출될 때까지 반복적으로 수행되는데, 일반적으로 생성되는 오류 프로그램들의 개수가 많다는 점을 고려하면 이들의 반복적 수행은 테스트 수행 시간을 오래 걸리도록 만든다.
오류 프로그램들은 오류가 발견될 때까지 테스트 데이터들에 대해 반복적으로 수행된다. 이는 오류 프로그램들이 자신이 포함하는 오류가 발견되기 전까지 수많은 테스트 데이터들에 대해 무의미하게 수행된다는 것을 의미한다. 따라서 이러한 무의미한 반복적 실행을 줄여 오류 기반 테스트 비용을 줄이는 것이 필요하다.
선행기술 한국 공개특허 10-2010-0121225에는 선택적 오류 주입 활성화를 통한 저비용 소프트웨어 신뢰성 테스트 기술에 대해, 미국 공개특허 2008-0134160에는 Java 애플리케이션의 오류 처리루틴을 대상으로 하는 소프트웨어 오류 삽입 기술에 대해 각각 개시하고 있다.
일 양상에 따라, 오류 기반 테스트 수행 시 수많은 오류 프로그램들 중에서 불필요한 오류 프로그램들에 대한 수행을 차단함으로써, 테스트 수행 시간과 테스트 비용을 줄일 수 있는 오류 기반 프로그램 테스트 장치 및 그 방법을 제안한다.
일 양상에 따른 오류 기반 프로그램 테스트 장치는, 테스트 대상 프로그램에 오류를 추가하여 오류 프로그램들을 생성하는 오류 프로그램 생성부와, 오류 추가를 통해 획득한 오류정보를 이용하여 오류 프로그램들 중에서 테스트 데이터와 관련 있는 테스트 대상 오류 프로그램을 선정하는 전처리부와, 테스트 데이터를 입력받아 테스트 대상 오류 프로그램을 수행하여 오류 여부를 테스트하는 오류 프로그램 테스트부를 포함한다.
전처리부는, 오류 프로그램들, 테스트 데이터들 및 오류 프로그램들에 포함된 오류코드들의 위치정보를 읽어오는 위치정보 리드부와, 테스트 데이터별로 테스트 대상 프로그램을 수행하여 수행경로를 파악하고 파악된 수행경로 상에 위치하는 오류코드를 갖는 오류 프로그램을 검출하며, 검출되지 않은 오류 프로그램을 오류 프로그램 테스트부를 통한 테스트 대상에서 제외하는 수행경로 분석부를 포함할 수 있다.
전처리부는, 오류 프로그램들, 테스트 데이터들 및 오류 프로그램들에 포함된 오류코드들의 리스트 정보를 읽어오는 오류코드 리드부와, 통합 오류 프로그램을 생성하는 통합 오류 프로그램 생성부와, 테스트 데이터별로 통합 오류 프로그램을 수행하여 원본코드와 오류코드의 중간 수행결과가 다른 오류 프로그램을 검출하며, 검출되지 않은 오류 프로그램을 오류 프로그램 테스트부를 통한 테스트 대상에서 제외하는 중간상태 분석부를 포함할 수 있다.
다른 양상에 따른 오류 기반 프로그램 테스트 방법은, 테스트 대상 프로그램에 오류를 추가하여 오류 프로그램들을 생성하는 단계와, 오류 추가를 통해 획득한 오류정보를 이용하여 오류 프로그램들 중에서 테스트 데이터와 관련 있는 테스트 대상 오류 프로그램을 선정하는 단계와, 테스트 데이터를 입력받아 테스트 대상 오류 프로그램을 수행하여 오류 여부를 테스트하는 단계를 포함한다.
일 실시예에 따르면, 테스트 데이터와 관련없는 오류 프로그램들을 사전에 검출하여 테스트 데이터와 관련없는 오류 프로그램에 대한 테스트 수행을 제한한다. 따라서, 불필요한 오류 프로그램들의 테스트 수행 작업이 줄어드므로 테스트 수행 비용과 시간을 줄일 수 있다.
도 1은 본 발명의 일 실시예에 따른 오류 기반 프로그램 테스트 장치의 구성도,
도 2는 본 발명의 일 실시예에 따른 전처리부의 구성도,
도 3은 본 발명의 다른 실시예에 따른 전처리부의 구성도,
도 4는 본 발명의 일 실시예에 따라 수행경로 분석을 통한 오류 기반 프로그램 테스트 방법을 도시한 흐름도,
도 5는 본 발명의 일 실시예에 따른 SerialAOR 함수의 pseudo-code를 도시한 참조도,
도 6은 본 발명의 다른 실시예에 따라 중간상태 비교를 통한 오류 기반 프로그램 테스트 방법을 도시한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 전처리부의 구성도,
도 3은 본 발명의 다른 실시예에 따른 전처리부의 구성도,
도 4는 본 발명의 일 실시예에 따라 수행경로 분석을 통한 오류 기반 프로그램 테스트 방법을 도시한 흐름도,
도 5는 본 발명의 일 실시예에 따른 SerialAOR 함수의 pseudo-code를 도시한 참조도,
도 6은 본 발명의 다른 실시예에 따라 중간상태 비교를 통한 오류 기반 프로그램 테스트 방법을 도시한 흐름도이다.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 오류 기반 프로그램 테스트 장치(1)의 구성도이다.
도 1을 참조하면, 오류 기반 프로그램 테스트 장치(이하 '테스트 장치'라 칭함)(1)는 오류 프로그램 생성부(10)와 오류 프로그램 수행부(12)를 포함한다. 오류 프로그램 수행부(12)는 전처리부(120)와 오류 프로그램 테스트부(122)를 포함한다.
오류 프로그램 생성부(10)는 테스트 대상 프로그램과 오류 유형 목록을 입력받는다. 그리고, 테스트 대상 프로그램을 분석하여 테스트 대상 프로그램의 소스 코드에 오류 유형 목록에 해당하는 오류들을 추가하여 오류가 포함된 오류 프로그램들을 생성한다. 오류 유형은 시스템에서 자주 발생할 것이라 예측되는 오류 타입을 의미한다. 소프트웨어의 경우 산술 연산자(arithmetic operator)의 잘못된 사용(예:'+' 산술 연산자를 '-' 산술 연산자로 잘못 사용), 논리 연산자(logical operator)의 잘못된 사용(예: '>' 연산자를 '≥' 논리 연산자로 잘못 사용) 등이 빈번히 발생하는 오류에 해당한다. 오류 프로그램 생성부(10)의 결과물은 오류가 삽입된 프로그램들로, 도 1에 표현된 오류 프로그램 1, 오류 프로그램 2,…, 오류 프로그램 n 은 모두 n개의 오류 프로그램이 생성되었음을 의미한다.
오류 프로그램 수행부(12)의 전처리부(120)는 오류 프로그램 테스트부(122)를 통해 테스트할 오류 프로그램의 개수를 줄인다. 즉, 오류 프로그램 테스트부(122)는 테스트 데이터 집합(테스트 데이터 1, 테스트 데이터 2,…, 테스트 데이터 m)에 대해 모든 오류 프로그램을 수행시키는 것이 아니라, 전처리부(120)로부터 입력받은 테스트 대상 리스트들에 해당하는 오류 프로그램들만을 수행시킨다. 이를 위해 전처리부(120)는 오류 프로그램 생성부(10)에서 오류 추가를 통해 획득한 오류정보를 이용하여 오류 프로그램들 중에서 테스트 데이터와 관련 있는 테스트 대상 오류 프로그램을 선정한다. 오류정보는 오류 프로그램들에 포함된 오류코드들의 위치정보 또는 리스트 정보일 수 있다.
전처리부(120)는 테스트 데이터에 의해 오류가 검출될 가능성이 있는 오류 프로그램들을 선정한다. 코드 상의 오류가 프로그램의 문제를 야기하기 위해서는 ① 오류코드가 수행이 되어야 하고, ② 오류코드 수행 결과가 프로그램의 중간상태를 바꾸어야 하며, ③ 바뀐 프로그램의 상태가 최종 수행 결과에 영향을 미쳐야 한다. 따라서 오류코드가 수행이 되지 않거나 오류코드 수행 결과가 프로그램의 중간상태를 바꾸어 놓지 않는다면, 이는 프로그램에 문제를 야기하지 않는다. 따라서 전술한 조건에 해당하는 오류 프로그램들을 수행시키는 것은 무의미하다.
본 발명에서는 위 사실에 기반하여 전처리부(120)가 테스트 대상인 오류 프로그램 리스트를 추출하기 위한 두 가지 기술을 제안한다. 첫 번째 기술은 테스트 데이터가 수행하는 프로그램의 수행경로 상에 위치하는 오류들만을 수행하는 것이다. 이는 전술한 '① 오류코드가 수행이 되어야 한다' 라는 조건을 만족시키는 오류 프로그램들만을 검출하는 것이다. 이 기술은 구현이 간단한 장점이 있다. 수행경로 분석을 통한 오류 프로그램 테스트 기술에 대한 구체적인 구성 및 프로세스에 대해서는 도 2와 도 4에서 각각 후술한다.
두 번째 기술은 프로그램 중간 수행 결과값이 다른 오류들만을 걸러내어 수행시키는 것이다. 이는 전술한 '② 오류코드 수행 결과가 프로그램의 중간 상태를 바꾸어야 한다' 라는 조건을 만족하는 오류 프로그램들만을 검출하는 것이다.
본 발명에서는 프로그램의 중간 결과값을 보기 위해서 오류코드들을 원 프로그램에 한꺼번에 집어넣어 수행시키는 통합 오류 프로그램인 IEP(Integrated error program)를 생성한다. IEP는 프로그램 내 expression에 대하여 오류코드가 발생하면 해당 expression을, 원본코드와 오류코드를 한꺼번에 수행하여 그 결과를 비교하는 함수로 교체한다. IEP를 이용한 오류 프로그램 테스트 기술에 대한 구체적인 구성 및 프로세스에 대해서는 도 3, 도 5 및 도 6에서 후술한다.
도 2는 본 발명의 일 실시예에 따른 전처리부(120a)의 구성도이다.
도 1 및 도 2를 참조하면, 전처리부(120a)는 위치정보 리드부(1200a)와 수행경로 분석부(1210a)를 포함한다.
위치정보 리드부(1200a)는 오류 프로그램들, 테스트 데이터들 및 오류 프로그램들에 포함된 오류코드들의 위치정보를 읽어온다. 수행경로 분석부(1210a)는 테스트 데이터별로 테스트 대상 프로그램을 수행하여 수행경로를 파악한다. 그리고, 파악된 수행경로 상에 위치하는 오류코드를 갖는 오류 프로그램을 검출하며, 검출되지 않은 오류 프로그램을 오류 프로그램 테스트부(122)를 통한 테스트 대상에서 제외한다.
도 3은 본 발명의 다른 실시예에 따른 전처리부(120b)의 구성도이다.
도 1 및 도 3을 참조하면, 전처리부(120b)는 오류코드 리드부(1200b), 통합 오류 프로그램 생성부(1210b) 및 중간상태 분석부(1220b)를 포함한다.
오류코드 리드부(1200b)는 오류 프로그램들, 테스트 데이터들 및 오류 프로그램들에 포함된 오류코드들의 리스트 정보를 읽어온다. 통합 오류 프로그램 생성부(1210b)는 통합 오류 프로그램(IEP)을 생성한다. 중간상태 분석부(1220b)는 테스트 데이터별로 통합 오류 프로그램(IEP)을 수행하여 원본코드와 오류코드의 중간 수행결과가 다른 오류 프로그램을 검출한다. 그리고, 검출되지 않은 오류 프로그램을 오류 프로그램 테스트부(122)를 통한 테스트 대상에서 제외한다. 통합 오류 프로그램은 테스트 대상 프로그램에 오류코드가 삽입되고, 원본코드와 오류코드가 수행되면 원본코드와 오류코드의 중간 수행결과가 출력되고 결과값으로 원본코드의 결과를 반환하는 프로그램이다.
도 4는 본 발명의 일 실시예에 따라 수행경로 분석을 통한 오류 기반 프로그램 테스트 방법을 도시한 흐름도이다.
도 1 및 도 4를 참조하면, 테스트 장치(1)는 오류 프로그램들과 테스트 데이터들 및 오류 프로그램들이 갖고 있는 오류코드들의 위치 정보를 읽어들인다(401). 도 4에서는 N개의 테스트 데이터와 M개의 오류 프로그램들이 Test[], Error[] 배열로 읽어지고 있다. 오류 프로그램들은 초기에 모두 오류가 발견되지 않은 상태인 UNDETECTED로 세팅된다(402).
이어서, 테스트 장치(1)는 읽어들인 테스트 데이터들을 테스트 대상 프로그램에 대해 수행시켜 수행경로 정보를 알아낸다(404). 이후 해당 수행경로 상에 위치하는 오류코드를 갖는 오류 프로그램들의 ID 값을 검출한다(405). 도 4에서는 K개의 오류 프로그램이 식별되어 이들의 ID 값이 Target[] 배열에 저장된다(406). 테스트 데이터마다 수행경로가 다르므로 해당 수행경로 상의 오류 프로그램 개수를 의미하는 K는 각기 다른 값을 갖는다.
이어서 테스트 장치(1)는 Target[] 배열에 저장된 ID 값에 해당하는 오류 프로그램이 UNDETECTED 상태로 설정된 경우 Test[i]에 대한 Error(Target(j))를 수행시킨다(408~409). 만일, 오류 프로그램이 테스트 데이터에 의해 검출(410)되면 해당 오류 프로그램은 DETECTED 상태로 설정(411)되어 향후 오류 프로그램 테스트 수행에서 제외된다.
단계 408에서 411까지의 프로세스는 모든 Target 오류 프로그램 1부터 K까지 각각에 대해 반복 수행된다(407). 또한, 단계 404부터 411까지의 프로세스는 모든 테스트 데이터 1부터 N까지 각각에 대해 반복 수행된다(403).
도 5는 본 발명의 일 실시예에 따른 SerialAOR 함수의 pseudo-code를 도시한 참조도이다.
도 5는 통합 오류 프로그램(IEP)에서 expression이 어떻게 원본코드와 오류코드를 한꺼번에 수행하여 그 결과를 비교하는 함수로 변경되는지를 나타낸다. 원본코드인 'C = A - B'에서 발생 가능한 오류코드는 아래의 4가지가 있을 수 있다.
① C = A + B, ② C = A * B, ③ C = A / B, ④ C = A % B
위의 4가지 오류코드와 원본코드 결과를 비교하기 위해 통합 오류 프로그램(IEP)은 원본코드 C = A - B; 를 C = SerialAOR(A,B,MINUS); 와 같이 원본코드의 오퍼랜드들이 파라미터로 입력되는 함수호출로 변경할 수 있는데, 도 5는 SerialAOR 함수의 pseudo-code를 도시한 것이다.
도 5에 도시된 바와 같이 SerialAOR 함수는 결과값으로 원본코드의 결과를 반환한다. 따라서 통합 오류 프로그램(IEP)은 결론적으로 원본 프로그램처럼 동작한다. 그러나 SerialAOR 함수 안에서 오류코드들이 수행되어 원본코드와 오류코드의 중간 결과가 비교되고 중간 결과가 다르면 해당 오류 프로그램의 ID 값이 보고된다.
도 6은 본 발명의 다른 실시예에 따라 중간상태 비교를 통한 오류 기반 프로그램 테스트 방법을 도시한 흐름도이다.
도 1 및 도 6을 참조하면, 테스트 장치(1)는 오류 프로그램들과 테스트 데이터들 및 오류 프로그램들이 갖고 있는 오류코드들의 리스트를 읽어들인다(601). 도 6에서는 N개의 테스트 데이터와 M개의 오류 프로그램들이 Test[], Error[] 배열로 읽어지고 있다.
이어서, 테스트 대상 프로그램에 오류코드들을 모두 삽입하여 이들의 중간결과를 비교할 수 있는 통합 오류 프로그램(IEP)을 생성한다(602). 오류 프로그램들은 초기에 모두 오류가 발견되지 않은 상태인 UNDETECTED로 설정된다(603).
이어서, 테스트 장치(1)는 읽어들인 테스트 데이터를 통합 오류 프로그램(IEP)에 대해 수행시킨다(605). 수행 결과 통합 오류 프로그램(IEP)에 의해 원본코드와 오류코드의 중간 수행결과가 다른 오류 프로그램 ID를 검출(606)하고, 검출된 오류 프로그램들의 ID 값을 저장한다(607). 도 6에서는 수행 대상 오류 프로그램들의 ID 값이 검출되면 Target[] 배열에 저장된다. 테스트 데이터마다 수행경로가 다르므로 해당 경로 상의 오류 프로그램 개수를 의미하는 K는 각기 다른 값을 갖는다.
이어서 테스트 장치(1)는 Target[] 배열에 저장된 ID 값에 해당하는 오류 프로그램이 UNDETECTED 상태로 설정된 경우 Test[i]에 대한 Error(Target(j))를 수행시킨다(609~610). 만일, 오류 프로그램이 테스트 데이터에 의해 검출(611)되면 해당 오류 프로그램은 DETECTED 상태로 설정(612)되어 향후 오류 프로그램 테스트 수행에서 제외된다.
단계 609에서 612까지의 프로세스는 모든 Target 오류 프로그램 1부터 K까지 각각에 대해 반복 수행된다(608). 또한, 단계 605부터 612까지의 프로세스는 모든 테스트 데이터 1부터 N까지 각각에 대해 반복 수행된다(604).
이제까지 본 발명에 대하여 그 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
1 : 오류 기반 프로그램 테스트 장치 10 : 오류 프로그램 생성부
12 : 오류 프로그램 수행부 120 : 전처리부
122 : 오류 프로그램 테스트부 1200a : 위치정보 리드부
1210a : 수행경로 분석부 1200b : 오류코드 리드부
1210b : 통합 오류 프로그램 생성부 1220b : 중간상태 분석부
12 : 오류 프로그램 수행부 120 : 전처리부
122 : 오류 프로그램 테스트부 1200a : 위치정보 리드부
1210a : 수행경로 분석부 1200b : 오류코드 리드부
1210b : 통합 오류 프로그램 생성부 1220b : 중간상태 분석부
Claims (8)
- 테스트 대상 프로그램에 오류를 추가하여 오류 프로그램들을 생성하는 오류 프로그램 생성부;
상기 오류 추가를 통해 획득한 오류정보를 이용하여 상기 생성된 오류 프로그램들 중에서 테스트 데이터와 관련 있는 테스트 대상 오류 프로그램을 선정하는 전처리부; 및
상기 테스트 데이터를 입력받아 상기 테스트 대상 오류 프로그램을 수행하여 오류 여부를 테스트하는 오류 프로그램 테스트부;
를 포함하고,
상기 전처리부는,
오류 프로그램들, 테스트 데이터들 및 상기 오류 프로그램들에 포함된 오류코드들의 리스트 정보를 읽어오는 오류코드 리드부;
통합 오류 프로그램을 생성하는 통합 오류 프로그램 생성부; 및
테스트 데이터별로 상기 통합 오류 프로그램을 수행하여 원본코드와 오류코드의 중간 수행결과가 다른 오류 프로그램을 검출하며, 검출되지 않은 오류 프로그램을 상기 오류 프로그램 테스트부를 통한 테스트 대상에서 제외하는 중간상태 분석부;
를 포함하고,
상기 통합 오류 프로그램은 테스트 대상 프로그램에 오류코드가 삽입되고, 원본코드와 오류코드가 수행되면 원본코드와 오류코드의 중간 수행결과가 출력되고 결과값으로 원본코드의 결과를 반환하는 프로그램인 것을 특징으로 하는 오류 기반 프로그램 테스트 장치. - 제 1 항에 있어서, 상기 전처리부는,
오류 프로그램들, 테스트 데이터들 및 상기 오류 프로그램들에 포함된 오류코드들의 위치정보를 읽어오는 위치정보 리드부; 및
테스트 데이터별로 상기 테스트 대상 프로그램을 수행하여 수행경로를 파악하고 상기 파악된 수행경로 상에 위치하는 오류코드를 갖는 오류 프로그램을 검출하며, 검출되지 않은 오류 프로그램을 상기 오류 프로그램 테스트부를 통한 테스트 대상에서 제외하는 수행경로 분석부;
를 포함하는 것을 특징으로 하는 오류 기반 프로그램 테스트 장치. - 삭제
- 삭제
- 오류 프로그램 생성부, 전처리부 및 오류 프로그램 테스트부를 포함하는 오류 기반 프로그램 테스트 장치의 오류 기반 프로그램 테스트 방법에 있어서,
상기 오류프로그램 생성부가, 테스트 대상 프로그램에 오류를 추가하여 오류 프로그램들을 생성하는 단계;
상기 전처리부가, 상기 오류 추가를 통해 획득한 오류정보를 이용하여 상기 생성된 오류 프로그램들 중에서 테스트 데이터와 관련 있는 테스트 대상 오류 프로그램을 선정하는 단계; 및
상기 오류 프로그램 테스트부가, 데이터를 입력받아 상기 테스트 대상 오류 프로그램을 수행하여 오류 여부를 테스트하는 단계;
를 포함하고,
상기 테스트 대상 오류 프로그램을 선정하는 단계는,
오류 프로그램들, 테스트 데이터들 및 상기 오류 프로그램들에 포함된 오류코드들의 리스트 정보를 읽어오는 단계;
통합 오류 프로그램을 생성하는 단계; 및
테스트 데이터별로 상기 통합 오류 프로그램을 수행하여 원본코드와 오류코드의 중간 수행결과가 다른 오류 프로그램을 검출하며, 검출되지 않은 오류 프로그램을 테스트 대상에서 제외하는 단계;
를 포함하고,
상기 통합 오류 프로그램은 테스트 대상 프로그램에 오류코드가 삽입되고, 원본코드와 오류코드가 수행되면 원본코드와 오류코드의 중간 수행결과가 출력되고 결과값으로 원본코드의 결과를 반환하는 프로그램인 것을 특징으로 하는 오류 기반 프로그램 테스트 방법. - 제 5 항에 있어서, 상기 테스트 대상 오류 프로그램을 선정하는 단계는,
오류 프로그램들, 테스트 데이터들 및 상기 오류 프로그램들에 포함된 오류코드들의 위치정보를 읽어오는 단계;
테스트 데이터별로 상기 테스트 대상 프로그램을 수행하여 수행경로를 파악하는 단계; 및
상기 파악된 수행경로 상에 위치하는 오류코드를 갖는 오류 프로그램을 검출하며, 검출되지 않은 오류 프로그램을 테스트 대상에서 제외하는 단계;
를 포함하는 것을 특징으로 하는 오류 기반 프로그램 테스트 방법. - 삭제
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110085323A KR101940486B1 (ko) | 2011-08-25 | 2011-08-25 | 저비용 오류 기반 프로그램 테스트 장치 및 그 방법 |
US13/550,118 US8886999B2 (en) | 2011-08-25 | 2012-07-16 | Low cost error-based program testing apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110085323A KR101940486B1 (ko) | 2011-08-25 | 2011-08-25 | 저비용 오류 기반 프로그램 테스트 장치 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130022280A KR20130022280A (ko) | 2013-03-06 |
KR101940486B1 true KR101940486B1 (ko) | 2019-01-21 |
Family
ID=47745444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110085323A KR101940486B1 (ko) | 2011-08-25 | 2011-08-25 | 저비용 오류 기반 프로그램 테스트 장치 및 그 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8886999B2 (ko) |
KR (1) | KR101940486B1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9208064B2 (en) * | 2011-08-09 | 2015-12-08 | Red Hat, Inc. | Declarative testing using dependency injection |
CN105159826B (zh) * | 2015-08-20 | 2018-06-15 | 浪潮(北京)电子信息产业有限公司 | 一种定位目标程序中的错误语句的方法和装置 |
KR101964454B1 (ko) * | 2016-12-09 | 2019-04-01 | 주식회사 뉴스젤리 | 데이터에 내재된 문제점 제거를 통한 데이터 정제 장치 및 방법 |
US12067482B1 (en) * | 2018-02-05 | 2024-08-20 | Amazon Technologies, Inc. | Intelligent input adaptation from disparate data sources for heterogeneous machine learning model execution |
CN111274129A (zh) * | 2020-01-16 | 2020-06-12 | 浙江理工大学 | 一种基于动态程序失效执行块的程序错误定位方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6701460B1 (en) * | 1999-10-21 | 2004-03-02 | Sun Microsystems, Inc. | Method and apparatus for testing a computer system through software fault injection |
US6651187B2 (en) * | 2001-12-31 | 2003-11-18 | Globespanvirata Inc. | System and method for determining fault path behavior |
US20060129880A1 (en) * | 2004-11-26 | 2006-06-15 | Mauro Arcese | Method and system for injecting faults into a software application |
US8561034B2 (en) * | 2006-06-22 | 2013-10-15 | Infosys Technologies, Ltd. | Software fault injection in java enterprise applications |
US8533679B2 (en) * | 2007-01-18 | 2013-09-10 | Intuit Inc. | Method and apparatus for inserting faults to test code paths |
US8381192B1 (en) * | 2007-08-03 | 2013-02-19 | Google Inc. | Software testing using taint analysis and execution path alteration |
KR100919222B1 (ko) * | 2007-09-19 | 2009-09-28 | 한국전자통신연구원 | 테스트 케이스의 성능 평가 방법 및 장치 |
KR101269549B1 (ko) * | 2009-05-08 | 2013-06-04 | 한국전자통신연구원 | 오류 주입을 이용한 소프트웨어 신뢰성 테스트 시스템 및 방법 |
KR101266359B1 (ko) * | 2009-05-08 | 2013-05-22 | 한국전자통신연구원 | 선택적 오류 주입 활성화를 통한 저비용 소프트웨어 신뢰성 시험 방법, 소프트웨어 신뢰성 시험을 지정 대상 모듈로 한정하는 방법, 소프트웨어 신뢰성 시험을 위한 대상 모듈에 부하를 발생시키는 방법 및 이러한 방법들을 사용하여 소프트웨어 신뢰성 시험을 하는 컴퓨팅 장치 |
-
2011
- 2011-08-25 KR KR1020110085323A patent/KR101940486B1/ko active IP Right Grant
-
2012
- 2012-07-16 US US13/550,118 patent/US8886999B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8886999B2 (en) | 2014-11-11 |
US20130055027A1 (en) | 2013-02-28 |
KR20130022280A (ko) | 2013-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10586053B2 (en) | Method for automatically detecting security vulnerability based on hybrid fuzzing, and apparatus thereof | |
US8539449B2 (en) | Device and method for inspecting software for vulnerabilities | |
Korel et al. | Test prioritization using system models | |
US10296447B2 (en) | Automated software program repair | |
US8584101B2 (en) | Apparatus and method for automatically analyzing program for detecting malicious codes triggered under specific event/context | |
KR101410099B1 (ko) | 단위 테스트 케이스 재사용 기반의 함수 테스트 장치 및 그 함수 테스트 방법 | |
KR101940486B1 (ko) | 저비용 오류 기반 프로그램 테스트 장치 및 그 방법 | |
KR101695015B1 (ko) | 오류 기반 소프트웨어 시험 방법 및 오류 기반 소프트웨어 시험 시스템 | |
US9274930B2 (en) | Debugging system using static analysis | |
US8645761B2 (en) | Precise fault localization | |
Gong et al. | Automatic detection of infeasible paths in software testing | |
WO2014180107A1 (zh) | 一种基于测试的静态分析误报消除方法 | |
US10459830B2 (en) | Executable code abnormality detection | |
EP3264274B1 (en) | Input discovery for unknown program binaries | |
CN112035359A (zh) | 程序测试方法、装置、电子设备及存储介质 | |
US11275860B2 (en) | System and method for software verification | |
CN105653455A (zh) | 一种程序漏洞的检测方法及检测系统 | |
US8533544B2 (en) | System for tree sequence testing of a device and method for tree sequence testing of a device in a test framework architecture | |
US20140281719A1 (en) | Explaining excluding a test from a test suite | |
WO2019142266A1 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
JP5811859B2 (ja) | ソースコードの静的解析装置、システム、方法、及びそのためのプログラム | |
JP4957521B2 (ja) | ソフトウェア部分テストシステム、それに用いる方法およびプログラム | |
KR100924519B1 (ko) | 소프트웨어 보안 테스팅을 수행하기 위한 알려지지 않은파일 포맷 분석 시스템 및 방법 | |
KR101685299B1 (ko) | 비결정적인 이벤트 처리가 가능한 프로그램의 자동 테스트 방법 및 자동 테스트 장치 | |
JP6771619B2 (ja) | ソースコードのプロパティを検証するための方法およびシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |