용's

[Chap 10] Black Box Testing 본문

Computer Science/Software Engineering

[Chap 10] Black Box Testing

TaeYOng's 2014. 12. 13. 21:57

10.1 Testing 종류

-Testing에는 여러 종류가 있다.

.Black Box Test, Functional Test, White Box Test, Structural Test, Gray Box Test


- Functional Test(또는 Black Box Test와 같음)

.안의 코드들을 보지 않고 Requirement대로 입력에 따른 적절한 결과가 나오는지 테스트


- Structural Test(또는 White Box Test와 같음)

.소프트웨어의 구조나 구현사항(코드)들을 토대로 테스트 케이스가 선택됨

.이 경우는 단순한 결과값 뿐만 안이라 내부적인 동작 부분(path)도 살피게 됨


- Black Box Test의 경우, 스펙에 명시되어 있지 않은 부분은 테스팅 할 수 없음

- White Box Test의 경우, 프로그램으로 구현되지 않은 부분은 테스팅 할 수 없음



10.2 Black Box Testing

- Black Box Testing을 하는 여러가지 방법이 존재한다


- Equivalence Partitioning: Input space를 Equivalent class로 나눔. 

.같은 E.C의 input은 같은 성격을 가지므로 최소한 각 E.C에서 하나씩 뽑아 테스트해보는 것

.Partitioning하는 방법

1. input에 명시된 조건이 있다면 유효한 E.C 하나와 유효하지 않은 E.C 두 개로 나눈다

ex) 1<= item count <= 999 (vaild)    /     tem count < 1(invalid)     /   item count > 999 (invalid)

2. 'must be'라는 조건이 있다면 반드시 그래야만 하는 input값과 아닌 값의 두 개의 E.C로 나눈다

ex) 자동자의 유형은 버스 트럭이어야만 한다. 버스와 트럭의 E.C와 아닌 E.C로 나눔


.적은 test case로 valid한 E.Q Class를 최대한 많이 Cover(커버)하도록 하는 것이 중요함

.반면 invalid는 각 test case에 대해서 E.Q class를 한 개정도로 적게 커버하도록 함

-> 이를 토대로 Coverage Matrix를 만들 수 있음


- Boundary Value Analysis: 경계값에 대해서 테스트 케이스를 작성

.높은 비용을 감수해야할 수 도 있지만 매우 간단히 에러를 찾는 방법


- Error Guessing: 직감과 경험을 토대로 테스트 케이스를 작성


- Cause/Effect Graphing: Input과 output들을 연결하여 그래프를 그리고 관계를 알아 보는 것

.스펙을 토대로 Workable piece들을 나누어 'Ca

use'와 'Effect'들로 분류함

.스펙의 제약사항이나 and/or 관계를 토대로 Cause/Effect 그래프를 그림

원인들이 바로 결과로 이어질 때 direct

ex)전등이 꺼지면 방은 어두워 진다.

CAUSE: 전등을 끈다 (F)       EFFECT: 방이 어둡다 (D)

    

Not 관계

ex)전등이 켜지면, 방은 어둡지 않다

CAUSE: 전등을 켠다 (N)      EFFECT: 방이 어둡다 (D)

 

And 관계

ex) 전등을 끄고 창문도 없다면, 방은 어둡다.

CAUSE: 전등을 끈다 (F), 창문이 없다 (W)        EFFECT: 방이 어둡다 (D)

Or 관계


  


.Cause/Effect 그래프를 토대로 결정 테이블(Decision Table)을 만듦

각 Cause에 따른 EFFECT의 True/False를 구하여 작성함


.Decision Table의 각 열 정보를 토대로 Test Case를 생성해냄





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

[Chap 11] White Box Testing  (0) 2014.12.15
[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