본문 바로가기
도전기/PE

13주_SW_동적 테스트 개념과 블랙박스 및 화이트 박스 테스트 상세 비교

by Qookoo 2024. 6. 2.
반응형

소프트웨어 테스팅에서 동적 테스팅의 개념

동적 테스팅은 코드를 실행하고 실행 중 소프트웨어의 동작을 분석하여 소프트웨어를 테스트하는 프로세스를 말합니다. 실제 환경이나 시뮬레이션 환경에서 소프트웨어를 실행하여 소프트웨어의 기능적 및 비기능적 동작을 검증하고 결함을 식별하는 것을 목표로 합니다. 동적 테스트는 단위 테스트, 통합 테스트, 시스템 테스트 및 승인 테스트를 포함하여 소프트웨어 개발 수명주기의 다양한 수준에서 수행될 수 있습니다.

동적 테스트의 주요 측면

  1. 실행 기반:
    • 소프트웨어를 실행하고 입력을 제공하여 시스템이 어떻게 반응하는지 관찰합니다.
    • 소프트웨어의 런타임 동작 및 성능을 확인합니다.
  2. 검증:
    • 소프트웨어가 의도한 대로 작동하는지 확인합니다.
    • 소프트웨어가 지정된 요구 사항과 사용자 기대를 충족하는지 확인합니다.
  3. 결함 감지:
    • 실행 중에 발생하는 결함 및 오류를 식별합니다.
    • 성능, 보안 및 유용성과 관련된 문제를 파악하는 데 도움이 됩니다.
  4. 실시간 피드백:
    • 소프트웨어의 기능과 성능에 대한 즉각적인 피드백을 제공합니다.
    • 문제를 빠르게 식별하고 해결할 수 있습니다.
  5. 테스트 수준:
    • 단위 테스트: 소프트웨어의 개별 구성 요소 또는 기능을 테스트합니다.
    • 통합 테스트: 통합된 구성 요소 간의 상호 작용을 테스트합니다.
    • 시스템 테스트: 전체 통합 소프트웨어 시스템을 테스트합니다.
    • 인수 테스트: 사용자 요구 사항 및 비즈니스 요구 사항에 대해 소프트웨어를 검증합니다.

 

블랙박스 테스트와 화이트박스 테스트 비교

블랙 박스 테스트화이트 박스 테스트는 동적 테스트에 대한 두 가지 기본 접근 방식으로, 각각 고유한 방법론, 목표 및 사용 사례가 있습니다.

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

정의:
동작 또는 기능 테스트라고도 알려진 블랙박스 테스트는 내부 코드 구조, 구현 세부 사항 또는 내부 경로에 대한 지식 없이 소프트웨어 기능을 테스트하는 데 중점을 둡니다.

 

주요 특징:

  1. 테스터 관점:
    • 테스터는 소프트웨어의 내부 작동에 대한 지식이 필요하지 않습니다.
    • 소프트웨어가 수행하는 방식보다는 수행하는 작업에 중점을 둡니다.
  2. 테스트 기준:
    • 소프트웨어 요구 사항, 사양 및 사용자 사례를 기반으로 합니다.
    • 테스트는 소프트웨어의 외부 설명에서 파생됩니다.
  3. 테스트 설계 기법:
    • 동등 분할: 입력 데이터를 등가 분할로 나누어 테스트 사례 수를 줄입니다.
    • 경계 값 분석: 입력 범위의 경계에 중점을 둡니다.
    • 의사결정 테이블 테스트: 의사결정 테이블을 사용하여 다양한 입력 조합에 대한 시스템 동작을 캡처합니다.
    • 상태 전환 테스트: 시스템의 다양한 상태와 전환을 테스트합니다.
  4. 보장 범위:
    • 기능적 요구 사항의 적용 범위를 보장합니다.
    • 내부 코드 경로 또는 구조의 적용 범위를 보장하지 못할 수 있습니다.
  5. 사용 사례:
    • 기능, 사용자 인터페이스 및 전반적인 시스템 동작을 검증하는 데 적합합니다.
    • 승인 테스트, 시스템 테스트, 회귀 테스트에 효과적입니다.

화이트 박스 테스트

정의:
구조적 또는 클리어 박스 테스트라고도 알려진 화이트 박스 테스트에는 소프트웨어의 내부 구조, 논리 및 구현을 테스트하는 작업이 포함됩니다. 테스터는 내부 코드와 디자인을 완벽하게 볼 수 있습니다.

 

주요 특징:

  1. 테스터 관점:
    • 테스터는 내부 코드, 알고리즘, 로직에 접근할 수 있습니다.
    • 소프트웨어가 내부적으로 어떻게 작동하는지에 중점을 둡니다.
  2. 테스트 기준:
    • 내부 코드 구조, 설계 문서, 알고리즘을 기반으로 합니다.
    • 테스트는 코드에 대한 지식을 바탕으로 설계되었습니다.
  3. 테스트 설계 기법:
    • 문장 적용 범위: 코드의 모든 문이 한 번 이상 실행되도록 합니다.
    • 분기 적용 범위: 코드의 모든 분기(결정)가 실행되도록 보장합니다.
    • 경로 적용 범위: 코드를 통해 가능한 모든 경로가 실행되는지 확인합니다.
    • 루프 테스트: 코드 내의 루프를 테스트하여 올바르게 작동하는지 확인합니다.
  4. 보장 범위:
    • 내부 코드 경로 및 구조의 철저한 적용을 보장합니다.
    • 높은 코드 적용 범위 지표를 달성하는 것을 목표로 합니다.
  5. 사용 사례:
    • 코드 논리, 알고리즘 및 내부 기능을 검증하는 데 적합합니다.
    • 단위 테스트, 통합 테스트, 디버깅에 효과적입니다.

상세 비교

측면블랙박스 테스트화이트 박스 테스트

지식 필요 내부 코드에 대한 지식이 불필요 내부 코드 및 디자인에 대한 지식 필요
포커스 기능적 동작 및 사용자 요구 사항 내부 코드 구조 및 논리
테스트 기준 요구사항, 사양, 사용자 스토리 코드, 디자인 문서, 알고리즘
기술 동등 분할, 경계값 분석,
의사결정 테이블, 상태 전이
명령문 적용 범위, 분기 적용 범위,
경로 적용 범위, 루프 테스트
범위 기능적 범위 코드 적용 범위
사용 사례 승인 테스트, 시스템 테스트, 회귀 테스트 단위 테스트, 통합 테스트, 디버깅
테스트 설계 기능적 요구사항에서 파생됨 코드 구조 및 논리에서 파생됨
결함 감지 기능 및 동작 관련 문제 감지 코드 논리 및 구현 문제 감지
도구 기능 테스트 도구(예: Selenium, QTP) 코드 분석 도구(예: JUnit, NUnit)

 

요약하자면, 블랙박스 테스트와 화이트박스 테스트는 모두 동적 테스트에서 중요한 역할을 합니다.

블랙박스 테스트는 소프트웨어의 외부 동작을 검증하고 사용자 요구 사항을 충족하는지 확인하는 데 필수적이며,

화이트박스 테스트는 내부 코드 및 로직의 정확성을 확인하는 데 필수적입니다.

이들은 함께 소프트웨어 테스트에 대한 포괄적인 접근 방식을 제공하여 소프트웨어의 품질과 신뢰성을 향상시킵니다.

반응형