테스트 템플릿 프레임워크

Test Template Framework

테스트 템플릿 프레임워크(TTF)는 소프트웨어 테스트를 목적으로 Phil Stocks와 David Carrington이 (Stocks & Carrington 1996)에서 제안한 모델 기반 테스트(MBT) 프레임워크입니다.TTF는 표기법에 의존하지 않는 것을 의미했지만, 원래 프레젠테이션은 Z 형식 표기법을 사용하여 작성되었습니다.유닛 테스트에 접근하는 몇 안 되는 MBT 프레임워크 중 하나입니다.

서론

TTF는 모델 기반 테스트(MBT)의 특정 제안입니다.모형을 Z 규격으로 간주합니다.사양 내의 각 연산을 분석하여 추상적인 테스트 케이스를 도출 또는 생성한다.이 분석은 다음 단계로 구성됩니다.

  1. 각 작업의 입력 공간(IS)을 정의합니다.
  2. 각 조작의 IS로부터 유효한 입력 공간(VIS)을 도출합니다.
  3. VIS부터 1개 이상의 테스트 [1]방법을 적용하여 각 작업에 대한 테스트 트리를 구축합니다.테스트 트리는 테스트클래스라고 불리는 노드로 채워집니다.
  4. 결과 테스트 트리를 각각 가지치기 합니다.
  5. 테스트 트리의 각 리프에서 하나 이상의 추상 테스트 케이스를 찾습니다.

TTF의 주요 장점 중 하나는 이러한 모든 개념이 규격의 동일한 표기법, 즉 Z 표기법으로 표현된다는 것입니다.따라서 엔지니어는 추상적인 테스트 사례 생성까지 분석을 수행하려면 하나의 표기법만 알아야 합니다.

중요한 개념

이 섹션에서는 TTF에 의해 정의된 주요 개념에 대해 설명합니다.

입력 공간

Z 연산이라고 .Let be all the input and (non-primed) state variables referenced in , and their corresponding types. { IS _ {} i 、 Opo i o 、 [ 1 : ...n : n style[ _ { ]에 의해 정의되는Z 스키마 박스입니다.

유효한 입력 공간

Z 연산이라고 . { 으로 .[ Op \ VIS{ Op ] v 、 [ S [_ {} \ text { } Op]에의해 정의된Z 스키마 박스입니다.

테스트 클래스

Op} 를 Z 연산, P{ P} 를 { style { } 에서 된 변수 중 하나 이상에 따라 술어라고 . 그런 다음 Z 스키마상자 [ S { style [ _ { } class }는 test 입니다.이 스키마는 [ S P]{ [_ {} { text { } \ P과 같습니다. 관찰은 C { _ {}가 스키마박스에서 의 테스트 클래스인 로 일반화할 수 있습니다. 클래스이기도 합니다이 정의에 따르면 VIS도 테스트 클래스입니다.

C{ }가 { Op}의 테스트 클래스인 , [ { P }는 술어이다. P P로 되어 있습니다.

테스트 클래스는 테스트 목표(Uting & Legeard 2007), 테스트 템플릿(Stocks & Carrington 1996) 및 테스트 사양이라고도 합니다.

테스트 방법

TTF의 맥락에서 테스트[1] 전략은 모든 동작의 테스트 클래스를 분할하는 수단입니다.그러나 실제로 사용되는 테스트 전술 중 일부는 실제로 일부 테스트 클래스의 파티션을 생성하지 않습니다.

TTF에 대해 최초로 제안된 테스트 전술은 다음과 같습니다.

  • 분리정규형(DNF)이 방법을 적용하면 연산은 분리 정규 형식으로 작성되고 테스트 클래스는 결과 연산 술어의 용어 수만큼 테스트 클래스로 분할됩니다.각 새 검정 클래스에 추가된 술어는 연산 술어에 포함된 용어 중 하나의 전제 조건입니다.
  • 표준 파티션(SP)이 방법에서는 일부 수학 연산자의 사전 정의된 파티션을 사용합니다(Stocks 1993).예를 들어, 다음은 T {\\T 표현에 적합한 파티션입니다. 여기서 \cup {\displaystyle {\세트 이론 참조).
    알 수 있듯이 표준 파티션은 엔지니어가 수행하는 테스트 양에 따라 변경될 수 있습니다.
  • 서브 도메인 전파(SDP).이 방법은 다음을 포함하는 표현에 적용됩니다.
    1. 표준 파티션이 이미 정의된 두 개 이상의 연산자 또는
    2. 다른 수학적 연산자의 관점에서 정의된 수학적 연산자.
    이러한 경우 식 또는 복잡한 식 정의에서 나타나는 연산자의 표준 파티션은 식에 대한 파티션을 생성하기 위해 결합됩니다.두 번째 경우에 전술이 적용되면 결과 파티션은 해당 오퍼레이터의 표준 파티션으로 간주할 수 있습니다.자 주가와 캐링턴(주식 &. 캐링턴 1996년)에 이 상황⋪{\displaystyle \ntriangleleft},⋪{\displaystyle \ntriangleleft}과 표준 파티션을 줌으로써 도메인 anti-restriction을 의미하 G{\displaystyle R\oplus G=({\text{dom}}G\ntriangleleft R)\cup G}, ∪ R⊕ G=(dom G⋪ R)로 설명하다 oplus 계산하도록 합니다
  • 사양 변환(SM). 이 전술의 첫 번째 단계는 Z 연산의 돌연변이를 생성하는 것입니다.Z연산의 돌연변이는 프로그램의 돌연변이와 개념이 유사하며, 즉 연산의 수정 버전이다.이 변경은 구현에서 오류를 발견하기 위해 엔지니어에 의해 도입되었습니다.돌연변이는 엔지니어가 프로그래머가 구현했다고 추측하는 규격이어야 합니다.그 후 엔지니어는 양쪽 사양에서 다른 결과를 얻을 수 있는 VIS 서브셋을 계산해야 합니다.이 세트의 술어는 새 테스트 클래스를 도출하는 데 사용됩니다.

그 밖에 사용할 수 있는 테스트 방법은 다음과 같습니다.

  • 내선번호 설정(ISE) p { p , , n { style \ \ { _ {} , \ { }} 술어에 적용됩니다.이 경우 e i { 의 술어가 n개의 테스트 클래스를 생성합니다.
  • 필수 테스트 세트(MTS).이 방법에서는 상수 값 집합을 VIS' 변수에 연결하고 세트 내의 요소 수만큼 테스트 클래스를 생성합니다.각 테스트 클래스는 v { var 술어로 특징지어집니다. 여기서 var는 변수의 이름이고 val은 세트의 값 중 하나입니다.
  • 수치 범위(NR).이 방법은 타입 서브타입 의 VIS 변수에만 적용됩니다.이것은 범위를 변수에 관련짓고 변수를 어떤 방식으로 범위의 한계와 비교함으로써 테스트 클래스를 도출하는 것으로 구성됩니다.좀 더 형식적으로 n을 \ 변수, j](\j])를 관련 범위로 합니다 다음 전술에 의해 n< \ n < , \ n, < n , n { n , > j { n j} 의 술어로 특징지어지는 테스트 클래스가 생성됩니다.
  • 프리 타입(FT)이 방법에서는 프리(계상) 타입의 요소 수만큼 테스트클래스가 생성됩니다.즉, 어떤 모델에서 COLOR ::= red blue green 유형을 정의하고 일부 작업에서 COLOR 유형의 c를 사용하는 경우, 각 테스트 클래스는 세 가지 새로운 테스트 클래스로 나뉩니다. 하나는 c빨간색, 다른 하나는 c가 파란색, 세 번째는 c녹색입니다.
  • Set Extension(PSE; 세트 확장)의 적절한 서브셋.이 방법은 ISE의 동일한 개념을 사용하지만 포함을 설정하는 데 적용됩니다.PSE는 r { p , p n} { \ { { } \ \ { n} \} 의 술어를 포함한 연산을 테스트하는데 도움이 됩니다.PSE를 적용하면 - 2 ) 됩니다.[ 1, 2 n- i1]} P { 1 , , r n { e , , p n { A _ { \ \ 1, , x { \ { _ {1 ,\ , _ { } { \ {\ { _ { , \ , n} } expr { n subset subsetr of is of of subset of of of of of of of of p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p
  • Set Extension(SSE; 세트 확장)의 서브셋.이는 PSE와 동일하지만 { 1 , r n} { \ {1} , \ , _ { n}의 술어에 적용됩니다. 경우 _ { n }\ 2^ { }}의 술어에도 됩니다

테스트 트리&

테스트 방법을 VIS에 적용하면 테스트 클래스가 생성됩니다.이러한 테스트 클래스 중 일부가 하나 이상의 테스트 전술을 적용하여 추가로 분할되면 새로운 테스트 클래스 세트를 얻을 수 있습니다.이 프로세스는 지금까지 생성된 테스트클래스에 테스트 전술을 적용하여 계속할 수 있습니다.분명히 이 프로세스의 결과는 VIS를 루트노드로 하여 트리로 그릴 수 있으며 첫 번째 테스트 전술에 의해 생성된 테스트클래스도 자녀로 그릴 수 있습니다.또한 (Stocks & Carrington 1996)의 Stocks와 Carrington은 다음과 같이 Z 표기법을 사용하여 트리를 구축할 것을 제안합니다.

테스트 트리 가지치기

일반적으로 테스트 클래스의 술어는 두 개 이상의 술어가 결합된 것입니다.따라서 일부 테스트 클래스는 술어가 모순이기 때문에 비어 있을 수 있습니다.이러한 테스트 클래스는 입력 값의 불가능한 조합을 나타내기 때문에 테스트 트리에서 제거되어야 한다. 즉, 이들로부터 추상적인 테스트 사례를 도출할 수 없다.

추상 테스트 케이스

추상 테스트 케이스는 테스트 클래스에 속하는 요소입니다.TTF는 추상적인 테스트 사례는 테스트 나무의 잎에서만 도출해야 한다고 규정하고 있다.추상 테스트 케이스는 Z 스키마 박스로도 쓸 수 있습니다.{ Op } {_ { }、 x 1 : n : n : : { } : V { _ {}에서 선언된 모든 변수입니다. { C _ { }는 Op}과(와) 관련된 테스트 트리의 (리프) 테스트 클래스로 하고, { P_style P_는 P_style P_style P_dots.(자녀에서 부모로 엣지를 따름) 최대 S { VIS _ { } 、 1: ... : n \ style _ { } : 1 { n} 상수값을 하는n { display \m이어야 하며, 의 추상적인 테스트 는 [ x 1 1에서 스키마 박스이다.

「 」를 참조해 주세요.

레퍼런스

  • 를 클릭합니다Stocks, Phil; Carrington, David (1996), "A framework for specification-based testing", IEEE Transactions on Software Engineering, 22 (11): 777–793, doi:10.1109/32.553698.
  • 를 클릭합니다Utting, Mark; Legeard, Bruno (2007), Practical Model-Based Testing: A Tools Approach (1st ed.), Morgan Kaufmann, ISBN 0-12-372501-1.
  • 를 클릭합니다Stocks, Phil (1993), Applying Formal Methods to Software Testing, Department of Computer Science, University of Queensland, PhD thesis.

메모들

  1. ^ a b Stocks & Carrington 1996에서 Stocks & Carrington은 테스트 전략이라는 용어를 사용합니다.