728x90

1. 화이트박스와 블랙박스 테스트의 의미 및 차이점

단위테스트는 프로그램의 전반이 아닌 특정 영역이 프로그래머의 의도대로 코딩이 되는지 확인하는 것이다. 따라서 단위 테스트 대상은 코드 기능의 특정한 부분인 개발자가 작성한 프로그램 중 한 부분인 코드 조각이다. 단위테스트의 단계에서는 프로그램의 성능이나 정확성에 대해서는 많은 관심을 두지 않는다. 다만 프로그래머의 의도에 따라서 프로그램이 진행되는지 확인하는 것이다. 이러한 단위테스트들을 거친 조각의 프로그램이 모여서 하나의 거대한 시스템을 구성한다. 그렇다면 성공적인 단위테스트는 어떠한 과정을 거칠까?

블랙박스 테스트는 기능적인 측면으로 보았을 때 프로그램이 제대로 동작하고 있는지를 확인하는 것이다. 입력과 출력간의 관계만 서로 비교하여 프로그램의 의도대로 모듈이 작동되는가의 초점을 맞춘 테스트 방법이다. 블랙박스 테스트는 모듈의 외형적으로 입출력을 검사하며, 테스트 사례가 모든 가능한 입력과 출력을 만족시켜야 한다. 블랙박스 테스트는 외부적으로 모듈을 보았을 때 개발자가 의도한 결과를 생성하는 가에 대해서만 판단할 수 있다. 이때 문제가 발생한 모듈에 대해서는 문제의 원인이 어디서 발생하였는지 판단하며, 이러한 일을 수행하기 위해서는 모듈 내부 흐름 하나하나를 판단하여 보아야 한다. 블랙박스 테스트는 화이트박스 테스트에 비해 비교적 빠른 시간에 시행될 수 있지만 내부에 문제가 발생하였을 때 문제의 원인을 찾을 수 없다. 때문에 부정확하거나 누락된 기능 인터페이스 오류 자료 구조나 외부 데이터베이스 접근에 따른 오류, 행위나 성능 오류 등에 사용되며, 테스트 과정의 후반부에 적용된다.

화이트박스 테스트는 프로그램의 코드들의 논리적인 모든 경로를 검사하여 검사하는 사례를 설계하는 방법이다. 프로그램소스코드를 해석할 수 있는 정도의 프로그래머가 필요하며 프로그래머가 작성한 프로그래머의 일련의 과정을 따라가면서 구조적으로 하나씩 사례를 살펴보는 것이다. 프로그램의 코드 안의 작동을 직접 확인함으로써 프로그램 작동에 있어서 정확성을 높일 수 있다. 하지만 인력과 많은 시간을 요구하기 때문에 실무적으로 많이 사용되지 않는다.

블랙테스트와 화이트테스트는 서로 다른 성격을 가지고 있기 때문에 상호보완적 역할을 할 수 있다. 성공적인 단위테스트를 위해서는 비교적 실행시간이 빠른 블랙박스 테스트를 먼저 시행하고 실행을 할 때 문제점이 발견되면 화이트박스 테스트를 시행하여서 두 테스트의 장단점을 살려 테스트를 거쳐야겠다.

728x90

'SE' 카테고리의 다른 글

UX AGILE 애자일  (0) 2014.10.31
애자일 AGILE  (0) 2014.10.31
프로세스 모델  (0) 2014.10.17
EA(Enterprise Architecture)  (0) 2014.10.17
SOA(Service Oriented Architecture)  (0) 2014.10.17

+ Recent posts