본문 바로가기
소프트웨어공학론

Black box testing

by 학식러 2023. 6. 10.

 

 

Black box, White box의 기준 : 코드의 내부를 아느냐 모르느냐

 

-Black box :

박스 안의 내용을 모른다,

코드가 어떻게 구현되는지 모르는 상황에서 테스트,

코드는 모르지만 명세는 가지고 있다,

소프트웨어의 명세에 기반하여 테스트하는 방법,

명세에 기술된 동작들은 다 커버하도록 테스트해야 한다,

코드는 모르고 명세만 보고 테스트하기 때문에 명세에 드러나있지 않은 구현상세 내용으로 인한 버그가 있을 때 찾지 못한다. = 명세와 관련한 오류는 찾을 수 있지만 명세와 관련 없는 오류는 찾을 수 없다.

 

-White box :

명세는 없지만 코드를 들여다 볼 수 있다,

코드에 기반하여 테스트 케이스를 설계하여 테스트.

코드에 구현된 것은 다 커버가 되도록 테스트해야 한다,

코드를 가지고 있음에도 불구하고 테스트 하지 못하는 경로가 있을 수 있고 그 오류는 찾을 수 없다.

 

두 방법은 서로 상호보완적이다.

 

 

-Black-box Testing

코드에 어떤 내용이 들어있는지 모른다.

명세 내용에 따라 int 아무거나 하나 설정해서 테스트 케이스를 진행한다.

ex) 123을 넣어서 잘 동작하는지 확인

 

1. 장점 :

1) 도메인에 집중한다.

2) 코드가 필요없다. => 테스트케이스 설계를 일찍 할 수 있다.

3) 논리적 오류를 잡는데 더 유리하다.

4) 테스트 대상의 크기에 상관없이 적용 가능하다.

 

 

2. 명세에서 테스트 케이스 만드는 과정

주어진 기능적인 명세에서

1) 독립적이고 테스트 가능한 특징들을 찾아낸다.

2) 테스트 가능한 각 특징들과 관련된 입력들을 찾아낸다.

3) 입력들의 조합을 가지고 테스트 케이스 명세를 만든다.

4) 테스트 케이스 명세에 부합하는 실제 구체적인 테스트 케이스들을 만든다.

 

예시1 : Usecase diagram 명세

독립적이고 테스트 가능한 특징 = 사용자 ID, 패스워드, 재입력 패스워드

 

 

특징들(사용자 ID, 패스워드, 재입력 패스워드)과 관련된 입력 = 정상 input, 비정상 input, 예외 input / 정상 패스워드, 비정상 패스워드, 예외 패스워드 / ...

 

 

정상, 비정상의 조합해서 테스트 케이스를 만든다.

취소선 ex) 3번, 4번 : 로그인 ID가 정상이고, 패스워드가 비정상이면 재입력된 패스워드를 고려하지 않고 바로 오류메시지를 보인다. 그래서 4번은 3번에 의해 커버가 되기 때문에 취소선이 그어졌다. => 비용 고려

 

 

테스트 케이스 명세에 대해서 실제 구체적인 테스트 케이스를 만든다.

실제 로그인 ID, 패스워드, 재입력 패스워드를 입력해서 구체적인 테스트 케이스를 만든다.

 

 

예시2 : State diagram 명세

모든 state transition(화살표)을 커버하고 잘 이루어지는지 검사하는 테스트 케이스를 만들어 보는 것

 

 

'소프트웨어공학론' 카테고리의 다른 글

Testing  (0) 2023.05.28
Code quality improvement  (0) 2023.05.27
Code smell  (0) 2023.05.26
Refactoring - Catalogue  (0) 2023.05.25
Refactoring - overview  (0) 2023.05.24

댓글