전체 쌍 테스트

All-pairs testing

컴퓨터 과학에서 전체 쌍 테스트 또는 쌍별 테스트는 시스템(일반적으로 소프트웨어 알고리즘)에 대한 각 입력 파라미터 쌍에 대해 이들 파라미터의 가능한 모든 이산 조합을 테스트하는 소프트웨어 테스트의 조합 방법입니다.신중하게 선택된 테스트 벡터를 사용하면 파라미터 쌍의 테스트를 "병렬화"함으로써 모든 파라미터의 모든 조합을 완전히 검색하는 것보다 훨씬 빠르게 수행할 수 있습니다.

근거

프로그램에서 가장 일반적인 버그는 일반적으로 단일 입력 매개 변수 또는 매개 [1]변수 쌍 간의 상호 작용에 의해 트리거됩니다.3개 이상의 파라미터 간의 상호작용을 수반하는 버그는 점차적으로 발생 빈도가 낮아지고 검출 비용도 높아집니다.이러한 테스트에서는 가능한 모든 [3]입력을 테스트하는 데 한계가 있습니다.따라서 전체 쌍 테스트와 같은 테스트 케이스를 선택하기 위한 조합 기법은 기능적 [4]적용범위를 크게 훼손하지 않고 테스트 케이스 수를 크게 줄일 수 있는 유용한 비용 편익 절충안이다.

보다 엄밀하게는 테스트 에 { { 1, 2, .., { \ { _ { i } \ = \ { _ { 1 , _ { 2 } , P _ { N }= \ { P _ { 1 } 、 P _ { N} } a in in in in in in N in in in in in in in in in in in in in in in in in 。파라미터의 범위는R () R))로 지정됩니다.=R_{나는}}. 가정해 보자는 R나는 갈ni{\displaystyle R_{나는}=n_{나는}}. 우리는 반보다의 수가 많을 수 있는 모든 시험 사례는∏ ni{\displaystyle\prod n_{나는}}. 상상해 봐를 통해 코드의 거래 조건도 두개의 매개 변수에 시간이도 감소시키기 위한 숫자의 필요한 시험 사례.[해명 필요한]

예를 들어 X,Y,Z 파라미터가 있다고 가정합니다. 3 의 형식 ( , ,) \ displaystyle P ( X , , Z)\ P ( , Y , Z )\ displaystyle P (u ,v p , displaystyle ( , , ( X )\ ( 3 의 입니다. ,) , x ( ,) { p { } ( , , Y ) , p _ { } (, Z ,_ { z x( , X ) 。여기서 쉼표는 임의의 조합을 나타냅니다.코드가 파라미터의 "유효"한 조건으로 기술되어 있는 경우 X { i} { Xi}\} 의 선택 세트[clarification needed] 멀티셋일 수 있습니다.이는 동일한 수의 파라미터를 가질 수 있기 때문입니다.

( S max ( )는 최대값 중 하나입니다.이 테스트 기능의 쌍별 테스트 케이스의 수는 다음과 같습니다.- a () × ( )\ = )\ \

n x (X n ( ) a x ( m= ( X \ max ( )}의 경우 테스트 횟수는 일반적으로 O(nm)입니다.여기n과 m은 가장 많은 파라미터의 각 가능성 횟수입니다. \ \ n _ {} ·

N-wise 테스트

N-와이즈 검정은 쌍-와이즈 [citation needed]검정의 일반화된 형태로 간주할 수 있습니다.

X { X=\{ 세트에 정렬을 적용하여 P {}({ P=\{i}\})도 정렬할 수 .정렬된 세트를 N{\ N 태플:-로 합니다.

집합X () { N - , - { X (2) = \ { _ { N - 1 } 、 _ { N - 2} call thewise it it it it it it it it it it it it it라고 부를 수 있습니다.더 일반화하면 X( { - N - 2 - { X ( 3 ) = \ { P_ { N - 1} =\ { P _ { N - } 、P _ { N - 3 the it it it it it it it 、 P _ { N - 3 - 3 testing it it it it it it it it it it it it it it it it it it it 。으로 (T ) { N -, -, ., P- ( \ ( T ) = \ { _ { N - 1 } , P _ { N -} )라고 말할.

N-wise 검정은 위의 공식에서 가능한 모든 조합으로 이루어집니다.

다음 표에 나타난 파라미터를 고려합니다.

파라미터명 값 1 값 2 값 3 값 4
가능한 진실의 거짓의 - -
선택 유형 1 2 3 -
카테고리 a b c d

'사용 가능', '선택 유형', '카테고리'의 선택 범위는 각각 2, 3, 4입니다.완전 테스트에는 24개의 테스트(2 x 3 x 4)가 필요합니다.가장 큰 두 값(3과 4)을 곱하면 쌍별 검정에는 12개의 검정이 포함됨을 나타냅니다.Microsoft 의 「그림」툴에 의해서 생성된 쌍별 테스트 케이스를 다음에 나타냅니다.

가능한 선택 유형 카테고리
진실의 3 a
진실의 1 d
거짓의 1 c
거짓의 2 d
진실의 2 c
거짓의 2 a
거짓의 1 a
거짓의 3 b
진실의 2 b
진실의 3 d
거짓의 3 c
진실의 1 b

「 」를 참조해 주세요.

메모들

  1. ^ Black, Rex (2007). Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional. New York: Wiley. p. 240. ISBN 978-0-470-12790-2.
  2. ^ Kuhn, D. Richard; Wallace, Dolores R.; Gallo, Albert M., Jr. (June 2004). "Software Fault Interactions and Implications for Software Testing" (PDF). IEEE Transactions on Software Engineering. 30 (6): 418–421. doi:10.1109/TSE.2004.24.
  3. ^ Kuhn, D. Richard; Kacker, Raghu N.; Yu Lei (October 2010). Practical Combinatorial Testing. SP 800-142 (Report). National Institute of Standards and Technology. doi:10.6028/NIST.SP.800-142.
  4. ^ IEEE 12. Proceedings from the 5th International Conference on Software Testing and Validation (ICST). Software Competence Center Hagenberg. "Test Design: Lessons Learned and Practical Implications. IEEE STD 829-2008. July 18, 2008. pp. 1–150. doi:10.1109/IEEESTD.2008.4578383. ISBN 978-0-7381-5746-7.

외부 링크