용's

[Chap 11] White Box Testing 본문

Computer Science/Software Engineering

[Chap 11] White Box Testing

TaeYOng's 2014. 12. 15. 23:19

10.1 White Box Test

- Output 결과를 비교할 뿐만 아니라 예상된 방향으로 프로그램이 흘러가는지도 비교 하는 것

- Black box test와는 달리 내부적인 구조를 살펴봐야 함

- Logic coverage의 기준을 만족 시키기 위한 테스트 케이스들을 설계함

.Statement Coverage(문장 검증 기준)

.Branch Coverage(분기 검증 기준)

.Condition Coverage(개별 조건 검사)

.Compound Condition Coverage(다중 조건 검사)

.Path Coverage(경로 검사)



10.2 Logic Coverage

- 다음과 같은 코드와 Flow Chart를 가지고 각 Coverage들을 살펴보자



- Statement Coverage   

.가장 단순한 검증기준 형태로, 모든 Statement가 적어도 한번 실행되는가를 검사

.예를 들면 테스트 케이스 (A, B, X) = (2, 0, 3)의 경우 모든 Statement(X:=X/A, X:=X+1)를 실행함으로써 Statement Coverage를 만족 시킴

.가장 약한 기준의 Logic Coverage


- Branch Coverage(Decision Coverage)

.각 Branch에 대하여 T의 경우와 F의 경우 모두를 통과시키는가를 검사

.Branch Coverage가 만족하면 Statement Coverage 또한 만족시킴

.Branch에는 if then/case/loop 과 같은 것들이 있음

.예를 들면 테스트 케이스 (3,0,3)와 (2,1, 1)을 선택하면 a, c, d / a, b, e 의 path를 지나게 되면서 각 Branch의 T/F를 다 통과시키면서도 모든 statement를 거치게 됨을 확인 할 수 있음


- Condition Coverage

.Branch안의 각 Condition에 대하여 적어도 T가 한번 이상, 그리고 적어도 F가 한번 이상 나오는지 검사

.예를 들면 if (A<B) and (A>2)에 대하여 A<B에서 적어도 T 또는 F, A>2에 대하여 적어도 T 또는 F

.Condition Coverage를 만족시키면 Branch Coverage도 만족시키는가?

그렇지 못하다. 예를 들면 (  ) and (  )에서 첫 번째 테스트케이스는 F 와 T가 나오고, 두 번째 테스트 케이스에서는 T와 F가 나왔다면, 각 Condition에서 T와 F가 한번씩 나왔으므로 Condition Coverage는 만족하나, 두 컨디션을 합쳤을 때는 F의 경우 하나로만 합쳐짐으로 Branch Coverage를 만족 못시킴


- Decision/Condition Coverage

.위의 Decision Coverage와 Condition Coverage를 모두 만족시키는지 검사

 

 A,B,X = (2,0,4)

 A,B,X = (1,1,1)

 A>1

T

 B=0

 A=2

 X>1 

F



Compound Condition Coverage(Multi-Condition Coverage)

.각 Branch에 대하여 Condition들의 가능한 모든 조합을 Cover할 수있는지 검사

.Compound Condition Coverage이 만족되면 Decision/Condition Coverage도 만족시킨다



- Path Coverage

.가장 강한(완벽한) Coverage

.모든 갈 수 있는(가능한) path가 실행될 수 있도록함

.하지만 Loop 때문에 path가 기하 급수적으로 늘어날 수 있음




10.3 Loop Testing

- 루프 테스트는 기본적으로 0, 1, 2, t, (max-1,) max, max+1 번 테스트를 해봐야 한다. 

- Loop Testing에는 Simple loop, nested loop, concatenated loop, unstructured loop이 있음

- Nested Loop의 경우, 가장 안에 있는 loop부터 시작하는데, path를 최대한 줄이는 방향으로 테스트 한다.

.안에 있는 루프의 0, 1, t, m 각각의 값에 대하여, 바깥 루프의 0, 1, 2, l, n의 path를 검사함




10.4 White Box Testing의 한계점

- 알 수 없는 path들이 존재할 수 있다.

- 우연하게 테스팅이 들어맞을 수 있다.

- 임의의 path을 테스트 하기 위한 데이터들을 찾는 것이 어렵다.




'Computer Science > Software Engineering' 카테고리의 다른 글

[Chap 10] Black Box Testing  (0) 2014.12.13
[Chap 9] Software Testing  (0) 2014.12.13
[Chap 8] Architecture Design  (0) 2014.12.13
[Chap 7] Design  (0) 2014.12.11
[Chap 6] Object-Oriented Concepts  (0) 2014.12.05
Comments