본문 바로가기
Programming/Computer Science

화이트박스 vs 블랙박스

by { 큐 } 2019. 4. 17.

White Box는 사실 투명 박스에 가까운 것 같다. Black Box는 말그대로 안이 보이지 않는 박스.

 

두 단어는 테스트 방법론에서 자주 거론되는데, 컴포넌트를 지칭할 때도 쓰이는 것 같다.

 

Black Box Test는

1. 내부 구조가 어떻게 되어있는지 확인할 수 없다.

2. 결과물 상태를 보고 요구사항이 충족하는지 확인한다.

3. 테스트 비용이 많이 든다. 왜냐면 어떠한 결과가 나올지 예측할 수 없기 때문에 test case를 많이 시도해보아야 하기 때문이다.

 

White Box Test는

1. 소스코드 형태로 소프트웨어를 테스트한다.

2. 테스트 코드는 White Box Test에 해당하는 것 같다. Unit Testing, Integration Testing, System Testing이 해당된다.

3. 시작단계부터 테스트를 진행할 수 있다. 테스트 비용도 적다.

 

 

프로그래밍 관점에서 보는 black box, white box는 약간 다른 것 같다.

white box framework, white box reuse

vs

black box framework, black box reuse

이렇게 쓰이는 것 같은데

 

white, black이 지칭하는 개념은 같다.

white는 프레임워크 혹은 컴포넌트의 내부를 깊게 들여다볼 수 있도록 되어있어서, 객체의 구현 내부에 접근하는 코드를 쓸 수 있다. 자유도가 더 높겠지만, 기존 의도대로 동작하지 않을 수도 있고, 다른 프레임워크나 프로그램과 맞지 않을 수도 있다는 단점이 있겠다.

 

black은 컴포넌트 안을 보거나 변경할 수 없으므로 고안된 대로 재사용이 가능하다. 내부 알고리즘을 알 수 없지만, 고안된 대로만 쓸 수 있기 때문에 일관된 프로그래밍이 가능하겠다.

 

 

 

 

 

새로운 내용이 있으면 덧붙일 예정.

 

참고했던 것들

"서비스 디자인 패턴", 로버트 다이뇨 중 '객체에서 웹 서비스로'

http://www.copypasteisforword.com/notes/object-oriented-frameworks

http://softwaretestingfundamentals.com/white-box-testing/

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

MSA, Microservice Architecture 장단점  (0) 2019.04.30
객체 지향 설계 원칙 SOLID  (0) 2019.04.30