티스토리 뷰

Source Code의 사용 유무에 따라 분류하면 Black Box Testing, White Box Testing, Gray Box Testing 등으로 구분됩니다.

 

Black Box Testing

 

프로그램이 어떻게 구현되어 있는지는 관여하지 않고 입력값에 대한 결과가 올바른 출력값인지에 대해 검증합니다. SW가 가져야할 기능을 알고 있지만 그 기능이 어떻게 작동되는지는 볼 수 없습니다. 즉, 어떤 내용을 입력했을 때 특정 출력을 얻게 되지만 그 작동원리는 모릅니다. 주로 발견되는 에러는 부정확한 기능 또는 누락된 기능, 인터페이스 오류, 행위 및 성능 오류, 초기화 및 종료 에러 등이 있습니다.

 

최종 제품의 사용자 입장에서 사용성을 테스트하며, 고객의 제품에 대한 신뢰성과 직결되므로 매우 중요합니다.

 

 

White Box Testing

 

프로그램 코드의 내부구조, 로직에 기반하여 테스트를 수행합니다. 특정 입력값에서 오류가 발생될 가능성을 판단하여 그 정보에 따라 테스트를 수행합니다. 프로그램의 내부 요소들이 명세서에 따라 수행되고 실행되는지를 보장하기 위한 테스트입니다. 특정 부분에 대한 집중적 테스트가 가능하다는 장점이 있습니다. 다양한 영역을 테스트함으로써 오류 발견율을 높일 수 있습니다. 테스트 경로 흐름을 제어할 수 있고 데이터의 값을 예상할 수 있습니다.

 

문제 발생시 개발자에게 정확한 원인을 전달할 수 있으며 유지 보수 비용의 절감 효과가 있습니다.

 

Black Box vs. White Box

 

방법 Black Box Testing White Box Testing
구분 기능 테스트 구조 테스트
처리 프로그램의 외부 명세서 프로그램의 내부 명세서
초점 무엇을 수행하는지 어떻게 수행하는지
기준 - 옳지 않은 기능 / 누락된 기능
- 인터페이스 기능
- 성능 에러
- 초기 또는 종료에 관한 에러
- 논리상의 오류
- 처리 순서상의 오류
시점 테스트 후반부에서 수행 테스트 전반부에서 수행

 

 

 

Gray Box Testing

 

Black Box Test와 White Box Test의 혼합 형태로 두 테스트의 경계에 위치합니다. SW를 Black Box 형태로 테스트하면서 상세하지는 않지만 SW의 작동 원리를 알아보는 것을 병행합니다. 소소 코드를 참조하여 기능을 테스트하기도 합니다. 비교적 테스트에 많은 시간이 소요됩니다.

 

한가지 추가. Risk-based Testing

 

완전한 테스트는 불가능하며, Test는 제한된 예산과 일정 내에 완료하여야 하므로 무엇을 테스트하는가에 대한 결정이 필요합니다. 이때 선택과 집중을 통해 테스트의 우선순위를 결정하여 검증하는 방법입니다. [Risk = 고장의 심각성 x 발생확률] 로 계산할 수 있는데, 발생빈도가 높거나 고장시 심각성이 높은 경우에 우선순위를 부여하게 됩니다.

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday