KR101254609B1 - 하나의 소프트웨어의 적어도 일 부분을 검증하기 위해 테스트 케이스들을 자동 형성하는 방법 - Google Patents

하나의 소프트웨어의 적어도 일 부분을 검증하기 위해 테스트 케이스들을 자동 형성하는 방법 Download PDF

Info

Publication number
KR101254609B1
KR101254609B1 KR1020107028596A KR20107028596A KR101254609B1 KR 101254609 B1 KR101254609 B1 KR 101254609B1 KR 1020107028596 A KR1020107028596 A KR 1020107028596A KR 20107028596 A KR20107028596 A KR 20107028596A KR 101254609 B1 KR101254609 B1 KR 101254609B1
Authority
KR
South Korea
Prior art keywords
requirements
software
test
input values
functionality
Prior art date
Application number
KR1020107028596A
Other languages
English (en)
Other versions
KR20110036796A (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 존슨 컨트롤스 테크놀러지 컴퍼니
Publication of KR20110036796A publication Critical patent/KR20110036796A/ko
Application granted granted Critical
Publication of KR101254609B1 publication Critical patent/KR101254609B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

소프트웨어의 입력 값들 및 출력 값들에 관계된 요구사항들을 포함하는 명세(specification)에 대한 하나의 소프트웨어의 하나 이상의 기능성을 검증(verifying)하기 위해 테스트 케이스들의 컴퓨터에 의한 자동 형성의 방법은 - 조합 요구사항들(combinatorial requirements) 및 순차요구사항들(sequential requirements)을 구별하는 단계; - 모델링된 명세를 습득할 수 있도록 예를 들어 진리표에 의해 조합 요구사항들을 모델링하고 그리고 유한 상태 기계(finite state machine)에 의해 순차 요구사항들을 모델링하는 단계; - 상기 소프트웨어의 입력값에 관련된 연산 매트릭스(operation matrix)를 구축하는 단계; - 상기 입력값들의 확률(probability)이 연속적이고 이들 사이의 천이 시간(transition time)임 -; - 상기 연산 매트릭스로부터 몬테카를로법(Monte Carlo draw)을 수행하여 테스트되도록 입력 값들의 연속치들을 선택하는 단계; - 상기 모델링된 명세명세어진 예상 출력값들에 의해 각 선택된 연속값에 관계된 테스트 행들(test rows)을 포함하는 테스트 케이스를 결정하는 단계; -결정되고 있는 상기 테스트 케이스가 검증된 기능성 코드의 퍼센티지, 검증된 요구사항들의 퍼센티지, 검증 시간, 및 검증 비용의 기준들 중 하나 이상에 대한 미리 결정된 임계값에 도달하는 것을 가능하게 할 때 결정 프로세스를 중지하는 단계를 포함한다.

Description

하나의 소프트웨어의 적어도 일 부분을 검증하기 위해 테스트 케이스들을 자동 형성하는 방법{METHOD OF AUTOMATICALLY FORMULATING TEST CASES FOR VERIFYING AT LEAST ONE PART OF A PIECE OF SOFTWARE}
본 발명은 소프트웨어 제품의 기능성 테스트를 위해 테스트 케이스들을 형성하는 방법에 관한 것이다.
지난 몇 년에 걸쳐 전자공학은 자동차 설계에서 지배적인 위치를 가져왔다. 따라서 전자 차량 아키텍처들은 점점 더 복잡해지고 차량 제조사들은 차량 전자 공급업체들에 전자 모듈의 설계를 하청주었다. 이러한 전자 모듈들은 일반적으로 소프트웨어를 실행하는 프로세서를 포함하고 이러한 모듈들에서 발견된 많은 결함들은 버그들로 알려진 소프트웨어 에러들이다.
소프트웨어 발전 사이클에서 버그의 조기 발견 및 차량 제조사 또는 차량 사용자에 의해 발견된 버그들의 수의 감소는 차량 하청업체들에 대해 우선순위 목적이다.
지금까지 소프트웨어 테스트 기술자들은 그들의 개인 지식을 기초로 수작업으로 소프트웨어 테스트 케이스들을 형식화하는 것이 보통이었고, 그 결과로 테스트 결과들의 품질은 각각 개인적인 소프트웨어 테스트 기술자에 의존하였다.
따라서 본 발명의 목적은 상기 설명된 문제점을 제거하여 종래 기술에서 보다 더 신뢰할 수 있게 소프트웨어 버그들을 검출하는 것이 가능하도록 소프트웨어, 소프트웨어 구성요소 또는 소프트웨어 제품의 기능성 테스팅을 위해 테스트 케이스들의 형성을 자동화하는 것이다.
이를 위해, 본 발명은 프로세서들을 갖는 컴퓨터에 의해 소프트웨어의 입력 값들 및 출력 값들에 관계된 요구사항들을 포함하는 명세에 대한 하나의 소프트웨어의 적어도 일부 기능성을 검증(verifying)하기 위한 테스트 케이스들의 자동 형성의 방법을 제공하고, 상기 방법은 다음의 단계들을 포함한다 :
· 요구사항들 구별 프로세서에 의해 조합 요구사항들(combinatorial requirements) 및 순차 요구사항들(sequential requirements)로 구별하는 단계;
· 요구사항들 모델링 프로세서에 의해 모델링된 명세를 습득할 수 있도록 진리표에 의해 조합 요구사항들을 모델링하고 그리고 유한 상태 기계(finite state machine)에 의해 순차 요구사항들을 모델링하는 단계;
· 연산 매트릭스 구축 프로세서에 의해 상기 입력값들이 연속(succession)인 확률(probability) 및 상기 입력값들 간의 천이 시간(transition time)과 관련되는 상기 소프트웨어의 입력값들에 관한 연산 매트릭스(operation matrix)를 구축하는 단계;
· 입력 값들의 연속을 선택하는 프로세서에 의해, 상기 연산 매트릭스에 대해 몬테카를로법(Monte Carlo draw)을 수행함으로써 테스트될 입력 값들의 연속들을 선택하는 단계;
· 테스트 케이스 결정 프로세서에 의해, 각각 선택된 연속을 상기 모델링된 명세를 고려할 때 예상되는 출력값들과 관련시키는 테스트 행들(test rows)을 포함하는 테스트 케이스를 결정하는 단계;
· 결정 프로세스 중지 프로세서에 의해 결정되는 상기 테스트 케이스가 후속하는 기준들 중 하나 이상에 대한 미리 결정된 임계값에 도달하는 것을 가능하게 할 때 결정 프로세스를 중지하는 단계 : 검증된 기능성 코드의 퍼센티지, 검증된 요구사항들의 퍼센티지, 검증 시간, 및 검증 비용.
삭제
삭제
삭제
삭제
삭제
제안된 연산 매트릭스의 요구사항들 및 형식화의 프로세싱은 인간 개입의 최소화로 가능한 컴퓨터에 의해 본 발명의 방법의 자동화를 만든다. 이것은 버그 검출 성능, 상기 기능성을 검증하는데 필요한 시간의 감소, 및 검증 비용에서의 상호관련 감소의 개선을 가져온다.
본 발명의 다른 특징들 및 장점은 본 발명의 특정의 무제한 구현들의 후속하는 발명의 상세한 설명에 기재된다.
다음의 첨부된 도면에 의해 참조된다.
도 1은 본 발명의 원리의 블록도이고;
도 2는 모델링된 명세를 형성하는 프로세스의 블록도이고;
도 3은 본 발명을 사용하여 연산 매트릭스를 구축하는 원리의 블록도이고;
도 4 및 도 5는 동등한 가능성 연산 매트릭스들을 도시한 차트들이고;
도 6은 사용자 프로파일에 링크된 연산 매트릭스를 형성하는 작업을 도시한 차트이고;
도 7은 지난 테스트 케이스들에 링크된 작업 메트릭스를 형성하는 작업을 도시한 차트이고;
도 8은 지난 버그들에 링크된 작동 매트릭스를 형성하는 작업을 도시한 차트이고;
도 9는 테스트 케이스들을 결정하는 프로세스를 도시한 차트이고;
도 10은 테스트 케이스들의 결정을 중지하기 위한 기준을 도시한 차트이다.
일반적으로 말해서, 본 발명의 중요한 양태는 특히 자동차 분야에서 사용하기 위해 의도된 소프트웨어 구성요소 또는 제품의 기능적 테스팅을 위한 테스트 케이스들을 생성하기 위한 통합된 접근법을 제안한다.
이러한 방법은 컴퓨터가 소프트웨어의 입력값들 및 출력값들에 관계된 요구사항들을 포함하는 명세에 대해 적어도 하나의 소프트웨어 기능성을 검증하기 위해 자동적으로 테스트 케이스들을 형성하게 한다.
본 발명의 하나의 구현은 다음의 특징들 a) 내지 g) 중 하나 이상에 대한 접근법을 기초로 한다.
a) 하나의 소프트웨어의 기능적 요구사항들을 나타내기 위한 모델;
b) 드라이버 프로파일을 생성하기 위한 어플리케이션 프레임;
c) 이전 프로젝트들에 대한 테스트 케이스들 및 과거에 검출된 버그들을 회복하기 위한 어플리케이션 프레임;
d) 핵심 요구사항들(순환 제어 입력 또는 드라이버 액션, 순환 버그들, 피드백)에 관계된 통계 데이터를 사용하는 소프트웨어 명세 모델을 확장하기 위한 어플리케이션 프레임;
e) 소프트웨어(그 구조적 및 기능적 범위)의 품질 및 생성된 테스트 케이스의 비용에 기초한 목표 기능성(target function);
f) 테스트 중인 기능성의 입력 필드들의 몬테카를로 시뮬레이션에 기초한 테스트 알고리즘; 및
g) 테스트 케이스들의 자동 생성 동안 목표 기능성을 나타내는 형식을 최적화하기 위한 휴리스틱 최적화 알고리즘(heuristic optimization algorithm).
통합된 접근법 및 상응하는 컴퓨터 플랫폼이 기초가 되는 1) 내지 3)으로 번호 붙여진 다음의 분석들에서, 본 발명과 관련된 다른 정보가 주어진다.
1) 소프트웨어 요구사항들 모델링 : 현재 소프트웨어 요구사항 모델들이 주어진 산업적 또는 학술적 상황(context)을 위해 개발된다. 자동차 산업에서 소프트웨어 요구사항들을 나타내기 위한 통일된 모델은 없다. 자동차 제조사들은 그들의 공급자들에게 형식화된 요구사항들을 넘겨주고 관계된 공급자들은 자동차 제조사들의 형식화된 요구사항들에 그들의 프로세스들을 적응시켜야만 한다. 따라서 소프트웨어 요구사항들을 나타내기 위한 모델은 자동차 어플리케이션 및 그 제한들을 고려하여 제안된다. 각 소프트웨어 기능은 일 세트의 입력 신호들, 중간 신호들 및 출력 신호들을 갖는다. 상기 신호들은 엘리먼트들에 의해 서로 연결(link)된다. 엘리먼트는 일 세트의 동일한 타입의 기능적 요구사항들이다. 2개 타입들의 기능적 요구사항들이 2 개 타입의 모델링 엘리먼트들인, 결정 테이블(decision table, DT) 및 유한 상태 기계(finite state machine, FSM)을 기초로 모델링될 수 있는 제 1 레벨에서(조합(combinatorial) 또는 순차(sequential) 방식으로) 제안된다.
2) 핵심 테스트들이 버그를 발견할 높은 확률을 제공하기 때문에 영향을 받을 핵심 테스트들에 대한 집중 : 자동차 제조사들 또는 차량 사용자들에 의해 발견되었된 모든 버그들의 분석은 특정 드라이버-순응(driver-oriented) 제어 입력들 또는 액션들이 이러한 버그들의 일부를 명확하게 하도록 요구한다는 것을 보여주었다. 또한, 자동차 분야에서 과거에 검출되고 과거에 개발된 테스트 케이스들의 버그들의 사용은 매우 유익하고, 주어진 소프트웨어 제품의 기능성의 절반 이상이 각 시리즈의 차량들에 공통된다는 것이 주어진다. 따라서 특정 소프트웨어 기능을 사용할 때 드라이버의 행동을 모델링하기위한 어플리케이션 프레임 및 주어진 기능성에 대해 과거에 활용했던 데이터를 재활용하기 위한 다른 어플리케이션 프레임의 2 개의 어플리케이션 프레임들이 제안된다. 더욱이, 상기 요구사항들에 관한 통계적 데이터를 추가하기 위한 구조가 제안되고, 상기 데이터는 차량의 드라이버의 행동 프로파일에 관련되고 유사한 제품들에서 버그들의 검출에 관련된 경험의 사용에 관련된다. 이러한 요구사항들 모델의 확장은 또한 기존 버그들을 발견할 확률에 관련되는 테스트들이 생성될 수 있게 한다.
3) 품질 지표에 의해 테스트 자동 생성의 모니터링: 소프트웨어 테스트들은 소프트웨어 테스트 기술자들이 테스트 프로토콜이 종료되어야만 할때를 결정하는 것에 조력하는 특정 가설 및 목표들에 종종 기초한다. 테스트 케이스들의 생성을 모니터링 하기 위해 품질 지표들, 예를 들어 형식 구조 또는 기능성 범위 및 생성된 테스트들의 비용에 기초한 목표 기능이 제안된다. 소프트웨어 테스터가 품질 지표들의 이러한 3 개의 서브세트들에 대한 정밀한 목표 규정을 한정하게 하는 인터페이스 윈도우가 또한 제안된다. 그 결과, 입력 필드에서 몬테 카를로 시뮬레이션에 의해 테스트 케이스들을 생성하는 동안 휴리스틱 최적화 알고리즘(heuristic optimization algorithm)이 목표 기능을 최적화하는데 조력한다.
도면을 참조하면, 본 발명의 특정한 일 구현예에서 도 1에 도시된 전체적인 원리의 방법은 명세(specification)을 모델링하는 단계로 시작한다.
명세는 검증될 소프트웨어 기능성의 입력값들 및 출력값들에 대해 요구사항들(Req)을 포함한다. 여기서 3 개의 입력들(I) 및 2 개의 출력들(O)이 있다:
· 입력I1은 가능한 값 0, 1을 갖고;
· 입력I2은 가능한 값 1, 2, 3을 갖고;
· 입력I3는 가능한 값 0, 1을 갖는다.
이러한 단계는 명세(도 2)에서 조합 요구사항들(combinational requirements) 및 순차 요구사항들(sequential requirements) 사이에 구별되는 단계를 포함한다(도 2). 요구사항은 출력(O)이 입력(I)에 의존할 때 : OReq(t) = f(IReq(t)), 조합(combinatorial)이다. 시간 t에서 출력(O)이 시간 t에서의 상기 입력(I) 및 이전 시간에서의 출력(O)에 의존할 때 : OReq(t)=f(IReq(t), OReq(t-1)), 요구사항은 순차(sequential)이다.
이후 조합 요구사항들은 진리표 또는 결정 테이블에 의해 자동 모델링되고 순차 요구사항들은 (개시 상태, 종료 상태 및 조건들에 종속될 수 있는 개시 상태와 종래 상태 사이의 천이들(transitions)을 결합하는) 유한 상태 기계에 의해 모델링된다. 이것은 시뮬레이션될 수 있는, 요구사항들의 모델링된, 명세를 획득하는 것을 가능하게 한다. 모델링된 명세는 이후 바람직하게 초기 명세와 양호한 매칭임을 보장하도록 테스팅되고 검증된다.
이후 소프트웨어의 입력 값들, 입력 값이 연속인 확률, 입력값들 간의 천이 시간에 관한 연산 매트릭스가 작성된다(도 3 참조). 연산 매트릭스는 입력(I1, I2, I3)의 가능한 값들(0, 1; 1, 2, 3)이 있는 다수의 행들(rows)과 열들(columns)을 포함하고, 행은 입력 값에 상응하고 그리고 열 또한 입력 값에 상응한다. 모든 입력들 및 이들의 가능한 값들은 이러한 행들 및 열들에서 나타난다. 각 행 및 열 교차점은 열 입력값이 행 입력값을 연속하는 확률(동일한 행에 대한 확률의 합이 1과 같음) 및 열 입력 값이 행 입력 값을 연속하는데 필요한 시간 또는 시간 범위를 포함한다. 이것은 입력 값 연속(input value succession)으로 지칭된다.
여기에 5 개의 연산 매트릭스들이 생성된다.
제 1 연산 매트릭스(도 4)에서, 입력 값은 동일한 확률을 갖는 임의의 입력에 의해 연속될 수 있다. 따라서 모든 연속들은 입력들과 관계없이 발생하는 동일한 확률을 갖는다.
제 2 연산 매트릭스(도 5)에서, 입력값은 동일한 확률을 갖는 임의의 입력에 의해 연속될 수 있다. 모든 연속들은 입력값을 연속하는 각각의 입력에서 발생하는 동일한 확률을 갖는다.
제 3 연산 매트릭스(도 6)은 입력 값들의 연속에 대한 다음의 타입들의 구속 중 적어도 하나를 입력 값들의 각각의 연속을 식별하여 검증될 기능성에 대한 사용자 프로파일을 결정하여 획득된다:
· 논리 구속조건들
· 조건 구속조건들
· 연속 구속조건들
· 타이밍 구속조건들
논리 구속조건들을 분석하는 것은 사이클 또는 비사이클 입력들을 식별하는 것을 가능하게 한다: 입력은 입력에 값 3을 할당하기 위해, 값들 1 및 2 전 및 후에 입력에 할당하는 것이 필요하다면 사이클이다. 조건 구속조건들을 분석하는 것은 입력값이 미리 결정된 값으로 가도록(go to a predetermined values) 필요한 입력값들을 식별하는 것을 가능하게 한다: 예를 들어, I2가 0과 같을 때만 I1은 1과 같을 수 있다. 연속 구속조건들을 분석하는 것은 강제적인 연속을 식별하는 것을 가능하게 한다: 예를 들어, I1은 1로 가고, I2는 2에 가고, 및 I3는 0에 간다. 타이밍 구속조건들은 하나의 입력 값이 다른 것을 연속하는 것이 필요한 대기 시간 또는 대기 시간 범위를 결정하는 것을 가능하게 한다. 이러한 연속들은 제 3 연산 매트릭스로 건네진다.
제 4 연산 매트릭스(도 7)은 검증될 기능성에 관계되는 지난 테스트 케이스들의 데이터베이스로부터 데이터의 통계 분석에 기인한다. 이러한 통계 분석은 지난 테스트 케이스들에서 입력값들의 각각의 연속의 검증 횟수를 식별하는데 적응되게 한다. 데이터베이스는 모든 지난 테스트 케이스들을 조합하고, 그 재사용을 촉진시키도록 기능성에 의해 분류될 수 있다. 통계적 분석은 검증될 것과 동일한 동일한 기능성에 관계된 데스트 케이스들의 중심이 된다. 이러한 데이터베이스는 예를 들어 마이크로소프트 엑셀 스프레드시트와 같은 스프레드시트에 저장된다. 제 4 연산 매트릭스의 형성 및 통계적 분석은 예를 들어 비주얼 베이직 타입 프로그래밍 언어를 사용하여 개발된 매크로명령에 의해 영향을 받는다.
제 5 연산 매트릭스(도 8)는 검증될 기능성에 관한 버그들의 데이터 베이스로부터의 데이터의 통계적 분석에 기인한다. 이러한 통계적 분석은 기능성의 알려진 버그들이 나타나는 프로세스에 입력 값들의 연속들의 발생 회수를 식별하는데 적응되게 한다. 데이터베이스는 버그들이 발생하는 것을 초래한 프로세스(즉, 천이 시간을 갖는 입력 값들의 연속)에 의해 과거에 발견된 모든 버그들을 조합하고, 버그들의 재사용을 촉진시키도록 기능성에 의해 분류될 수 있으며 상기 통계적 분석이 검증될 것과 동일한 기능성에 관해 버그들의 중심이 된다. 이러한 데이터베이스는 예를 들어 마이크로소프트 엑셀 스프레드시트와 같은 스프레드시트에 저장된다. 제 5 연산 매트릭스의 형성 및 통계적 분석은 예를 들어 비쥬얼 베이직 타입 프로그래밍 언어를 사용하여 개발된 매크로명령에 의해 영향을 받는다.
상기 5개의 연산 매트릭스들은 단일 연산 매트릭스를 형성하도록 조합될 수 있거나 5개의 연산 매트릭스들에서 연속들이 선택될 수 있도록 5개의 매트릭스들이 함께 저장될 수 있다.
이후 상기 방법은 연산 매트릭스들(여기에서는 5개의 연산 매트릭스들) 중 하나 이상에 몬테카를로법을 적용하여 테스트될 입력값들의 연속들을 선택하는 단계 및 각각의 선택된 연속을 모델링된 명세로부터 예상되는 출력값들이라고 관련시키는 테스트 행들을 포함하는 테스트 케이스를 결정하는 단계를 포함한다(도 9).
결정 프로세스는 결정되는 테스트 케이스가 다음의 기준의 적어도 하나에 대해 결정된 임계값에 도달하는 것이 가능하게 할 때 중지된다: 검증된 기능성 코드의 퍼센티지(검증에 의해 커버된 코드의 양), 검증된 요구사항들의 퍼센티지(검증에 의해 커버될 요구사항들), 검증 시간, 및 검증 비용.
테스트 케이스 결정을 중지하는 것은 적어도 일부의 가중 기준을 포함하는 형식(또는 목표 기능)으로부터 결정된다.
여기서 형식은:
Figure 112010083898405-pct00001
여기서 Otarget은 검증된 퍼센티지 임계값(코드 및 요구사항)이고, Ocurrent는 결정되고 있는 테스트 케이스에 의해 현재 검증된 퍼센티지이고, Ctarget은 시간 및 비용 임계값이고, Ccurrent는 테스트 케이스의 현재 상태에 대한 검증에 필요한 시간 및 검증의 실제 비용이고, Wi는 퍼센티지, 시간 및 비용, 각각에 적용된 가중치이다.
도 9는 작업자가 도달이 요구되는 임계값들 및 임계값들에 할당된 중요도에 따른 이들의 가중치를 입력할 수 있게 하는 인터페이스를 도시한다.
결정 프로세스를 중지하는 것은 이러한 형식에 대한 각각 테스트 행을 유효성 검사하는 단계 이후에 이루어지고, 각각의 테스트 단계는 형식의 결과에 대한 유리한 전개(favorable evolution)를 가져온다면 유지된다. 만약 그렇지 않으면, 이러한 테스트 행은 무시되고 새로운 행이 형성된다. 동일한 방식으로, 결정 프로세스를 중지하는 것은 테스트된 입력값이 이전 테스트 행에서 이미 테스트되었는지를 검증하는 각 테스트 행를 유효성 검사하는(validating) 단계 이후에 이루어진다. 이것은 테스트 케이스를 결정하는 것 및 상기 결정이 결정 프로세스를 중지하게 하는 것을 최적화할 수 있게 만드는 휴리스틱 알고리즘을 구성한다.
상기 방법은 바람직하게 사용자가 결정 프로세스를 중지하기 위해 기준의 임계값들을 한정하는 것을 가능하게 하는 구성 단계를 포함한다.
이러한 구성 단계 동안, 작업자는 세트 임계값들을 달성하는 것 없이 프로그램이 무한 루프를 실행하는 것을 방지하도록 테스트 행 또는 연속을 포기한 후에 관찰될 테스트들의 수를 또한 지시할 수 있다.
복수의 기능성 스타팅 구성들이 테스트 케이스에 대해 관찰될 수 있다면, 상기 방법을 구성하는 단계는 작업자가 고려된 스타팅 구성들의 수를 고정하는 것이 가능하도록 구성될 수 있다.
본 발명의 방법의 전체는 컴퓨터 프로그램에 의해 구현된다.
물론, 본 발명은 기술된 구현예들에 제한되지 않으며 청구범위에 의해 한정된 발명의 범위 내에서 모든 변형예들을 포함한다.
특히, 연산 매트릭스는 중간 연산 매트릭스, 예를 들어 전술된 바와 같이, 최종 연산 매트릭스를 형성하도록 구성되는 5개의 연산 매트릭스로부터 생성될 수 있다. 물론, 중간 연산 매트릭스들의 수는 상이할 수 있고 임의의 중간 연산 매트릭스를 경험하는 것 없이 최종 연산 매트릭스를 생성하는 것이 가능하다. 또한 작업자에 의해 그들의 경험 및/또는 기능성의 특정 특징들에 따라 형성된, 중간이거나 아니거나, 전체 또는 일부 연산 매트릭스를 추가하는 것이 가능하다.
테스트 케이스들을 결정하는 프로세스는 상기 전술된 기준의 하나 이상 또는 하나 이상의 다른 기준에 따라 정지될 수 있다.

