테스트 템플릿 프레임워크
Test Template Framework테스트 템플릿 프레임워크(TTF)는 소프트웨어 테스트를 목적으로 Phil Stocks와 David Carrington이 (Stocks & Carrington 1996)에서 제안한 모델 기반 테스트(MBT) 프레임워크입니다.TTF는 표기법에 의존하지 않는 것을 의미했지만, 원래 프레젠테이션은 Z 형식 표기법을 사용하여 작성되었습니다.유닛 테스트에 접근하는 몇 안 되는 MBT 프레임워크 중 하나입니다.
서론
TTF는 모델 기반 테스트(MBT)의 특정 제안입니다.모형을 Z 규격으로 간주합니다.사양 내의 각 연산을 분석하여 추상적인 테스트 케이스를 도출 또는 생성한다.이 분석은 다음 단계로 구성됩니다.
- 각 작업의 입력 공간(IS)을 정의합니다.
- 각 조작의 IS로부터 유효한 입력 공간(VIS)을 도출합니다.
- 각 VIS부터 1개 이상의 테스트 [1]방법을 적용하여 각 작업에 대한 테스트 트리를 구축합니다.테스트 트리는 테스트클래스라고 불리는 노드로 채워집니다.
- 결과 테스트 트리를 각각 가지치기 합니다.
- 각 테스트 트리의 각 리프에서 하나 이상의 추상 테스트 케이스를 찾습니다.
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).이 방법은 다음을 포함하는 표현에 적용됩니다.
- 표준 파티션이 이미 정의된 두 개 이상의 연산자 또는
- 다른 수학적 연산자의 관점에서 정의된 수학적 연산자.
- 이러한 경우 식 또는 복잡한 식 정의에서 나타나는 연산자의 표준 파티션은 식에 대한 파티션을 생성하기 위해 결합됩니다.두 번째 경우에 전술이 적용되면 결과 파티션은 해당 오퍼레이터의 표준 파티션으로 간주할 수 있습니다.자 주가와 캐링턴(주식 &. 캐링턴 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.
메모들
- ^ a b Stocks & Carrington 1996에서 Stocks & Carrington은 테스트 전략이라는 용어를 사용합니다.