2009-06-18 5 views
0
if(condition1) 
    dosomething1(); 
if(condition2) 
    dosomething2(); 
if(condition3) 
    dosomething3(); 

는 전체 지점의 테스트가지점 테스트

  1. 조건 1 = 조건 2 = 조건 3 = TRUE;
  2. 조건 1 = 조건 2 = 조건 3 = 거짓;

아니면 오해 했습니까? 분기 테스트와 경로 테스트의 차이점을 파악하려고합니다. 경로 테스트를 통해 올바른 결과를 얻을 수 있기를 바랍니다.

+0

다음과 같이 분기 범위와 관련 테스트 측정에 대한 상당히 다른 의견이 있습니다. 여기에 주제에 대한 설명이 더 있습니다. – Zane

답변

3

지점 테스트 :

테스트하는 프로그램 소스 코드의 모든 지점은 적어도 한 번 테스트됩니다.

예; 모든 지점이 적중되기 때문에 정확한 지점 테스트를 수행하고 있습니다. 케이스 1은 모든 브랜치를 실행하기 때문에 실제로 두 번째 테스트 케이스를 제거 할 수 있습니다.

분명히 분기 테스트는 경로 테스트보다 포괄적이지 않습니다. 의존 테스트가 발생할 가능성이 낮기 때문에 테스트의 유일한 형식이되어서는 안됩니다.

+0

흠, 혼란 스럽습니까? 나는 당신의 정의를 얻지 만, 만약 내가 secound testcase를 제거하지 않는다면 이것은 단지 문장 커버리지가 될 것입니까? –

+0

두 번째 테스트 케이스는 분기 테스트의 엄격한 정의가 주어지면 중복됩니다. 즉, if 문이 case 1과 case 2에서 테스트 될 것입니다. 따라서 case 2는 새로운 작업을 수행하지 않습니다. –

+0

감사합니다. 이 사이트에서는 두 가지 테스트 사례를 사용합니다. http://www.onjava.com/pub/a/onjava/2007/03/02/statement-branch-and-path-coverage-testing-in-java.html?page=1 –

0

내가 무엇을 요구하는지 이해하면 주어진 코드의 대안을 완전히 다루기 위해 8 가지 테스트 케이스가 필요할 수 있습니다. 예를 들어, 에 의해 설정된 다른 상태에 따라 dosomething2()이 발생하면 어떻게해야합니까? 귀하의 테스트 케이스는 그 요구 사항을 포착하지 않습니다.

+0

그럼에도 불구하고, 6? 8을 어떻게 얻었습니까? –

+0

@ 그렉 - 경로 테스트 –

+0

@Stefan : 2^3 = 8, 이진 비트의 조합 수 : 000, 001, 010, 011, 100, 101, 110, 111. –

0

예, 올바르게 이해합니다. 분기 테스트는 "모든 분기가 실행됩니다."

+0

그래서 나는 두번째 테스트 케이스가 필요하지 않습니까? –

1

100 % 기본 경로 범위를 달성하려면 기본 세트를 정의해야합니다. 이 방법의 순환 복잡도는 4 개 (의사 결정 수를 더한 것)이므로 4 개의 선형 독립 경로를 정의해야합니다. 이렇게하려면 임의의 첫 번째 경로를 기준으로 선택하고 기준을 설정할 때까지 한 번에 하나씩 결정을 뒤집습니다.

경로 1 : 경로가 기준선에 적용되므로 의사 결정 결과 (TTT로 표시)에 대해 true를 선택하십시오. 이것은 귀하의 기본 설정에서 첫 번째 경로입니다.

경로 2 : 다음 기본 경로를 찾으려면 기본 결정에서 첫 번째 결정 만 뒤집고 원하는 의사 결정 결과에 대해 FTT를 제공하십시오.

경로 3 : 기본 경로에서 두 번째 결정을 뒤집어 세 번째 기본 경로에 대해 TFT를 제공합니다. 이 경우, 첫 번째 기본 결정은 실제 결과로 고정되어 있습니다.

경로 4 : 마지막으로 기본 경로에서 세 번째 결정을 뒤집어 네 번째 기본 경로에 대해 TTF를 제공합니다. 이 경우, 첫 번째 기본 결정은 실제 결과로 고정되어 있습니다.

그래서 네 가지 기본 경로는 TTT, FTT, TFT 및 TTF입니다. 자, 테스트를 만들고 무슨 일이 일어나는 지 봅니다.

기억으로 경로 테스트의 목표는 서로 독립적으로

(http://www.codign.com/pathbranchcode.html에서 추출) 내 이해 당으로

1

의 모든 의사 결정 결과를 테스트하는 것입니다, 분기 범위도 결정 범위와 그것으로 알려져있다 진실과 거짓 모두를 다룹니다.

진술 범위와는 다릅니다. IF 문을 사용하면 IF 후에 오는 논리 조건의 값

에 따라 exit가 TRUE 또는 FALSE 중 하나가 될 수 있습니다.

우리가 지점의 범위를 설명하는 하나의 예를 보자 :

IF "A> B"

PRINT A가 그래서 B

ENDIF

100 %의 테스트 세트보다 큰 분기 적용 범위는 다음과 같습니다.

테스트 사례 1 : A = 5, B = 2 이는 true를 반환합니다.

테스트 사례 2 : A = 2, B = 5 이는 false를 반환합니다.

귀하의 경우, 테스트 케이스 1과 2 모두 지점 커버리지에 필요합니다.

테스트 사례 1 만 있으면 명세서 내용이됩니다.