Claims (8)

  1. 소프트웨어의 입력값들 및 출력값들에 관계된 요구사항들을 포함하는 명세(specification)에 대해, 프로세서들을 갖는 컴퓨터에 의해 하나의 소프트웨어의 하나 이상의 기능성을 검증(verifying)하기 위한 테스트 케이스들을 자동적으로 형성하는 방법으로서,
    · 요구사항들 구별 프로세서에 의해 조합 요구사항들(combinatorial requirements) 및 순차 요구사항들(sequential requirements)로 구별하는 단계;
    · 요구사항들 모델링 프로세서에 의해 모델링된 명세를 습득할 수 있도록 진리표에 의해 조합 요구사항들을 모델링하고 그리고 유한 상태 기계(finite state machine)에 의해 순차 요구사항들을 모델링하는 단계;
    · 연산 매트릭스 구축 프로세서에 의해 상기 입력값들이 연속(succession)인 확률(probability) 및 상기 입력값들 간의 천이 시간(transition time)과 관련되는 상기 소프트웨어의 입력값들에 관한 연산 매트릭스(operation matrix)를 구축하는 단계;
    · 입력 값들의 연속을 선택하는 프로세서에 의해, 상기 연산 매트릭스에 대해 몬테카를로법(Monte Carlo draw)을 수행함으로써 테스트될 입력 값들의 연속들을 선택하는 단계;
    · 테스트 케이스 결정 프로세서에 의해, 각각 선택된 연속을 상기 모델링된 명세를 고려할 때 예상되는 출력값들과 관련시키는 테스트 행들(test rows)을 포함하는 테스트 케이스를 결정하는 단계;
    · 결정 프로세스 중지 프로세서에 의해 결정되는 상기 테스트 케이스가 검증된 기능성 코드의 퍼센티지, 검증된 요구사항들의 퍼센티지, 검증 시간, 및 검증 비용의 기준들 중 하나 이상에 대한 미리 결정된 임계값에 도달하는 것을 가능하게 할 때 결정 프로세스를 중지하는 단계;를 포함하는,
    방법.
  2. 제 1 항에 있어서,
    상기 연산 매트릭스를 구축하는 단계는 상기 기능성의 알려진 버그들이 발생하는 프로세스에서 입력 값들의 연속들이 발생하는 횟수를 식별하기 위해 검증될 기능성에 관계된 소프트웨어 버그들의 데이터베이스로부터 데이터의 통계적 분석을 수행하는 단계를 포함하는
    방법.
  3. 제 1 항에 있어서,
    상기 연산 매트릭스를 구축하는 단계는 지난 테스트 케이스들에서 입력 값들의 각각의 연속의 검증 횟수를 식별하기 위해 검증될 기능성에 관계된 지난 테스트 케이스들의 데이터베이스로부터 데이터의 통계적 분석을 수행하는 단계를 포함하는
    방법.
  4. 제 1 항에 있어서,
    상기 연산 매트릭스를 구축하는 단계는 입력값들의 각각의 연속에 대해 입력 값들의 연속에 대한 다음의 타입들의 구속조건: 논리 구속조건들; 조건 구속조건들; 연속 구속조건들; 타이밍 구속조건들 중 하나 이상을 식별하여 검증될 기능성에 대한 사용자 프로파일을 결정하는 단계를 포함하는
    방법.
  5. 제 1 항에 있어서,
    상기 테스트 케이스의 결정 프로세스를 중지하는 단계는 가중된 기준을 포함하는 형식을 기초로 결정되는
    방법.
  6. 제 5 항에 있어서,
    상기 결정 프로세스를 중지하는 단계는 상기 형식에 대해 각 테스트 행을 유효성 검사하는 단계 이후에 이루어지며, 상기 형식의 결과의 유리한 전개(favorable evolution)를 가져온다면 각 테스트 단계가 유지되는(retained)
    방법.
  7. 제 6 항에 있어서,
    상기 결정 프로세스를 중지하는 단계는 상기 테스트된 입력값이 선행하는 테스트 행에서 이미 테스트되었는지를 검증하는 각 테스트 행을 유효성 검사하는 단계에 의해 선행되는
    방법.
  8. 제 1 항에 있어서,
    사용자가 상기 결정 프로세스를 중지할 때를 결정하기 위해 기준의 임계값들을 한정하게 할 수 있는 구성 단계를 포함하는
    방법.
