별이의 IT이야기/QA(테스트)

[테스팅 2탄] 블랙박스테스팅, 화이트박스 테스팅.

별이세상 2012. 7. 31. 01:56
반응형

안녕하세요.

꿈꾸는 별이입니다.

 

테스트를 공부하는데 있어 테스트관련된 용어를 좀더 친숙하게 알고 있어야

프로젝트를 할때 도움이 많이 되고 개발자와 대화를 할때는 도움이 많이 될것입니다.

 

오늘은 Black-Box testing 와 White-box testing에 대해 설명을 드리고자 합니다.

 

Black-box testing 의 용어를 적어보도록하겠습니다.

 

블랙박스 검사(Black-box testing)는 소프트웨어 검사 방법 중 하나로 어떤 소프트웨어를 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방법을 이르는 말입니다.. 주로 올바른 입력과 올바르지 않은 입력을 일일이 다 동원하여 올바른 출력을 판별하는 방식으로 검사가 이루어지기 때문에 검사의 진행에 있어 대상이 되는 소프트웨어의 코드나 내부 구조 및 개발 노하우에 대한 정보는 기본적으로 필요로 하지 않습니다.필요한 것은 특징, 요구 사항, 검사를 위해 공개된 설계도 등 대외적으로 공개된 사항들이며 '이 소프트웨어는 무슨 역할을 수행해야 되는가'와 같이 대상이 되는 소프트웨어의 특징이나 요구 사항 등에 초점을 맞춰 검사가 이루어진다. 검사 자체는 기능에 관한 것일 수도 있고 기능 외의 것에 관한 것일 수도 있습니다.

 

이 방법은 유닛 검사, 인테그레이션 검사, 기능 검사, 시스템 검사, 적합성 검사 이렇게 소프트웨어 검사의 모든 레벨에 적용 가능합니다.

 

또한 블랙박스 테스트의 기법은 다음과 같습니다.

 

테스트기법: 몇세기반(동등(균등)분할기법), 경계값 분석기법, 원인-결과 그래프 분석, 오류예측기법


블랙박스 테스트 기법(명세기반)

 

-동등분할 기법:프로그램의 입력 도메인을 테스트 케이스가 산출 될 수 있는 데이터의 클래스로 분류하는 방법, 다양한 입력조건들을 갖춘 시험사례 유형들을 분할:상식적 경험에 의존(heuristic)

각 시험사례 유형마다 최소의 시험사례 작성

예)입력데이타가 값의 범위를 나타낼 때 : X값이 0~100 사이여야 한다면 시험 사례를 (X<0, (x=0), X(x>50)으로 분할하여 유형을 적용

 

-경계값분석기법:입력조건의 중간값에서 보다 경계값에서 에러가 발생될 확률이 높다는 점을 이용하여 이를 실행하는 테스트 케이스를 만드는 방법

예)x값이 0~50사이 여야한다면 시험사례를 (x=0), (x=50), (x=-0.01), (x=50.1)을 시험사례 유형을 정의

 

-오류예측기법(Error Guessing):각 시험기법들이 놓치기 쉬운 오류들을 감각 및 경험으로 찾아보는 것,

예)입력값 없이 Return 친다, 문법에 어긋난 명령어나 규칙을 시험

 

-원인-결과 그래프 기법(Cause-Effect Graphing)

입력 데이터간의 관계가 출력에 미치는 영향을 그래프로 표현하여 오류 등을 발견하는 방법

 

 

White-box testing 의 용어를 적어보도록하겠습니다.

 

화이트박스 검사(White Box Test) 기법은 소프트웨어 내부 소스 코드를 테스트하는 기법이다. 소프트웨어를 테스트하는 방법은 크게 블랙박스 검사(Black-Box Test) 기법과 화이트박스 검사(White-Box Test) 기법이 있다. 블랙박스 검사 기법은 소프트웨어의 내부를 보지 않고, 입력과 출력값을 확인하여,기능의 유효성을 판단하는 테스트 기법이며, 화이트박스 검사 기법은 소프트웨어 내부 소스코드를 확인하는 기법이다. 화이트박스 테스트를 하는 이유는 내부 소스코드의 동작을 개발자가 추적 할 수 있기 때문에, 동작의 유효성 뿐만아니라 실행 되는 과정을 살펴봄으로써, 코드가 어떤경로로 실행되며, 불필요한 코드 혹은 테스트 되지 못한 부분을 살펴볼 수 있다. 화이트박스 테스트을 하는 부분은 대개 코드의 실행 경로를 확인해야 하기때문에 시중에 나와 있는 커버리지 분석도구를 많이 활용한다. 화이트박스 검사 기법은 블랙박스 검사 기법에 비해 많은 시간과 분석을 필요로 하지만 오류가 발생 되는 결함의 위치 등을 파악하는데 매우 유용하게 사용 할 수 있다. 일반적으로 화이트박스 테스트를 수행하는 도구는 커버리지 분석 도구와 많이 연관되며, Junit과 같은 무료도구가 있는 반면에 크리티컬한 마켓에 사용되는 VectorCAST와 같은 상용 도구 또한 있습니다.

 

화이트 박스 검사의 기법을 몇가지 설명하고자 합니다.

 

제어흐름 그래프 테스트 ,데이터(자료) 흐름 테스트,  경로 테스트 의 기법이 있습니다.

 

제어흐름 그래프의 경우 프로그램의 제어구조를 그래프 형태로 나타내고 그래프 구성요서는 블록과 분기로

나타낼수있습니다.

 

데이터(자료) 흐름 테스트는 제어흐름 그래프에 데이터 사용현황을 추가한 그래프입니다.

 

경로 테스트의 경우 목적하는 테스트 커버리지를 달성하기 위한 entry/exit path를 선택하는 것입니다.

 

 

요약을 하자면, 블랙박스 테스트의 경우 보이는 부분만 보고 문제점을 찾는 방법이고

화이트박스 테스팅의경우 보이지 않는 소스의 내부적인 로직구조의 문제점까지 찾아내는 방법이라고

생각하시면 될것 같습니다.

 

끝까지 읽어 주셔서 감사합니다.

 

 

 

'별이의 IT이야기 > QA(테스트)' 카테고리의 다른 글

[테스팅 1탄] QA(테스팅)의 개념  (0) 2012.07.18