KR101940486B1 - 저비용 오류 기반 프로그램 테스트 장치 및 그 방법 - Google Patents

저비용 오류 기반 프로그램 테스트 장치 및 그 방법 Download PDF

Info

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
Application number
KR1020110085323A
Other languages
English (en)
Other versions
KR20130022280A (ko
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 KR1020110085323A priority Critical patent/KR101940486B1/ko
Priority to US13/550,118 priority patent/US8886999B2/en
Publication of KR20130022280A publication Critical patent/KR20130022280A/ko
Application granted granted Critical
Publication of KR101940486B1 publication Critical patent/KR101940486B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing 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

저비용 오류 기반 프로그램 테스트 장치 및 그 방법 {Low cost apparatus and method for error-based program testing}
본 발명의 일 양상은 컴퓨터 소프트웨어에 관한 것으로, 보다 상세하게는 오류 주입을 통해 프로그램의 품질을 평가하는 오류 기반 프로그램 테스트 기술에 관한 것이다.
오류 기반 테스트는 과거에 자주 발생한 오류 타입이 현재 테스트 중인 시스템, 시스템 컴포넌트 또는 프로그램에서도 자주 발생할 것이라는 예측적 지식에 근거하여 테스트 데이터를 선택하는 방법이다. 오류 기반 테스트 프로세스는 크게 오류 삽입을 통한 오류 프로그램 생성 단계와 테스트 데이터를 이용한 오류 프로그램 수행 단계로 구분된다.
오류 프로그램 생성 프로세스를 통해 오류 프로그램들이 생성되면, 생성된 오류 프로그램들은 오류 프로그램 수행 프로세스를 통해 테스트된다. 오류 프로그램들은 자신이 포함하고 있는 오류가 발견될 때까지 테스트 데이터들의 집합인 테스트 집합을 이용하여 수행된다.
오류 기반 테스트 프로세스는 오류 프로그램 수행에 고가의 비용이 소요된다. 즉, 오류 프로그램들은 해당 오류가 검출될 때까지 반복적으로 수행되는데, 일반적으로 생성되는 오류 프로그램들의 개수가 많다는 점을 고려하면 이들의 반복적 수행은 테스트 수행 시간을 오래 걸리도록 만든다.
오류 프로그램들은 오류가 발견될 때까지 테스트 데이터들에 대해 반복적으로 수행된다. 이는 오류 프로그램들이 자신이 포함하는 오류가 발견되기 전까지 수많은 테스트 데이터들에 대해 무의미하게 수행된다는 것을 의미한다. 따라서 이러한 무의미한 반복적 실행을 줄여 오류 기반 테스트 비용을 줄이는 것이 필요하다.
선행기술 한국 공개특허 10-2010-0121225에는 선택적 오류 주입 활성화를 통한 저비용 소프트웨어 신뢰성 테스트 기술에 대해, 미국 공개특허 2008-0134160에는 Java 애플리케이션의 오류 처리루틴을 대상으로 하는 소프트웨어 오류 삽입 기술에 대해 각각 개시하고 있다.
일 양상에 따라, 오류 기반 테스트 수행 시 수많은 오류 프로그램들 중에서 불필요한 오류 프로그램들에 대한 수행을 차단함으로써, 테스트 수행 시간과 테스트 비용을 줄일 수 있는 오류 기반 프로그램 테스트 장치 및 그 방법을 제안한다.
일 양상에 따른 오류 기반 프로그램 테스트 장치는, 테스트 대상 프로그램에 오류를 추가하여 오류 프로그램들을 생성하는 오류 프로그램 생성부와, 오류 추가를 통해 획득한 오류정보를 이용하여 오류 프로그램들 중에서 테스트 데이터와 관련 있는 테스트 대상 오류 프로그램을 선정하는 전처리부와, 테스트 데이터를 입력받아 테스트 대상 오류 프로그램을 수행하여 오류 여부를 테스트하는 오류 프로그램 테스트부를 포함한다.
전처리부는, 오류 프로그램들, 테스트 데이터들 및 오류 프로그램들에 포함된 오류코드들의 위치정보를 읽어오는 위치정보 리드부와, 테스트 데이터별로 테스트 대상 프로그램을 수행하여 수행경로를 파악하고 파악된 수행경로 상에 위치하는 오류코드를 갖는 오류 프로그램을 검출하며, 검출되지 않은 오류 프로그램을 오류 프로그램 테스트부를 통한 테스트 대상에서 제외하는 수행경로 분석부를 포함할 수 있다.
전처리부는, 오류 프로그램들, 테스트 데이터들 및 오류 프로그램들에 포함된 오류코드들의 리스트 정보를 읽어오는 오류코드 리드부와, 통합 오류 프로그램을 생성하는 통합 오류 프로그램 생성부와, 테스트 데이터별로 통합 오류 프로그램을 수행하여 원본코드와 오류코드의 중간 수행결과가 다른 오류 프로그램을 검출하며, 검출되지 않은 오류 프로그램을 오류 프로그램 테스트부를 통한 테스트 대상에서 제외하는 중간상태 분석부를 포함할 수 있다.
다른 양상에 따른 오류 기반 프로그램 테스트 방법은, 테스트 대상 프로그램에 오류를 추가하여 오류 프로그램들을 생성하는 단계와, 오류 추가를 통해 획득한 오류정보를 이용하여 오류 프로그램들 중에서 테스트 데이터와 관련 있는 테스트 대상 오류 프로그램을 선정하는 단계와, 테스트 데이터를 입력받아 테스트 대상 오류 프로그램을 수행하여 오류 여부를 테스트하는 단계를 포함한다.
일 실시예에 따르면, 테스트 데이터와 관련없는 오류 프로그램들을 사전에 검출하여 테스트 데이터와 관련없는 오류 프로그램에 대한 테스트 수행을 제한한다. 따라서, 불필요한 오류 프로그램들의 테스트 수행 작업이 줄어드므로 테스트 수행 비용과 시간을 줄일 수 있다.
도 1은 본 발명의 일 실시예에 따른 오류 기반 프로그램 테스트 장치의 구성도,
도 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 : 중간상태 분석부

Claims (8)

  1. 테스트 대상 프로그램에 오류를 추가하여 오류 프로그램들을 생성하는 오류 프로그램 생성부;
    상기 오류 추가를 통해 획득한 오류정보를 이용하여 상기 생성된 오류 프로그램들 중에서 테스트 데이터와 관련 있는 테스트 대상 오류 프로그램을 선정하는 전처리부; 및
    상기 테스트 데이터를 입력받아 상기 테스트 대상 오류 프로그램을 수행하여 오류 여부를 테스트하는 오류 프로그램 테스트부;
    를 포함하고,
    상기 전처리부는,
    오류 프로그램들, 테스트 데이터들 및 상기 오류 프로그램들에 포함된 오류코드들의 리스트 정보를 읽어오는 오류코드 리드부;
    통합 오류 프로그램을 생성하는 통합 오류 프로그램 생성부; 및
    테스트 데이터별로 상기 통합 오류 프로그램을 수행하여 원본코드와 오류코드의 중간 수행결과가 다른 오류 프로그램을 검출하며, 검출되지 않은 오류 프로그램을 상기 오류 프로그램 테스트부를 통한 테스트 대상에서 제외하는 중간상태 분석부;
    를 포함하고,
    상기 통합 오류 프로그램은 테스트 대상 프로그램에 오류코드가 삽입되고, 원본코드와 오류코드가 수행되면 원본코드와 오류코드의 중간 수행결과가 출력되고 결과값으로 원본코드의 결과를 반환하는 프로그램인 것을 특징으로 하는 오류 기반 프로그램 테스트 장치.
  2. 제 1 항에 있어서, 상기 전처리부는,
    오류 프로그램들, 테스트 데이터들 및 상기 오류 프로그램들에 포함된 오류코드들의 위치정보를 읽어오는 위치정보 리드부; 및
    테스트 데이터별로 상기 테스트 대상 프로그램을 수행하여 수행경로를 파악하고 상기 파악된 수행경로 상에 위치하는 오류코드를 갖는 오류 프로그램을 검출하며, 검출되지 않은 오류 프로그램을 상기 오류 프로그램 테스트부를 통한 테스트 대상에서 제외하는 수행경로 분석부;
    를 포함하는 것을 특징으로 하는 오류 기반 프로그램 테스트 장치.
  3. 삭제
  4. 삭제
  5. 오류 프로그램 생성부, 전처리부 및 오류 프로그램 테스트부를 포함하는 오류 기반 프로그램 테스트 장치의 오류 기반 프로그램 테스트 방법에 있어서,
    상기 오류프로그램 생성부가, 테스트 대상 프로그램에 오류를 추가하여 오류 프로그램들을 생성하는 단계;
    상기 전처리부가, 상기 오류 추가를 통해 획득한 오류정보를 이용하여 상기 생성된 오류 프로그램들 중에서 테스트 데이터와 관련 있는 테스트 대상 오류 프로그램을 선정하는 단계; 및
    상기 오류 프로그램 테스트부가, 데이터를 입력받아 상기 테스트 대상 오류 프로그램을 수행하여 오류 여부를 테스트하는 단계;
    를 포함하고,
    상기 테스트 대상 오류 프로그램을 선정하는 단계는,
    오류 프로그램들, 테스트 데이터들 및 상기 오류 프로그램들에 포함된 오류코드들의 리스트 정보를 읽어오는 단계;
    통합 오류 프로그램을 생성하는 단계; 및
    테스트 데이터별로 상기 통합 오류 프로그램을 수행하여 원본코드와 오류코드의 중간 수행결과가 다른 오류 프로그램을 검출하며, 검출되지 않은 오류 프로그램을 테스트 대상에서 제외하는 단계;
    를 포함하고,
    상기 통합 오류 프로그램은 테스트 대상 프로그램에 오류코드가 삽입되고, 원본코드와 오류코드가 수행되면 원본코드와 오류코드의 중간 수행결과가 출력되고 결과값으로 원본코드의 결과를 반환하는 프로그램인 것을 특징으로 하는 오류 기반 프로그램 테스트 방법.
  6. 제 5 항에 있어서, 상기 테스트 대상 오류 프로그램을 선정하는 단계는,
    오류 프로그램들, 테스트 데이터들 및 상기 오류 프로그램들에 포함된 오류코드들의 위치정보를 읽어오는 단계;
    테스트 데이터별로 상기 테스트 대상 프로그램을 수행하여 수행경로를 파악하는 단계; 및
    상기 파악된 수행경로 상에 위치하는 오류코드를 갖는 오류 프로그램을 검출하며, 검출되지 않은 오류 프로그램을 테스트 대상에서 제외하는 단계;
    를 포함하는 것을 특징으로 하는 오류 기반 프로그램 테스트 방법.
  7. 삭제
  8. 삭제
KR1020110085323A 2011-08-25 2011-08-25 저비용 오류 기반 프로그램 테스트 장치 및 그 방법 KR101940486B1 (ko)

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 (4)

* Cited by examiner, † Cited by third party
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 주식회사 뉴스젤리 데이터에 내재된 문제점 제거를 통한 데이터 정제 장치 및 방법
CN111274129A (zh) * 2020-01-16 2020-06-12 浙江理工大学 一种基于动态程序失效执行块的程序错误定位方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
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 한국전자통신연구원 테스트 케이스의 성능 평가 방법 및 장치
KR101266359B1 (ko) * 2009-05-08 2013-05-22 한국전자통신연구원 선택적 오류 주입 활성화를 통한 저비용 소프트웨어 신뢰성 시험 방법, 소프트웨어 신뢰성 시험을 지정 대상 모듈로 한정하는 방법, 소프트웨어 신뢰성 시험을 위한 대상 모듈에 부하를 발생시키는 방법 및 이러한 방법들을 사용하여 소프트웨어 신뢰성 시험을 하는 컴퓨팅 장치
KR101269549B1 (ko) * 2009-05-08 2013-06-04 한국전자통신연구원 오류 주입을 이용한 소프트웨어 신뢰성 테스트 시스템 및 방법

Also Published As

Publication number Publication date
KR20130022280A (ko) 2013-03-06
US20130055027A1 (en) 2013-02-28
US8886999B2 (en) 2014-11-11

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) 단위 테스트 케이스 재사용 기반의 함수 테스트 장치 및 그 함수 테스트 방법
US8954807B2 (en) Fault-based software testing method and system
US9274930B2 (en) Debugging system using static analysis
US8645761B2 (en) Precise fault localization
Gong et al. Automatic detection of infeasible paths in software testing
US10459830B2 (en) Executable code abnormality detection
WO2014180107A1 (zh) 一种基于测试的静态分析误报消除方法
KR101940486B1 (ko) 저비용 오류 기반 프로그램 테스트 장치 및 그 방법
EP3264274B1 (en) Input discovery for unknown program binaries
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
Friedler et al. Effective post-silicon failure localization using dynamic program slicing
JP5811859B2 (ja) ソースコードの静的解析装置、システム、方法、及びそのためのプログラム
JP4957521B2 (ja) ソフトウェア部分テストシステム、それに用いる方法およびプログラム
CN111061644B (zh) 一种检测并定位异常抛出处理缺陷的方法和装置
KR20110008849A (ko) 임베디드 시스템 결함검출률 평가 장치 및 그 방법
KR100924519B1 (ko) 소프트웨어 보안 테스팅을 수행하기 위한 알려지지 않은파일 포맷 분석 시스템 및 방법
CN114138669A (zh) 一种基于函数级选择符号化混合执行的软件自动测试方法

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