상위 질문
타임라인
채팅
관점
그레이박스 검사
위키백과, 무료 백과사전
Remove ads
그레이박스 검사 또는 그레이박스 테스트(gray-box testing, 국제 영어 철자: grey-box testing)는 화이트박스 검사와 블랙박스 검사의 조합이다. 이 테스트의 목표는 부적절한 구조나 애플리케이션의 부적절한 사용으로 인한 결함(있는 경우)을 찾아내는 것이다.[1][2]
개요
블랙박스 테스터는 테스트할 애플리케이션의 내부 구조를 알지 못하지만, 화이트박스 테스터는 애플리케이션의 내부 구조에 접근할 수 있다. 그레이박스 테스터는 내부 데이터 구조 및 사용된 알고리즘 문서를 포함하여 내부 구조를 부분적으로 알고 있다.[3]
그레이박스 테스터는 테스트 케이스를 정의하기 위해 애플리케이션을 설명하는 상위 수준 및 상세 문서를 모두 필요로 한다.[4]
그레이박스 검사의 필요성
그레이박스 검사는 블랙박스 검사의 간단한 기술을 취하여 화이트박스 검사의 코드 대상 시스템과 결합하기 때문에 유익하다.
그레이박스 검사는 단언(assertion) 방법을 사용하여 프로그램이 테스트되기 전에 모든 조건을 제시하므로 요구 사항 테스트 케이스 생성에 기반을 둔다. 요구 사항 명세 언어는 요구 사항을 쉽게 이해하고 정확성을 확인하는 데 사용된다.[5]
객체 지향 소프트웨어에 대한 그레이박스 검사 가정
객체 지향 소프트웨어는 주로 객체로 구성된다. 여기서 객체는 실행 가능한 코드 및 데이터를 가진 단일 불가분 단위이다. 그레이박스 검사를 적용하는 데 필요한 몇 가지 가정이 아래에 명시되어 있다.
예시
기술
셈 캐너는 "그레이박스 검사를 입력 및 출력을 포함하지만, 테스트 설계는 일반적으로 테스터에게 보이지 않는 종류의 코드 또는 프로그램 작동에 대한 정보에 의해 교육된다"라고 정의한다.[9] 그레이박스 검사 기술은 다음과 같다.
영향
긍정적 영향
부정적 영향
Remove ads
응용
- 그레이박스 검사는 웹 애플리케이션에 매우 적합하다. 웹 애플리케이션은 분산 네트워크 또는 시스템을 가지며, 소스 코드나 바이너리가 없기 때문에 화이트박스 검사를 사용할 수 없다. 블랙박스 검사도 고객과 개발자 간의 계약 때문에 사용되지 않으므로, WSDL에 중요한 정보가 포함되어 있어 그레이박스 검사를 사용하는 것이 더 효율적이다.[13]
- 그레이박스 검사는 기능 또는 비즈니스 도메인 테스트에 적합하다. 기능 테스트는 기본적으로 외부 시스템과의 사용자 상호 작용 테스트이다. 그레이박스 검사는 그 특성상 기능 테스트에 매우 적합하며, 소프트웨어가 소프트웨어에 정의된 요구 사항을 충족하는지 확인하는 데도 도움이 된다.[14][15][16][17]
향후 범위
웹 서비스의 분산된 특성은 그레이박스 검사가 서비스 지향 아키텍처 (SOA) 내의 결함을 감지하도록 허용한다. 화이트박스 검사는 내부 구조를 직접 다루기 때문에 웹 서비스에 적합하지 않다. 화이트박스 검사는 최신 방법, 예를 들어 소스 코드나 바이너리 없이 예외 처리 상태, 흐름을 돕기 위해 대규모 배열에 대한 자동 테스트를 생성하는 메시지 변이(message mutation)에 사용될 수 있다. 이러한 전략은 그레이박스 검사를 화이트박스 검사 결과에 더 가깝게 만드는 데 유용하다.
같이 보기
- 그레이 박스 모델
각주
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads