소프트웨어 테스트-방법
소프트웨어 테스트에 사용할 수있는 다양한 방법이 있습니다. 이 장에서는 사용 가능한 방법에 대해 간략하게 설명합니다.
블랙 박스 테스트
응용 프로그램의 내부 작동에 대한 지식없이 테스트하는 기술을 블랙 박스 테스트라고합니다. 테스터는 시스템 아키텍처를 알지 못하며 소스 코드에 액세스 할 수 없습니다. 일반적으로 블랙 박스 테스트를 수행하는 동안 테스터는 입력을 제공하고 입력이 어디서 어떻게 작동하는지 알지 못해도 출력을 검사하여 시스템의 사용자 인터페이스와 상호 작용합니다.
다음 표에는 블랙 박스 테스트의 장점과 단점이 나열되어 있습니다.
장점 | 단점 |
---|---|
큰 코드 세그먼트에 적합하고 효율적입니다. | 선택한 수의 테스트 시나리오 만 실제로 수행되므로 제한된 범위입니다. |
코드 액세스가 필요하지 않습니다. | 테스터가 응용 프로그램에 대한 지식이 제한적이라는 사실 때문에 비효율적 인 테스트. |
시각적으로 정의 된 역할을 통해 사용자 관점과 개발자 관점을 명확하게 구분합니다. | 테스터가 특정 코드 세그먼트 또는 오류가 발생하기 쉬운 영역을 대상으로 할 수 없기 때문에 맹목적 범위. |
상당수의 숙련 된 테스터가 구현, 프로그래밍 언어 또는 운영 체제에 대한 지식 없이도 애플리케이션을 테스트 할 수 있습니다. | 테스트 케이스는 설계하기가 어렵습니다. |
화이트 박스 테스트
화이트 박스 테스트는 내부 논리 및 코드 구조에 대한 자세한 조사입니다. 화이트 박스 테스트는glass testing 또는 open-box testing. 수행하기 위해white-box 응용 프로그램에서 테스트하려면 테스터는 코드의 내부 작업을 알아야합니다.
테스터는 소스 코드 내부를 살펴보고 부적절하게 작동하는 코드 단위 / 청크를 찾아야합니다.
다음 표는 화이트 박스 테스트의 장단점을 나열합니다.
장점 | 단점 |
---|---|
테스터가 소스 코드에 대한 지식을 가지고 있으므로 애플리케이션을 효과적으로 테스트하는 데 도움이 될 수있는 데이터 유형을 쉽게 찾을 수 있습니다. | 화이트 박스 테스트를 수행하려면 숙련 된 테스터가 필요하기 때문에 비용이 증가합니다. |
코드 최적화에 도움이됩니다. | 때로는 많은 경로가 테스트되지 않은 상태로 이동하므로 문제를 일으킬 수있는 숨겨진 오류를 찾기 위해 구석 구석을 조사하는 것이 불가능합니다. |
숨겨진 결함을 가져올 수있는 추가 코드 줄을 제거 할 수 있습니다. | 코드 분석기 및 디버깅 도구와 같은 특수 도구가 필요하기 때문에 화이트 박스 테스트를 유지하기가 어렵습니다. |
코드에 대한 테스터의 지식으로 인해 테스트 시나리오 작성 중에 최대 범위에 도달합니다. |
회색 상자 테스트
그레이 박스 테스트는 애플리케이션의 내부 작업에 대한 제한된 지식을 가지고 애플리케이션을 테스트하는 기술입니다. 소프트웨어 테스트에서 더 많이 알수록 응용 프로그램을 테스트하는 동안 많은 비중을 차지하는 것이 좋습니다.
시스템의 도메인을 마스터하면 테스터는 항상 제한된 도메인 지식을 가진 사람보다 우위를 차지할 수 있습니다. 테스터가 애플리케이션의 사용자 인터페이스 만 테스트하는 블랙 박스 테스트와 달리; 회색 상자 테스트에서 테스터는 설계 문서와 데이터베이스에 액세스 할 수 있습니다. 이 지식이 있으면 테스터는 테스트 계획을 세우면서 더 나은 테스트 데이터와 테스트 시나리오를 준비 할 수 있습니다.
장점 | 단점 |
---|---|
가능한 경우 블랙 박스 및 화이트 박스 테스트의 결합 된 이점을 제공합니다. | 소스 코드에 대한 액세스를 사용할 수 없기 때문에 코드 및 테스트 범위를 검토하는 기능이 제한됩니다. |
그레이 박스 테스터는 소스 코드에 의존하지 않습니다. 대신 인터페이스 정의 및 기능 사양에 의존합니다. | 소프트웨어 설계자가 이미 테스트 케이스를 실행 한 경우 테스트가 중복 될 수 있습니다. |
사용 가능한 제한된 정보를 기반으로 회색 상자 테스터는 특히 통신 프로토콜 및 데이터 유형 처리와 관련된 우수한 테스트 시나리오를 설계 할 수 있습니다. | 가능한 모든 입력 스트림을 테스트하는 것은 비합리적인 시간이 걸리기 때문에 비현실적입니다. 따라서 많은 프로그램 경로가 테스트되지 않습니다. |
테스트는 디자이너가 아닌 사용자의 관점에서 수행됩니다. |
테스트 방법 비교
다음 표에는 블랙 박스 테스트, 그레이 박스 테스트 및 화이트 박스 테스트를 구분하는 포인트가 나열되어 있습니다.
블랙 박스 테스트 | 회색 상자 테스트 | 화이트 박스 테스트 |
---|---|---|
애플리케이션의 내부 작동을 알 필요는 없습니다. | 테스터는 애플리케이션의 내부 작동에 대한 지식이 제한적입니다. | 테스터는 애플리케이션의 내부 작업에 대한 완전한 지식을 가지고 있습니다. |
폐쇄 형 테스트, 데이터 기반 테스트 또는 기능 테스트라고도합니다. | 테스터는 응용 프로그램 내부에 대한 지식이 제한되어 있으므로 반투명 테스트라고도합니다. | 클리어 박스 테스트, 구조 테스트 또는 코드 기반 테스트라고도합니다. |
최종 사용자와 테스터 및 개발자가 수행합니다. | 최종 사용자와 테스터 및 개발자가 수행합니다. | 일반적으로 테스터와 개발자가 수행합니다. |
테스트는 외부 기대치를 기반으로합니다.-애플리케이션의 내부 동작을 알 수 없습니다. | 테스트는 고급 데이터베이스 다이어그램과 데이터 흐름 다이어그램을 기반으로 수행됩니다. | 내부 작업은 완전히 알려져 있으며 테스터는 그에 따라 테스트 데이터를 설계 할 수 있습니다. |
철저하고 시간 소모가 가장 적습니다. | 부분적으로 시간이 많이 걸리고 소모적입니다. | 가장 철저하고 시간이 많이 걸리는 테스트 유형입니다. |
알고리즘 테스트에는 적합하지 않습니다. | 알고리즘 테스트에는 적합하지 않습니다. | 알고리즘 테스트에 적합합니다. |
시행 착오 방법으로 만 수행 할 수 있습니다. | 알려진 경우 데이터 도메인 및 내부 경계를 테스트 할 수 있습니다. | 데이터 도메인과 내부 경계를 더 잘 테스트 할 수 있습니다. |