KR102610914B1 - 히스테리시스 곡선으로부터 테스트 시나리오 자동 생성 방법 - Google Patents

히스테리시스 곡선으로부터 테스트 시나리오 자동 생성 방법 Download PDF

Info

Publication number
KR102610914B1
KR102610914B1 KR1020230022281A KR20230022281A KR102610914B1 KR 102610914 B1 KR102610914 B1 KR 102610914B1 KR 1020230022281 A KR1020230022281 A KR 1020230022281A KR 20230022281 A KR20230022281 A KR 20230022281A KR 102610914 B1 KR102610914 B1 KR 102610914B1
Authority
KR
South Korea
Prior art keywords
curve
hysteresis
checkpoints
section
function
Prior art date
Application number
KR1020230022281A
Other languages
English (en)
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 KR1020230022281A priority Critical patent/KR102610914B1/ko
Application granted granted Critical
Publication of KR102610914B1 publication Critical patent/KR102610914B1/ko

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • 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/3676Test management for coverage analysis

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)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 실시예는 어떤 시스템의 요구사항이 히스테리시스 곡선으로 주어졌을 때 요구사항을 기술할 때 사용되는 히스테리시스 곡선으로부터 체계적으로 테스트 시나리오를 생성하는 방법을 개시한다.
개시된 테스트 시나리오 생성 방법은, 시스템의 요구사항(Requirements)에 입력의 크기와 방향에 따라 출력 특성이 달라지는 히스테리시스 곡선을 포함하는 시스템에 있어서, 상기 히스테리시스 곡선의 함수 곡선의 수를 산출하는 단계와, 각 함수 곡선에 대해 식별명을 부여하고, 각 함수 곡선의 교차점 좌표와 최소값, 최대값을 찾아 함수 곡선의 진행 방향에 따라 구간을 구분하기 위한 구간 구분점 세트를 정의하는 단계와, 함수 곡선의 각 구간 내의 검사점 갯수를 정하고, 해당 검사점 갯수만큼의 검사점을 각 구간 내에 생성하는 단계와, 검사점들에 대한 테스트 케이스의 집합으로 히스테리시스 테스트 시나리오를 생성하는 단계를 포함한다.

Description

히스테리시스 곡선으로부터 테스트 시나리오 자동 생성 방법 {Method for automatic test scenario generation from hysteresis curve}
본 발명은 체계적 테스트 시나리오 생성 방법에 관한 것으로, 더욱 상세하게는 어떤 시스템의 요구사항이 히스테리시스 곡선으로 주어졌을 때 요구사항을 기술할 때 사용되는 히스테리시스 곡선으로부터 체계적으로 테스트 시나리오를 생성하는 방법에 관한 것이다.
일반적으로, 소프트웨어 혹은 임베디드 시스템은 요구사항(Requirements)을 기반으로 만들어진다. 요구사항은 어떤 시스템이 가져야 하는 기능 및 형상을 말한다. 따라서 구현된 시스템은 그 요구사항을 반드시 만족해야 하며, 만족 여부를 검사를 해야한다.
개발된 시스템을 테스트하기 위해 사용하는 테스트 기법에는 시스템 내부 코드를 기반으로 하는 화이트박스(White Box)와, 시스템의 외부 기능을 중점적으로 테스트 하는 블랙박스(Black Box) 기법이 있다.
화이트박스 테스트 케이스는 소스 코드 수준에서 코딩 규칙이나 코드의 실행 오류(Run time eror) 등을 파악하기 위해 개발 단계에서 많이 사용한다. 하지만 소스 코드를 획득하기 어렵거나 하드웨어에 내장되어 시스템의 동작 오류를 검증하는데 사용하기는 어렵다. 또한 구현된 소프트웨어가 요구사항에 맞게 동작하는지 등을 검증하기 위해서는 추가적인 정보가 필요하다.
블랙박스 테스트 케이스는 소스 코드가 아니라 완성된 시스템이 요구사항 또는 소프트웨어 요구사항 명세서와 일치하는지를 테스트 하는데 사용된다. 블랙박스 테스트를 위한 요구사항은 하드웨어 요구사항, 기능 요구사항 그리고 신뢰성 요구사항 등 종류가 다양하며 일반적으로 자연어(Natural Language)로 기술한다. 블랙박스 테스트 케이스 생성 방법으로는 임의(Random) 생성 방법, 시스템 입력 조합(Combinatorial)을 이용하는 생성 방법 및 모델 기반(Model-based) 생성 방법 등이 있다.
요구사항 만족 여부는 구현된 시스템에 다양한 입력을 가하고, 가해진 입력들에 따라 생성한 출력들이 요구사항을 만족하는지를 검사하여 판별한다. 이 때, 사용하는 테스트 입력 및 조건(즉, 테스트 케이스)을 생성하는 작업은 매우 중요하고 어려운 작업이다.
테스트 케이스를 만드는 방법은 크게 요구사항 분석을 통하여 테스트 엔지니어가 경험 기반으로 생성하는 방법과, 알고리즘에 의해 체계적 방법(컴퓨터를 이용한 자동화 방법)으로 생성하는 방법이 있다. 경험 기반 생성 방안은 특별한 도구나 제약이 없고, 복잡한 테스트 케이스를 만들 수 있다는 장점이 있는 반면, 사람이 생각하지 못한 테스트 케이스를 생성하지 못한다거나, 단순하고 생성하기 쉽지만 필요한 테스트 케이스를 생성하는데 많은 지루한 노력이 필요하며, 사람의 실수로 생성하지 못하는 경우도 발생할 수 있다는 단점이 있다.
체계적 테스트 케이스 생성 방법은 알고리즘에 의해 테스트 케이스를 생성하므로, 경험 기반 테스트 케이스 생성 방법의 단점을 보완해 줄 수 있다. 두 방법의 장단점으로 고려해 많은 산업 현장에서는 두 방법으로 생성된 테스트 케이스를 병행해서 사용한다.
한편, 히스테리시스 곡선은 어떤 시스템의 외부 입력의 크기와 방향에 따라 그 시스템의 출력 특성이 달라지는 요구사항을 표현할 때, 많이 사용한다. 어떤 시스템의 요구사항이 히스테리시스 곡선으로 주어졌을 때, 요구사항을 구현한 시스템이 제대로 만들어졌는지를 검사하기 위한 입력 조건이 필요하고, 검사하기 위한 입력 조건은 히스테리시스의 특성을 반드시 고려하여야 한다.
종래의 체계적 테스트 케이스 생성 방법은 결정 커버리지(Decision Coverage), 조건 커버리지(Condition Coverage) 및 변형된 조건 결정 커버리지 (MCDC:Modified Condition Decision Coverage)를 만족하는 다양한 테스트 케이스 생성 방법들이 제안되어 있다.
그러나 어떤 시스템의 요구사항이 히스테리시스 곡선으로 주어졌을 때, 이와 같은 히스테리시스를 고려한 테스트 시나리오 생성 방법은 알려져 있지 않다. 특히 종래에 제시되는 대부분의 체계적 테스트 케이스 생성 방법은 특정 조건에 부합하는 임의의 입력 조합으로 구성된다. 일부 체계적 테스트 시나리오 방법에서도 요구사항에 시나리오(예 ‘user case’)를 작성하여 두고 이를 테스트 시나리오로 사용하는 정도이며, 히스테리시스 특성과 같은 요구사항을 고려한 체계적 테스트 시나리오를 생성하는 방법은 제안된 바 없다.
시스템의 요구사항이 히스테리시스 곡선으로 주어졌을 때, 히스테리시스를 고려한 테스트 시나리오를 잘 작성하기 위해서는 히스테리시스 곡선의 모든 입력 구간과 방향 그리고 특정 구간 진입 전의 상태 등을 고려하여야 한다. 이와 같은 작업을 엔지니어가 수작업으로 하기에는 많은 시간과 노력이 필요하며, 생성된 시나리오 또한 완전하지 않을 수 있는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위해 제안된 것으로, 본 발명이 해결하고 자 하는 과제는 히스테리시스 곡선으로 표현된 요구사항을 검사하기 위한 체계적 테스트 시나리오 생성 방법을 제공하는 것이다.
본 발명의 실시예는 히스테리시스 곡선으로 표현된 요구사항을 검사하기 위한 체계적 테스트 시나리오 생성 방법을 개시한다.
개시된 테스트 시나리오 생성 방법은, 요구사항(Requirements)에 입력의 크기와 방향에 따라 출력 특성이 달라지는 히스테리시스 곡선이 포함된 테스트 대상 시스템에 대하여 테스트 시나리오를 자동으로 생성하기 위한 컴퓨터 시스템에 있어서, 상기 컴퓨터 시스템이 상기 히스테리시스 곡선의 함수 곡선의 수를 산출하는 단계와, 상기 컴퓨터 시스템이 각 함수 곡선에 대해 식별명을 부여하고, 각 함수 곡선의 교차점 좌표와 최소값, 최대값을 찾아 함수 곡선의 진행 방향에 따라 구간을 구분하기 위한 구간 구분점 세트를 정의하는 단계와, 상기 컴퓨터 시스템이 함수 곡선의 각 구간 내의 검사점 갯수를 정하고, 해당 검사점 갯수만큼의 검사점을 각 구간 내에 생성하는 단계와, 상기 컴퓨터 시스템이 검사점들에 대한 테스트 케이스의 집합으로 히스테리시스 테스트 시나리오를 생성하는 단계를 포함한다.
상기 구간 구분점 세트를 정의하는 단계는, 각 함수 곡선에서 타 곡선과 교차점의 입력 좌표를 모두 찾아 임의의 함수 곡선 Ci가 타 함수 곡선과 교차하는 교차점의 개수를 ki라 하면, 이 교차점 입력 좌표들을 {(P(i,1), P(i,2), ...., P(i,ki)}라 하고, Ci가 가질 수 있는 입력 최소값을 P(i,0)라 하고 최대값을 P(i,ki+1)라 할 때, 입력 최소값 및 최대값과 교차점 입력 좌표을 모두 포함한 좌표들인 {P(i,0), P(i,1), P(i,2),.... P(i,ki),P(i,ki+1)}를 Ci의 구간 구분점(h점이라 한다) 세트라 정의하는 것이다. 이 때, 구간이라 함은 Ci의 연속된 두 입력 좌표 사이를 말한다. 예를 들면 Ci의 두 입력 좌표인 P(i, j)와 P(i, j+1) (단 j < ki)는 하나의 구간이다.
상기 검사점은 함수 곡선의 각 구간의 최소값과 최대값 사이에서 임의로 정하되 적어도 2개 이상으로 하여야 한다.
상기 검사점을 생성하는 단계는, T(ii, jj, mm)을 함수 곡선 Cii의 교차점 입력좌표 P(ii, jj)로부터 mm번째 검사점이라 할 때, 함수 곡선의 진행 방향이 오른쪽이면 검사점 T(ii, jj, mm+1) > T(ii, jj, mm)이 되게 하고, 함수 곡선의 진행 방향이 왼쪽이면 검사점 T(ii, jj, mm) > T(ii, jj, mm+1)이 되게 생성하는 것이다.
상기 히스테리시스 테스트 시나리오를 생성하는 단계는, 각 함수 곡선에 대하여 각 구간 내의 검사점을 시나리오에 추가함과 아울러 서로 인접한 구간 사이를 테스트하기 위한 구간 사이 검사점을 시나리오에 추가하여 생성하는 것을 특징으로 한다.
본 발명의 실시예에 따르면, 히스테리시스 곡선으로 작성된 요구사항의 모든 구간을 고려한 체계적인 테스트 시나리오를 생성할 수 있는 효과가 있다.
구체적으로, 본 발명의 실시예에 따른 첫 번째 효과는 체계적인 생성 방법으로 히스테리시스의 모든 특성을 반영한 테스트 시나리오를 자동으로 생성할 수 있어, 수작업에 의한 테스트 시나리오 작성에 필요한 노력과 시간을 줄일 수 있다는 것이다.
본 발명의 실시예에 따른 두 번째 효과는 수작업에 의한 테스트 시나리오 생성 시 흔히 일어나는 히스테리시스 모든 구간을 포함하지 못하는 오류를 줄일 수 있다는 것이다.
본 발명의 실시예에 따른 세 번째 효과는 하나의 테스트 시나리오로 모든 히스테리시스 구간을 검사할 수 있다는 것이다. 즉, 대부분의 경우 하나의 복잡한 요구사항을 검사하기 위해서는 여러 개의 테스트 케이스나 테스트 시나리오를 사용한다. 여러 개의 테스트 시나리오를 사용하는 경우의 단점은 매 테스트 케이스나 테스트 시나리오를 적용하기 이전에 시스템을 초기 상태로 만들어야 하고 이는 번거로울 뿐만 아니라, 시간적 소모가 필요하다. 그러나 본 발명의 실시예에 따른 방법을 사용하여 생성한 테스트 시나리오는 하나의 시나리오로 히스테리시스 곡선의 모든 특성을 검사할 수 있다는 장점을 가진다.
도 1은 본 발명의 실시예를 설명하기 위한 2변수 히스테리시스 곡선의 예,
도 2는 본 발명의 실시예를 설명하기 위한 2변수 히스테리시스 곡선의 다른 예,
도 3은 본 발명의 실시예를 설명하기 위한 3변수 히스테리시스 곡선의 예,
도 4는 본 발명의 실시예에 따라 히스테리시스 곡선으로부터 테스트 시나리오를 자동으로 생성하는 절차를 도시한 순서도,
도 5는 본 발명의 실시예에 따른 히스테리시스 곡선의 명명 예,
도 6은 본 발명의 실시예에 따른 히스테리시스 곡선의 구간 구분점 세트 예,
도 7은 본 발명의 실시예에 따른 히스테리시스 곡선의 검사점의 예,
도 8은 본 발명의 실시예에 따른 히스테리시스 곡선의 검사점 표현의 예이다.
본 발명과 본 발명의 실시에 의해 달성되는 기술적 과제는 다음에서 설명하는 본 발명의 바람직한 실시예들에 의하여 보다 명확해질 것이다. 다음의 실시예들은 단지 본 발명을 설명하기 위하여 예시된 것에 불과하며, 본 발명의 범위를 제한하기 위한 것은 아니다.
도 1은 본 발명의 실시예를 설명하기 위한 2변수 히스테리시스 곡선의 예이고, 도 2는 본 발명의 실시예를 설명하기 위한 2변수 히스테리시스 곡선의 다른 예이며, 도 3은 본 발명의 실시예를 설명하기 위한 3변수 히스테리시스 곡선의 예이다.
도 1 내지 도 3을 참조하면, 소프트웨어 혹은 임베디드 시스템과 같은 어떤 테스트 대상 시스템의 외부 입력의 크기와 방향에 따라 그 시스템의 출력 특성이 달라지는 경우, 그 시스템의 요구사항(Requirements)을 표현할 때 주로 '히스테리시스 곡선'을 사용하게 된다.
도 1은 이러한 히스테리시스 곡선의 한 예이다. 도 1에서 H값이 입력, B값이 출력이라 가정할 때, H값이 Hm에서 -Hm 방향으로 가해질 때는 B값은 ①의 선도를 따르고, H 값이 -Hm에서 Hm로 가해질 때는 B값은 ②의 선도를 따른다. 본 발명의 실시예에서는 히스테리시스 곡선을 구성하는 ①이나 ② 같은 선도를 '함수 곡선'이라 정의한다.
도 2는 히스테리시스 곡선의 또 다른 예이다. 도 2에서 입력값(H값)이 Hm에서 -Hn로 가해질 때는 출력값(B값)은 ①의 함수 곡선을 따르고, H값이 -Hm에서 Hm로 가해질 때는 B값은 ②의 함수 곡선을 따른다.
도 1 및 도 2에서 보는 바와 같이, 히스테리시스 곡선은 입력의 방향이나 크기에 따라 출력이 달라지는 시스템의 요구사항을 표현하는 데는 매우 유용하게 사용될 수 있다. 어떤 시스템의 요구사항이 히스테리시스 곡선으로 주어졌을 때, 요구사항을 구현한 시스템이 제대로 만들어졌는지를 검사하기 위한 입력 조건이 필요하고, 검사하기 위한 입력 조건은 히스테리시스의 특성을 반드시 고려하여야 한다. 본 발명의 실시예에서는 히스테리시스의 특성이 고려된 개별 입력을 '테스트 케이스'라 하고, 히스테리시스 곡선 전체를 검사하기 위한 테스트 케이스들의 전체 집합을 '히스테리시스 테스트 시나리오'라 부른다.
히스테리시스 테스트 시나리오 작성은 통상 수작업으로 작성된다. 예를 들어, 도 2의 히스테리시스 요구사항을 검사하기 위해서, H를 -Hn에서 Hm까지 증가시키면서 B값이 ②의 선도를 따르는지를 검사하고, H를 Hm에서 -Hn까지 감소시키면서 ①의 선도를 따르는지를 검사한다. 이 시나리오는 H값을 -Hn에서 Hm 사이로 증가시키고, 다시 Hm에서 -Hn 사이로 감소시키는 것이 될 것이다. 하지만 시스템이 히스테리시스 곡선의 요구사항을 정확하게 따르는지를 정확히 검사하기 위해서는 더 많은 작업이 필요하다. 예를 들어, 도 2에서 H값이 Hl에서 Hh 사이에서 H값을 증감시켜보는 시나리오가 필요하다. 왜냐하면 Hl값과 Hh값으로 진입하기 전 H값에 따라 B값은 ① 혹은 ②의 함수 곡선을 따를 것이고, 시스템이 이러한 요구사항을 잘 적용하였는지를 검사하여야 하기 때문이다.
또한 어떤 요구사항을 표현하는 히스테리시스 곡선은 여러 개의 변수의 의해 결정될 수 있다. 도 1과 도 2의 예는 두 개의 변수 B와 H에 의해 정의된 히스테리시스 곡선이다. 하지만 도 3의 히스테리시스 곡선은 3변수 B, H, R 변수에 의해 결정된다, 본 발명의 실시예에서는 일반적인 요구사항에 사용되는 2 변수로 표현된 히스테리시스 곡선에 대한 것이다. 3개 이상의 다변수로 표현된 히스테리시스의 경우, 테스트 시나리오를 생성하고자하는 두 변수를 제외한 다른 변수는 상수로 두면된다. 이와 같은 방법으로 본 발명의 실시예에서 제안된 방법을 3개 이상으로 확장하면 3개 이상의 다변수로 정의되는 히스테리시스 곡선에 대한 테스트 시나리오를 생성할 수 있다. 통상적으로 히스테리시스 곡선에서 입력은 가로축을 출력은 세로축을 사용한다.
도 4는 본 발명의 실시예에 따른 히스테리시스 곡선으로부터 컴퓨터 시스템이 테스트 시나리오를 자동으로 생성하는 절차를 도시한 순서도이고, 도 5는 본 발명의 실시예에 따른 히스테리시스 곡선의 명명 예이며, 도 6은 본 발명의 실시예에 따른 히스테리시스 곡선의 구간 구분점 세트 예이고, 도 7은 본 발명의 실시예에 따른 히스테리시스 곡선의 검사점의 예이며, 도 8은 본 발명의 실시예에 따른 히스테리시스 곡선의 검사점 표현 예이다.
먼저, 본 발명의 실시예에 따라 히스테리시스 곡선의 모든 구간을 검사하기 위해서는 다음 3가지 요소를 고려해야 한다.
첫째, 입력의 인가 방향을 고려해야 한다. 히스테리시스 곡선에서는 입력(H)의 인가 방향에 따라 다른 출력(B)을 만들기 때문에 인가 방향은 반드시 고려해야 하는 요소이다. 이 요소를 검사하기 위해서는 입력 방향이 다른 입력을 테스트 시나리오에 포함하여야 한다.
두 번째 고려해야 하는 요소는 함수 곡선의 구간 구분점(h점) 세트에서 하나의 구간 내에 인접한 두 좌표 사이(단위 구간)에서 정의된 출력값을 제대로 출력하는 지를 확인해야 한다. 이는 히스테리시스가 구현된 시스템의 해당 구간에서 제대로 출력값을 내는 지를 확인하는 시스템 검사의 기본적 사항이다. 특정 구간을 검사하기 위해서는 최소 2개의 입력이 필요하다. 더 많은 입력을 주입하면 검사의 정확도는 올라가겠지만, 검사 노력이 더 필요하다. 본 발명의 실시예에서는 하나의 구간 내의 검사점을 사용자가 설정하도록 하며, 그 검사점의 갯수를 ‘d’라 한다. 하나의 검사점은 시스템을 검사하는데 사용하는 특정 입력값(H)으로 테스트 케이스라고 할 수 있다.
세 번째 고려해야 하는 요소는 입력이 두 인접 구간을 넘나들 때, 시스템이 제대로 출력하는 지를 확인하여야 한다. 그 이유는 인접 구간은 히스테리시스에서 입력 방향이 다른 함수 곡선에서는 다른 출력을 가지기 때문에 히스테리시스 특성을 확인하는 중요한 요소이기 때문이다.
본 발명의 실시예에서 정의하는 테스트 시나리오는 히스테리스 곡선을 검사하기 위한 테스트 케이스들의 집합을 의미한다. 도 4는 본 발명에서 제안하는 히스테리시스 곡선으로부터 테스트 시나리오(S)를 생성하는 방법에 대한 플로우차트이다.
도 4 내지 도 8을 참조하면, 단계 S1에서는 테스트 시나리오를 생성하고자하는 히스테리시스 곡선 내의 함수 곡선의 수(N)를 찾아내고, 단계 S2에서는 각 함수 곡선에 함수 곡선의 번호를 부여한다.
단계 S1에서는 어떤 히스테리시스 곡선이 가지는 함수 곡선을 정의한다. 만약 어떤 히스테리시스가 N개의 함수 곡선을 가졌다면, 이를 C1, ... CN 이라 한다. N은 이론적으로 무한히 클 수 있으나, 현실에서는 3을 넘지 않으며, 2인 경우가 대부분이다. 도 2 및 도 5의 예에서는 두 개의 함수 곡선 C1(①)과 C2(②)를 가진다.
단계 S2에서는 함수 곡선의 번호를 다음과 같은 방법으로 결정한다. 히스테리시스 곡선 내의 함수 곡선 번호는 1부터 함수 곡선의 수인 N까지로 정한다. 연속되는 함수 곡선의 입력 진행 방향은 가능한 반대 방향을 가지게 한다. 즉, Cx와 Cx+1의 입력 진행 방향은 서로 다르게 한다. C1은 임의로 정한다. 도 2에서 C1과 C2는 함수 곡선 번호가 바뀌어도 된다. 하지만 두 함수 곡선의 번호는 연속적이고 진행 방향은 반대 방향이다. 또한, C1의 최대값과 C2의 최대값이 같으며, C1의 최소값과 C2의 최소값이 같다.
단계 S3에서는 각 함수 곡선의 교차점과 구간 구분점(h점) 세트를 찾아낸다. 테스트 시나리오 체계적 생성을 위한 히스테리시스 곡선에서 구간을 구분하기 위한 구간 구분점을 설정한다.
함수 곡선의 구간 구분점 세트를 찾기 위해서는 다음의 과정을 거친다. 먼저 각 함수 곡선에서 타 곡선과 교차점의 가로축(입력) 좌표를 모두 찾는다. Ci가 타 함수 곡선과 교차하는 교차점의 개수를 ki라 하면, 이 교차점 입력 좌표들을 {(P(i,1), P(i,2), ...., P(i,ki)}라 한다. 그리고 Ci가 가질 수 있는 입력 최소값을 P(i,0)라 하고 최대값을 P(i,ki+1)라 할 때, 입력 최소값 및 최대값과 교차점 입력 좌표을 모두 포함한 좌표들인 {P(i,0), P(i,1), P(i,2),.... P(i,ki),P(i,ki+1)}를 Ci의 구간 구분점(h점) 세트(hi)라 한다. P(i,0)이 타 함수 곡선과 교차하는 경우, P(i,0) = P(i,1)이 된다. 또한, P(i,ki+1)이 타 함수 곡선과 교차되는 경우, P(i,ki) = P(i,ki+1)이 된다. 이 때, 입력에 따른 함수 곡선의 진행 방향이 오른쪽(R)이면 P(u,v+1) > P(u,v)으로 설정하고, 함수 곡선의 진행 방향이 왼쪽(L)이면 P(u,v) > P(u,v+1)으로 설정한다. 단, u < ki 이다.
예를 들면, 도 5와 같이 명명된 히스테리시스 곡선에서 구간 구분점 세트를 정하는 예는 도 6과 같다. 도 6을 참조하면, C1의 구간 구분점(h점) 세트 h1은 {P(1,0), P(1,1), P(1,2), P(1,3)}이고, C2의 구간 구분점 세트 h2는 {P(2,0), P(2,1), P(2,2), P(2,3)}이다. P(1,1)=P(2,2)=Hh이고, P(1,2)=P(2,1)=Hl이다. 그리고 P(1,0)과 P(2,3)은 동일한 값으로 Hm이고, 또한, P(1,3)과 P(2,0)은 동일하며 그 값은 -Hn이다.
단계 S4에서는 함수 곡선의 각 구간 내에의 검사점 개수 d를 정한다. 이 때 d≥2이어야 한다. 그리고 각 구간 내에서 d개의 검사점을 생성한다. 각 구간 내의 검사점은 해당 구간의 최대값과 최소값 사이에서 임의로 정한다. T(ii, jj, mm)을 곡선 함수 Cii의 h점 P(ii, jj)로부터 mm번째 검사점이라 할 때, 함수 곡선의 진행 방향이 오른쪽이면 검사점 T(ii, jj, mm+1) > T(ii, jj, mm)이 되게 하고, 함수 곡선의 진행 방향이 왼쪽이면 검사점 T(ii, jj, mm) > T(ii, jj, mm+1)이 되게 한다.
본 발명의 실시예에서는 도 7에 도시된 바와 같이 각 구간에서 검사점의 수(d)를 3으로 한 것으로서 임의로 3점의 검사점을 선정한다.
도 7을 참조하면, 각 선정된 검사점이 표시되어 있는데, ○점은 C1을 위한 검사점이고, ●점은 C2를 위한 검사점을 나타낸다. 또한 도 8은 도 7의 검사점들에 대해서 H1~H18까지의 번호를 부여한 예이다. 즉, 도 7에서는 검사점이 복잡한 첨자를 가진 검사점(T(2,1,2) 등)으로 표시되어 있으나 도 8에서는 이해하기 쉽게 H1에서 H18까지 번호를 붙여 표현한 것이다. 이와 같이 본 발명의 실시 예에서는 C1과 C2는 각각 3구간으로 이루어져 있고, 각 구간마다 3개의 검사점을 가지므로 전체 시나리오에서 사용하는 검사점은 18개가 된다.
단계 S5에서는 테스트 시나리오 S를 준비한다. 테스트 시나리오는 히스테리시스를 전체를 검사하는 입력의 리스트이다. 초기 S는 당연히 비어있다. 단계 S6에서는 플로우차트에서 사용하는 변수들을 초기화한다. 변수는 ii는 함수 곡선의 번호, jj는 각 함수 곡선 내의 구간 번호, mm은 각 구간 내의 검사점 번호이다. 이 때 만약, P(ii,0)=P(ii,1)이면 즉, Cii의 최대값이나 최소값이 교차점과 같으면 P(ii,0)과 P(ii,1)사이의 구간이 존재하지 않으므로 이 구간에서 검사점을 시나리오에 추가하지 않는다. 또한 P(ii, kii)=P(ii,kii+1)이면 즉, Cii의 최대값이나 최소값이 교차점과 같으면 P(ii,kii)과 P(ii,kii+1)사이의 구간이 존재하지 않으므로 이 구간에서 검사점을 시나리오에 추가하지 않는다.
단계 S7~S8에서는 각 함수 곡선의 각 구간 내에 대하여 검사점을 시나리오(S)에 추가하고, 단계 S9~S10에서는 구간과 구간 사이의 히스테리시스 특성을 테스트하기 위한 구간 사이 검사점을 추가한다. 즉, 단계 S9~S10에서는 추가되는 시나리오가 연속되는 두 구간 사이에서 두 구간의 함수 곡선이 제대로 구현되었는 지와 Cii방향의 입력에서 구현된 시스템이 함수 곡선 Cii와 교차점을 생성하는 타 함수 곡선을 따라가지 않는지를 검사하기 위한 테스트 케이스를 추가한다. 이를 위해 P(ii, jj)와 P(ii,jj+1) 구간의 모든 검사점을 검사한 후, P(ii, jj+1)와 P(ii,jj+2) 구간의 첫 두 검사점 {T(ii, jj+1, 1)과 T(ii, jj+1, 2)}을 검사한 후 다시 이전 구간(P(ii, jj)와 P(ii,jj+1) 구간)의 마지막 두 검사점{T(ii, jj, d)과 T(ii, jj+1, d-1}을 검사하는 검사점을 시나리오에 추가한다. Cii의 모든 구간에서 검사점과 구간 사이의 검사를 진행하는 검사점을 시나리오에 추가한다.
또한 단계 S11~S12에서는 모든 함수 곡선에 대해 단계 S7~S10 과정을 진행한다.
도 6 및 도 8을 참조하면, 본 발명의 실시예에서 먼저 C1 함수곡선에 대하여 단계 S7과 S8에서는 P(1,0)~P(1,1) 구간 내의 검사점(H1,H2,H3)을 시나리오 S={H1, H2, H3}에 추가하고, 단계 S9와 S10에서는 P(1,0)~P(1,1) 구간과 P(1,1)~P(1,2) 구간 사이를 검사하기 위한 구간 사이 검사점(H4,H5,H3,H2)을 시나리오 S에 추가하여 S={H1, H2, H3, H4, H5, H3, H2}를 생성한다.
이어서 단계 S7과 단계 S8을 반복하여 P(1,1)~P(1,2) 구간 내의 검사점(H4, H5, H6)을 S에 추가하여 S={H1, H2, H3, H4, H5, H3, H2, H4, H5, H6}를 생성하고, 단계 S9~S10에서는 P(1,1)~P(1,2) 구간과 P(1,2)~P(1,3) 구간 사이를 검사하기 위한 구간 사이 검사점(H7,H8,H6,H5)을 추가하여 S={H1, H2, H3, H4, H5, H3, H2, H4, H5, H6, H7, H8, H6, H5}를 생성한다.
이어서 단계 S7과 단계 S8을 반복하여 P(1,2)~P(1,3) 구간 내의 검사점(H7,H8,H9)을 추가하여 S={H1, H2, H3, H4, H5, H3, H2, H4, H5, H6, H7, H8, H9}를 생성하여, C1 함수 곡선에 대한 검사점 추가가 완료되면 단계 11과 단계 12에서 C2 함수 곡선의 검사점 추가로 변경한 후, 다시 C2 함수 곡선에 대하여 단계 7에서 단계 10을 반복하여 C2 함수 곡선에 대한 검사점 추가를 반복한다.
즉, C2 함수곡선에 대하여 단계 S7과 S8에서는 P(2,0)~P(2,1) 구간 내의 검사점(H10,H11,H12)을 추가하여 S={H1, H2, H3, H4, H5, H3, H2, H4, H5, H6, H7, H8, H6, H5, H7, H8, H9}, H10, H11, H12}를 생성하고, 단계 S9와 S10에서는 P(2,0)~P(2,1) 구간과 P(2,1)~P(2,2) 구간 사이를 검사하기 위한 구간 사이 검사점( H13, H14, H12, H11)을 추가하여 S={H1, H2, H3, H4, H5, H3, H2, H4, H5, H6, H7, H8, H6, H5, H7, H8, H9}, H10, H11, H12, H13, H14, H12, H11}를 생성한다.
이어서 단계 S7과 단계 S8을 반복하여 P(2,1)~P(2,2) 구간 내의 검사점(H13,H14,H15)을 추가하여 S={H1, H2, H3, H4, H5, H3, H2, H4, H5, H6, H7, H8, H6, H5, H7, H8, H9}, H10, H11, H12, H13, H14, H12, H11, H13, H14, H15}를 생성하고, 단계 S9~S10에서는 P(2,1)~P(2,2) 구간과 P(2,2)~P(2,3) 구간 사이를 검사하기 위한 구간 사이 검사점(H13, H14, H12, H11)을 추가하여 S={H1, H2, H3, H4, H5, H3, H2, H4, H5, H6, H7, H8, H6, H5, H7, H8, H9}, H10, H11, H12, H13, H14, H12, H11}를 생성한다.
이어서 단계 S7과 단계 S8을 반복하여 P(2,2)~P(2,3) 구간 내의 검사점(H16,H17,H18)을 추가하여 S={H1, H2, H3, H4, H5, H3, H2, H4, H5, H6, H7, H8, H6, H5, H7, H8, H9}, H10, H11, H12, H13, H14, H12, H11, H13, H14, H15, H16, H17, H15, H14, H16, H17, H18}를 생성하고, C2 함수곡선에 대한 검사점 추가가 완료되면 종료한다.
이와 같이 본 발명의 실시예에서 제안하는 방법으로 생성된 도 2의 히스테리시스 곡선을 검사하기 위한 테스트 시나리오 S는 {H1, H2, H3, H4, H5, H3, H2, H4, H5, H6, H7, H8, H6, H5, H7, H8, H9}, H10, H11, H12, H13, H14, H12, H11, H13, H14, H15, H16, H17, H15, H14, H16, H17, H18}로 구해진다.
이상에서 본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나, 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.

Claims (5)

  1. 요구사항(Requirements)에 입력의 크기와 방향에 따라 출력 특성이 달라지는 히스테리시스 곡선이 포함된 테스트 대상 시스템에 대하여 테스트 시나리오를 자동으로 생성하기 위한 컴퓨터 시스템에 있어서,
    상기 컴퓨터 시스템이 상기 히스테리시스 곡선의 함수 곡선의 수를 산출하는 단계;
    상기 컴퓨터 시스템이 각 함수 곡선에 대해 식별명을 부여하고, 각 함수 곡선의 교차점 좌표와 최소값, 최대값을 찾아 함수 곡선의 진행 방향에 따라 구간을 구분하기 위한 구간 구분점 세트를 정의하는 단계;
    상기 컴퓨터 시스템이 함수 곡선의 각 구간 내의 검사점 갯수를 정하고, 해당 검사점 갯수만큼의 검사점을 각 구간 내에 생성하는 단계; 및
    상기 컴퓨터 시스템이 검사점들에 대한 테스트 케이스의 집합으로 히스테리시스 테스트 시나리오를 생성하는 단계를 포함하는 히스테리시스 곡선으로부터 테스트 시나리오 자동 생성 방법.
  2. 제1항에 있어서, 상기 구간 구분점 세트를 정의하는 단계는,
    각 함수 곡선에서 타 곡선과 교차점의 입력 좌표를 모두 찾아 임의의 함수 곡선 Ci가 타 함수 곡선과 교차하는 교차점의 개수를 ki라 하면, 이 교차점 입력 좌표들을 {(P(i,1), P(i,2), ...., P(i,ki)}라 하고, Ci가 가질 수 있는 입력 최소값을 P(i,0)라 하고 최대값을 P(i,ki+1)라 할 때, 입력 최소값 및 최대값과 교차점 입력 좌표을 모두 포함한 좌표들인 {P(i,0), P(i,1), P(i,2),.... P(i,ki),P(1,ki+1)}를 Ci의 구간 구분점 세트라 정의하는 것을 특징으로 하는 히스테리시스 곡선으로부터 테스트 시나리오 자동 생성 방법.
  3. 제1항에 있어서, 상기 검사점은
    함수 곡선의 각 구간의 최소값과 최대값 사이에서 임의로 정하되 적어도 2개 이상인 것을 특징으로 하는 히스테리시스 곡선으로부터 테스트 시나리오 자동 생성 방법.
  4. 제1항에 있어서, 상기 검사점을 생성하는 단계는
    T(ii, jj, mm)을 함수 곡선 Cii의 구분점 P(ii, jj)와 P(ii,jj+1) 구간의 mm번째 검사점이라 할 때, 함수 곡선의 진행 방향이 오른쪽이면 검사점 T(ii, jj, mm+1) > T(ii, jj, mm)이 되게 하고, 함수 곡선의 진행 방향이 왼쪽이면 검사점 T(ii, jj, mm) > T(ii, jj, mm+1)이 되게 생성하는 것을 특징으로 하는 히스테리시스 곡선으로부터 테스트 시나리오 자동 생성 방법.
  5. 제1항에 있어서, 상기 히스테리시스 테스트 시나리오를 생성하는 단계는
    각 함수 곡선에 대하여 각 구간 내의 검사점을 시나리오에 추가함과 아울러 서로 인접한 구간 사이를 테스트하기 위한 구간 사이 검사점을 시나리오에 추가하여 생성하는 것을 특징으로 하는 히스테리시스 곡선으로부터 테스트 시나리오 자동 생성 방법.
KR1020230022281A 2023-02-20 2023-02-20 히스테리시스 곡선으로부터 테스트 시나리오 자동 생성 방법 KR102610914B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230022281A KR102610914B1 (ko) 2023-02-20 2023-02-20 히스테리시스 곡선으로부터 테스트 시나리오 자동 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230022281A KR102610914B1 (ko) 2023-02-20 2023-02-20 히스테리시스 곡선으로부터 테스트 시나리오 자동 생성 방법

Publications (1)

Publication Number Publication Date
KR102610914B1 true KR102610914B1 (ko) 2023-12-07

Family

ID=89163289

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230022281A KR102610914B1 (ko) 2023-02-20 2023-02-20 히스테리시스 곡선으로부터 테스트 시나리오 자동 생성 방법

Country Status (1)

Country Link
KR (1) KR102610914B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100230458B1 (ko) * 1997-10-14 1999-11-15 윤종용 히스테리시스를 이용한 신호 처리 장치 및 그 방법
JP2006098391A (ja) * 2004-09-27 2006-04-13 Idc Llc 干渉変調器におけるヒステリシスの電気−光学的測定
JP2011070744A (ja) * 2009-09-28 2011-04-07 Showa Denko Kk 磁気記録媒体の検査方法及び製造方法
KR20190128457A (ko) * 2018-05-08 2019-11-18 한국과학기술원 대상 프로그램에 포함된 대상 함수를 테스트하는 방법 및 장치
US20200116805A1 (en) * 2018-10-15 2020-04-16 Tektronix, Inc. Test and Measurement Instrument with a Hysteresis Loop Mask
CN115017198A (zh) * 2022-08-08 2022-09-06 国汽智控(北京)科技有限公司 车辆数据处理方法、装置和设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100230458B1 (ko) * 1997-10-14 1999-11-15 윤종용 히스테리시스를 이용한 신호 처리 장치 및 그 방법
JP2006098391A (ja) * 2004-09-27 2006-04-13 Idc Llc 干渉変調器におけるヒステリシスの電気−光学的測定
JP2011070744A (ja) * 2009-09-28 2011-04-07 Showa Denko Kk 磁気記録媒体の検査方法及び製造方法
KR20190128457A (ko) * 2018-05-08 2019-11-18 한국과학기술원 대상 프로그램에 포함된 대상 함수를 테스트하는 방법 및 장치
US20200116805A1 (en) * 2018-10-15 2020-04-16 Tektronix, Inc. Test and Measurement Instrument with a Hysteresis Loop Mask
CN115017198A (zh) * 2022-08-08 2022-09-06 国汽智控(北京)科技有限公司 车辆数据处理方法、装置和设备

Similar Documents

Publication Publication Date Title
Hierons Testing from a Z specification
US8381175B2 (en) Low-level code rewriter verification
US5446652A (en) Constraint knowledge in simulation modeling
Stocks et al. Test template framework: A specification-based testing case study
CN109189479B (zh) 一种用于处理器指令集的并行自动化验证方法
US20050081109A1 (en) Method and system for efficient testing of sequences of computer-related operations
Brown et al. Software testing
US6449750B1 (en) Design verification device, method and memory media for integrated circuits
CN111176991A (zh) 一种嵌入式软件接口用例自动化生成方法
CN108197020A (zh) 插件校验方法、电子设备及计算机存储介质
KR102610914B1 (ko) 히스테리시스 곡선으로부터 테스트 시나리오 자동 생성 방법
US6970816B1 (en) Method and system for efficiently generating parameterized bus transactions
CN115176233B (zh) 以确定性顺序执行测试
US11442845B2 (en) Systems and methods for automatic test generation
Bernot et al. A theory of probabilistic functional testing
Erkkinen Embedded control system implementation and modeling issues
Pitchford Embedded software quality, integration, and testing techniques
Popić et al. The benefits of the coding standards enforcement and it's influence on the developers' coding behaviour: A case study on two small projects
Yu et al. A light-weight static approach to analyzing UML behavioral properties
Blanquart et al. Software safety-a journey across domains and safety standards
Timo et al. Fault model-driven testing from FSM with symbolic inputs
Beydeda et al. Integrating white-and black-box techniques for class-level testing object-oriented prototypes
Popic et al. Simple Framework for Efficient Development of the Functional Requirement Verification-Specific Language.
JP5825231B2 (ja) ソフトウェア設計支援装置及びソフトウェア設計支援方法
JPH08272623A (ja) プログラム解析装置及びプログラム解析方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant