기초 비교 시험(ECT )은 공식적인 화이트 박스, 제어 흐름 , 시험 설계 방법이다.[1] 그것의 목적은 복잡하고 중요한 소프트웨어에 대한 상세한 테스트를 시행하는 것이다. 모든 의사결정 결과의 적절한 처리를 평가하기 위해 소프트웨어 유사 코드 또는 코드를 시험한다. 다중 조건 적용 [2] 범위 및 기본 경로 시험 과 마찬가지로,[1] 모든 독립적 격리 조건 경로의 적용 범위는 수정된 조건/결정 적용 범위(MC/DC )를 통해 달성된다. [3] 격리된 조건들은 시험 사례 를 생성하는 연결된 상황으로 통합된다. 조건의 독립성은 조건 값을 분리하여 변경함으로써 나타난다. 각각의 관련 조건 값은 시험 사례 에 의해 다루어진다.
테스트 케이스 시험 케이스 는 한 가지 또는 많은 결정을 통해 프로세스의 시작에서 끝까지 논리적인 경로로 구성된다. 모순된 상황은 시험 사례 매트릭스에서 추론하고 제외한다. MC/DC 접근방식은 모든 조건을 분리하여 가능한 모든 하위 경로 조합과 경로 적용 범위를 무시한다.[1]
T = n + 1 {\displaystyle T=n+1} 어디에,
결정 d i {\ displaystyle d_{i}} 은(는) 기본 조건의 조합으로 구성된다 .
Σ = { 0 , 1 } C = { c 0 , c 1 , c 2 , c 3 , . . . , c n } {\displaystyle {\begin}\Sigma &=\{0,1\}\\c&=\{0},c_{1},c_{1},c_{2},c_{n}\}\end}}}}}}} ϵ : C → Σ × C \displaystyle \epsilon :C\오른쪽 화살표 \Sigma \time C}
D ⊆ C ∗ {\ displaystyle D\subseteq C^{*} ; d ∈ D {\displaystyle d_{i}\in D}
전환 함수 α {\displaystyle \alpha } 은 (는) 다음과 같이 정의된다.
α : D × Σ ∗ → Σ × D {\displaystyle \alpha :D\time \Sigma ^{*}\오른쪽 화살표 \Sigma \time D} 전환 given {\displaystyle \vdash } ⊢⊆ ( Σ × D × Σ ∗ ) × ( Σ × D × Σ ∗ ) {\displaystyle \vdash \subseteq(\Sigma \times D\Sigma ^{*}}\times(\Sigma \times \Sigma ^{*})}}
S j = ( b j , d m , v j ) ⊢ ( b j + 1 , d n , v j + 1 ) {\displaystyle S_{j}=(b_{j},d_{m},v_{j}})\vdash(b_{j+1},d_{n},v_{j+1}}}}} E j = ( a j , c j ) ⊢ ( a j + 1 , c k ) {\displaystyle E_{j}=(a_{j},c_{j})\vdash(a_{j+1},c_{k}) ( b j + 1 , d n ) = α ( d m , v j ) ; ( b j + 1 , c k ) = ϵ ( c j ) ; a j ∈ Σ , {\displaystyle (b_{j+1},d_{n}}=\alpha(d_{m},v_{j});(b_{j+1},c_{k}}=\epsilon(c_{j})=a_{j}\Sigma ,} 격리된 시험 경로 P m {\ displaystyle P_{m}} 는 다음과 같이 구성된다. P m = ( b 0 , d 0 , v 0 ) ⊢ . . . ⊢ ( b i , d i , v i ) ⊢ ∗ ( b n , d n , v n ) = ( b 0 , c 0 ) ⊢ . . . ⊢ ( b m , c m ) ⊢ ∗ ( b n , c n ) {\displaystyle {\reasoned} P_{m}&=(b_{0},d_{0},v_{0})\vdash... \vdash (b_{i}d_{i},v_{i}\vdash ^{*}(b_{n},d_{n},v_{n}})\&=(b_{0},c_{0}}}\vdash... \vdash(b_{m},c_{m}}\vdash ^{*}(b_{n},c_{n}}\ended{aigned}}}}}}})
b i ∈ Σ ; c m ∈ d i ; v ∈ C ∗ ; d 0 = S ; d n = E . {\displaystyle b_{n}\in \Sigma ;c_{m}\in d_{i};v\in C^{*};d_{0}=S;d_{n}=E.}
테스트 사례 그래프 테스트 사례 그래프는 모든 격리 조건을 다루는 데 필요한 모든 독립 경로(테스트 사례)를 보여준다. 조건은 노드로 표시되며 조건 값(상황)은 에지로 표시된다. 모든 프로그램 상황은 에지로 다루어진다. 각각의 상황은 하나의 선행조건과 연속적인 조건으로 연결된다. 시험 케이스는 격리된 상태로 인해 중복될 수 있다.
조건 경로 수에 대한 귀납적 증거 기초 비교 시험 방법은 유도 증명에 의한 조건 경로의 수를 결정하는 데 사용할 수 있다.
r = 2n {\ displaystyle r=2^{n}} 가능한 조건 값 조합이 있음 ∀ i ∈{ 1 , . . .n } c i { 0 }, 1 } {i}\in{1,...,n\}\c_{i}\mapsto \{0 ,\\\}}}}. 각 조건 c i {\ displaystyle c_{i} 을(를) 분리할 때 결정당 필요한 테스트 사례 T {\displaystyle T} 의 수는 다음과 같다. T = 통나무를 하다 2 ( r ) + 1 = n + 1. {\displaystyle T=\log _{2}(r)+1=n+1. }
∀ i ∈ { 1 , . . . , n } {\displaystyle \forall {i}\in \{1,...,n\}} there are 0 < e < i + 1 {\displaystyle 0<e<i+1} edges from parent nodes c i {\displaystyle c_{i}} and s = 2 {\displaystyle s=2} edges to child nodes from c i {\displaystyle c_{i}} .
각 개별 조건 c i {\ displaystyle c_{i}} 이(가) 하나 이상의 경로에 연결됨
∀ i ∈ { 1 , . . . , n − 1 } c i ↦ { 0 , 1 } {\displaystyle \forall {i}\in \{1,...,n-1\}\c_{i}\mapsto \{0,\1\}}}
c n {\ displaystyle c_{n} 에 연결하는 최대 가능한 n {\displaystyle n} 에서 c n {\displaystyle c_{n} 격리 c {\ displaystyle c_}.
모든 이전 조건 c i ; n < {\displaystyle c_{i};\ i<n} 과 (와) 각 경로가 분리된다. 따라서 하나의 노드(조건)가 추가되면 시작부터 종료까지 총 경로 수와 필요한 테스트 케이스가 다음과 같이 증가한다.
T = n − 1 + 2 = n + 1. {\displaystyle {\reasoned} T&=n-1+2\\&=n+1. \end{정렬}}} Q.E.D.
테스트 사례 설계 단계 의사 결정 식별 의사결정 지점당 테스트 상황 결정(수정된 조건/결정 적용 범위) 논리 테스트 사례 매트릭스 생성 실제 테스트 사례 매트릭스 생성
예 이 예는 휴일 예약 시스템에 적용된 ETC를 보여준다. 할인제도는 할인된 가격의 휴가를 제공한다. 제공되는 할인 혜택은 회원이나 비싼 휴가에는 - 20 %[\디스플레이 스타일 -20\%], 근무일 출발과 함께 적당한 휴가에는 10 %[\디스플레이 스타일 -10\%], 그렇지 않으면 0%[\디스플레이 스타일 0\%] 이다. 이 예는 모든 격리된 조건에 대한 논리적 및 물리적 테스트 사례의 생성을 보여준다.
가성음
만약 15일 또는 1000일 또는 회원 이라면, 8일 , 15일 또는 500일 , 1000일, 500일, 1000일, 그리고 근무일 중 -0.1을 반환 하고, 0.0일 을 반환 한다. 요인들
일수: < 8 ; 8 - 15 ; > 15 {\디스플레이 스타일 <8;\ 8-15;\>15} 가격(에우로): < 500 ; 500 - 1000 ;> 1000 [\displaystyle <500;\ 500-1000;\ >1000} 회원 카드: 없음, 은, 금, 백금 출발일: 근무일, 주말, 휴일 T = 3 × 3 × 4 × 3 = 108 {\displaystyle T=3\time 3\time 4\times 3=108} 개의 가능한 조합(테스트 케이스)
1단계: 의사 결정 표 1: D1 MC/DC 예 결과 D1 결정 1 0 조건들 c1 c2 c3 c1 c2 c3 c1 날들 > 15 {\displaystyle {\text{days}>15} 1 0 0 0 0 0 c2 값을 매기다 > 1000 {\displaystyle {\text{price}>1000} 0 1 0 0 0 0 c3 회원 {\displaystyle {\text{member}} 0 0 1 0 0 0
d 1 = d a y s > 15 또는 값을 매기다 > 1000 유러 또는 회원 c 1 = 날들 > 15 c 2 = 값을 매기다 > 1000 c 3 = 회원 {\displaystyle {\begin{aligned}d_{1}&={days}>15\ {\text{or}}\ {\text{price}}>1000\ {\text{Eur}}\ {\text{or}}\ {\text{member}}\\c_{1}&={\text{days}}>15\\c_{2}&={\text{price}}>1000\\c_{3}&={\text{member}}\\\end{aligned}}} d 2 = ( 8 < 날들 < 15 또는 500 < 값을 매기다 < 1000 유러 ) 그리고 근무일 c 4 = 8 < 날들 < 15 c 5 = 500 < 값을 매기다 < 1000 유러 c 6 = 근무일 {\displaystyle {\begin{aligned}d_{2}&=(8<{\text{days}}<15\ {\text{or}}\ 500<{\text{price}}<1000\ {\text{Eur}})\ {\text{and}}\ {\text{workday}}\\c_{4}&=8<{\text{days}}<15\\c_{5}&=500<{\text{price}}<1000\ {\text{Eur}}\\c_{6}&={\text{workday}}\\\end{aligned}}}
2단계: MC/DC 매트릭스 표 2: D2 MC/DC 예 결과 D2 결정 1 0 조건들 c4 c5 c6 c4 c5 c6 c4 8 < 날들 < 15 {\displaystyle 8<{\text}{days}<15} 1 0 1 0 0 1 c5 500 < 값을 매기다 < 1000 [\displaystyle 500<{\text{price}<1000}] 0 1 1 0 0 1 c6 근무일 {\displaystyle {\text{day}} 1 0 1 1 0 0
MC/DC 매트릭스에서 강조 표시된 대각선은 다음과 같은 절연 조건을 설명하고 있다. ( c i , c i ) ↦ { 1 , 0 } {\displaystyle(c_{i},c_{i}\mapsto \{1,0\}) 모든 중복 상황은 입증되고 제거된 것으로 간주된다.
3단계: 논리 테스트-사례 행렬 표 3: 논리 테스트 사례 매트릭스 예 상황 S j {\ displaystyle S_{j}} T 1 {\displaystyle T_{1}. T 2 {\displaystyle T_{2}} T 3 {\displaystyle T_{3}} T 4 {\displaystyle T_{4}} T 5 {\displaystyle T_{5}} T 6 {\displaystyle T_{6}} T 7 {\displaystyle T_{7}} α ( d 1 , 1 00 ) ↦ ( 1 , E ) {\displaystyle \alpha(d_{1},\mathbf {1}00)\mapsto(1,E)} x α ( d 1 , 0 00 ) ↦ ( 0 , d 2 ) {\displaystyle \d_{1},\mathbf {0}00)\mapsto(0,d_{2})} x x x x α ( d 1 , 0 1 0 ) ↦ ( 1 , E ) {\displaystyle \alpha(d_{1},0\mathbf {1} 0)\mapsto(1,E)} x α ( d 1 , 00 1 ) ↦ ( 1 , E ) {\displaystyle \alpha(d_{1},00\mathbf {1} )\mapsto(1,E)} x α ( d 2 , 1 01 ) ↦ ( 1 , E ) {\displaystyle \alpha(d_{2},\mathbf {1}01)\mapsto(1,E)} x α ( d 2 , 0 01 ) ↦ ( 1 , E ) {\displaystyle \alpha(d_{2},\mathbf {0} 01)\mapsto(1,E)} x α ( d 2 , 0 1 1 ) ↦ ( 1 , E ) {\displaystyle \alpha(d_{2},0\mathbf {1} 1)\mapsto(1,E)} x α ( d 2 , 11 0 ) ↦ ( 0 , E ) {\displaystyle \alpha(d_{2},11\mathbf {0})\mapsto(0,E)} x
시험 사례는 의사결정 경로를 추적하여 형성된다. 모든 결정 d i ; 0 < i < n + 1 {\displaystyle d_{i};\ 0<i<n+1} 에 대해 연결된 모든 경로에 시작 S {\displaystyle S} 및 끝 E {\displaystyle E} 이( 가) 있을 때까지 후속 및 이전 하위 경로가 검색된다. T 1 = ( d 1 , 100 ) ⊢ ( 1 , E ) T 2 = ( d 1 , 000 ) ⊢ ( 0 , d 2 , 100 ) ⊢ ( 1 , E ) T 3 = ( d 1 , 010 ) ⊢ ( 1 , E ) ⋮ T n + 1 {\displaystyle {\reasoned} T_{1}&=(d_{1},100)\vdash(1,E)\\\ T_{2}&=(d_{1}000)\vdash(0,d_{2},100)\vdash(1,E)\ \T_{3}&=(d_{1},010)\vdash(1,E)\\\vdots \\\T_{n+1}\end{arged}}}}}
4단계: 물리적 테스트 사례 매트릭스 표 4: 물리적 테스트 사례 예 요인\테스트 케이스 T 1 {\displaystyle T_{1}. T 2 {\displaystyle T_{2}} T 3 {\displaystyle T_{3}} T 4 {\displaystyle T_{4}} T 5 {\displaystyle T_{5}} T 6 {\displaystyle T_{6}} T 7 {\displaystyle T_{7}} 날들 16 14 8 8 8 값을 매기다 1100 600 출발하다 sa 회원 은색의 결과 0 0 -10 1 1 1 -20 1 1 1
물리적 시험 케이스는 실제 값 표현과 각각의 결과를 입력하여 논리적 시험 케이스에서 생성된다.
테스트 사례 그래프 테스트 사례 그래프에서 모든 테스트 사례와 그 격리된 조건은 색상으로 표시되고 나머지 경로는 암묵적으로 통과된다.
참고 항목
참조 ^ a b c 리 코프랜드(2004) 소프트웨어 테스트 설계 실무자 가이드 , 10장. 아르테크 하우스 출판사, 노우드. ISBN 0140289712 . ^ 글렌포드 J. 마이어스(2004) The Art of Software Testing, Second Edition , 40페이지, 뉴저지 주, John Wiley & Sons. ISBN 0-471-46912-2 . ^ 팀 크룸(2006년). TMap Next, 결과 중심 시험의 경우, 668페이지 . UTN 퍼블리셔스, 로테르담. ASIN B01K3 PSI5U .