KR1020107028596A 2008-05-19 2009-05-19 하나의 소프트웨어의 적어도 일 부분을 검증하기 위해 테스트 케이스들을 자동 형성하는 방법 KR101254609B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102008024170 2008-05-19
DE102008024170.9 2008-05-19
PCT/EP2009/003566 WO2009149815A1 (fr) 2008-05-19 2009-05-19 Procede d'elaboration automatique de cas de test pour la verification d'au moins une partie d'un logiciel

Publications (2)

Publication Number Publication Date
KR20110036796A KR20110036796A (ko) 2011-04-11
KR101254609B1 true KR101254609B1 (ko) 2013-04-15

Family

ID=41011802

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107028596A KR101254609B1 (ko) 2008-05-19 2009-05-19 하나의 소프트웨어의 적어도 일 부분을 검증하기 위해 테스트 케이스들을 자동 형성하는 방법

Country Status (5)

Country Link
US (1) US8612171B2 (ko)
EP (1) EP2286339B1 (ko)
JP (1) JP5412510B2 (ko)
KR (1) KR101254609B1 (ko)
WO (1) WO2009149815A1 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384198B2 (en) 2010-12-10 2016-07-05 Vertafore, Inc. Agency management system and content management system integration
CN103246948B (zh) * 2012-02-14 2016-08-10 华为技术有限公司 需求管理的方法及装置
US8869096B2 (en) * 2012-02-14 2014-10-21 Huawei Technologies Co., Ltd. Requirement management method and apparatus
US20140052757A1 (en) * 2012-08-17 2014-02-20 International Business Machines Corporation Techniques providing a software fitting assessment
KR101330141B1 (ko) 2013-04-04 2013-11-15 비티에스테크놀로지스(주) 테스트 케이스 자동 생성 시스템의 노드 선택 방법
KR101334806B1 (ko) * 2013-04-04 2013-11-29 비티에스테크놀로지스(주) 테스트 케이스 자동 생성 시스템에서 테스트 케이스를 구성하는 입력값의 집합을 자동으로 산출하는 방법
GB201320233D0 (en) * 2013-11-15 2014-01-01 Ultra Electronics Ltd Method and apparatus for controlling complex systems
CN103678121B (zh) * 2013-11-18 2016-03-02 杭州电子科技大学 一种嵌入式二进制软件测试用例优先排序方法
US9507814B2 (en) 2013-12-10 2016-11-29 Vertafore, Inc. Bit level comparator systems and methods
US9367435B2 (en) * 2013-12-12 2016-06-14 Vertafore, Inc. Integration testing method and system for web services
GB2522483B (en) 2014-03-07 2015-12-09 Testplant Ltd Method and system for entering time information into an automated software test
GB2522484B (en) 2014-03-07 2016-02-10 Testplant Ltd Method and system for creating reference data for an automated test of software with a graphical user interface
KR101469880B1 (ko) * 2014-05-20 2014-12-08 비티에스테크놀로지스(주) 테이블 요구사항 기반 테스트 케이스 및 기대 값 자동 생성 방법
US9747556B2 (en) 2014-08-20 2017-08-29 Vertafore, Inc. Automated customized web portal template generation systems and methods
US20160055077A1 (en) * 2014-08-25 2016-02-25 General Electric Company Method, device, and program storage device for autonomous software product testing
EP3021225B1 (en) * 2014-11-14 2020-07-01 Mastercard International, Inc. Automated configuration code based selection of test cases for payment terminals
US10108536B2 (en) 2014-12-10 2018-10-23 General Electric Company Integrated automated test case generation for safety-critical software
US9600400B1 (en) 2015-10-29 2017-03-21 Vertafore, Inc. Performance testing of web application components using image differentiation
US9940222B2 (en) 2015-11-20 2018-04-10 General Electric Company System and method for safety-critical software automated requirements-based test case generation
US10025696B2 (en) 2016-02-09 2018-07-17 General Electric Company System and method for equivalence class analysis-based automated requirements-based test case generation
AU2018200643A1 (en) * 2017-03-09 2018-09-27 Accenture Global Solutions Limited Smart advisory for distributed and composite testing teams based on production data and analytics
CN111143195B (zh) * 2019-12-03 2023-07-18 江苏大学 一种基于候选测试用例集迭代的自适应随机测试方法
CN111352834B (zh) * 2020-02-25 2023-06-09 江苏大学 一种基于局部敏感哈希的自适应随机测试方法
US11144435B1 (en) 2020-03-30 2021-10-12 Bank Of America Corporation Test case generation for software development using machine learning
US11036613B1 (en) 2020-03-30 2021-06-15 Bank Of America Corporation Regression analysis for software development and management using machine learning
JP2022014468A (ja) * 2020-07-07 2022-01-20 日立Astemo株式会社 テスト支援装置及びテスト支援方法
CN111934948B (zh) * 2020-07-20 2022-04-12 浙江理工大学 基于蒙特卡洛树搜索的efsm可执行测试序列生成方法
CN113900423B (zh) * 2021-08-31 2023-07-14 北京空间飞行器总体设计部 一种基于fsm的火星车休眠唤醒功能验证方法
CN115955410B (zh) * 2023-03-13 2023-08-18 国网智联电商有限公司 基于云计算环境的数据可视化建模与匹配方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006007588A2 (en) * 2004-07-01 2006-01-19 Hewlett-Packard Development Company, L.P. Method and system for test case generation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2671793B2 (ja) * 1993-12-15 1997-10-29 日本電気株式会社 プログラムジェネレータ利用仕様シミュレーション方法およびその装置
US6189116B1 (en) * 1998-07-14 2001-02-13 Autodesk, Inc. Complete, randomly ordered traversal of cyclic directed graphs
JP2001256078A (ja) * 2001-01-31 2001-09-21 Mitsubishi Electric Corp テスト支援装置
JP2002259161A (ja) * 2001-03-02 2002-09-13 Hitachi Ltd テストスクリプトの自動生成装置
US20040154001A1 (en) * 2003-02-05 2004-08-05 Haghighat Mohammad R. Profile-guided regression testing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006007588A2 (en) * 2004-07-01 2006-01-19 Hewlett-Packard Development Company, L.P. Method and system for test case generation

Also Published As

Publication number Publication date
JP5412510B2 (ja) 2014-02-12
US20110184689A1 (en) 2011-07-28
JP2011521368A (ja) 2011-07-21
EP2286339B1 (fr) 2018-09-26
EP2286339A1 (fr) 2011-02-23
WO2009149815A1 (fr) 2009-12-17
US8612171B2 (en) 2013-12-17
KR20110036796A (ko) 2011-04-11

Similar Documents

Publication Publication Date Title
KR101254609B1 (ko) 하나의 소프트웨어의 적어도 일 부분을 검증하기 위해 테스트 케이스들을 자동 형성하는 방법
US10025696B2 (en) System and method for equivalence class analysis-based automated requirements-based test case generation
Menghi et al. Approximation-refinement testing of compute-intensive cyber-physical models: An approach based on system identification
US7844955B2 (en) Performance computer program testing after source code modification using execution conditions
US6622298B1 (en) Method and apparatus for testing software having a user interface
KR101255744B1 (ko) 통합 오류주입을 이용한 임베디드 시스템의 신뢰도를 측정하는 시스템 및 그 방법
US8868381B2 (en) Control system design simulation using switched linearization
Amara et al. Towards a new framework of software reliability measurement based on software metrics
US7322016B2 (en) Impact checking technique
US7124383B2 (en) Integrated proof flow system and method
US7093218B2 (en) Incremental, assertion-based design verification
Ramezani et al. Multiple objective functions for falsification of cyber-physical systems
Zhang et al. Automatic assertion generation for simulation, formal verification and emulation
JP6248008B2 (ja) ソフトウェア検証システムおよび制御装置
JP2000066919A (ja) 制約有効性チェック
Awedikian et al. A practical model‐based statistical approach for generating functional test cases: application in the automotive industry
US10755012B2 (en) System and method for generating a functional simulations progress report
CN113804451A (zh) 一种汽车智能驾驶自动化仿真测试方法及装置
Steindl et al. Optimizing software integration by considering integration test complexity and test effort
CN114443464A (zh) 用于选择用来测试程序代码的模糊测试方法的方法和装置
US7650579B2 (en) Model correspondence method and device
Bandeira et al. An extensive soft error reliability analysis of a real autonomous vehicle software stack
EP3091453A1 (en) Designing a longevity test for a smart tv
JPH1185828A (ja) 順序回路機能検証方法および順序回路機能検証システム
Verma et al. An efficient control-oriented coverage metric

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170405

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180427

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 7