소프트웨어 테스팅에서 동적 테스팅의 개념
동적 테스팅은 코드를 실행하고 실행 중 소프트웨어의 동작을 분석하여 소프트웨어를 테스트하는 프로세스를 말합니다. 실제 환경이나 시뮬레이션 환경에서 소프트웨어를 실행하여 소프트웨어의 기능적 및 비기능적 동작을 검증하고 결함을 식별하는 것을 목표로 합니다. 동적 테스트는 단위 테스트, 통합 테스트, 시스템 테스트 및 승인 테스트를 포함하여 소프트웨어 개발 수명주기의 다양한 수준에서 수행될 수 있습니다.
동적 테스트의 주요 측면
- 실행 기반:
- 소프트웨어를 실행하고 입력을 제공하여 시스템이 어떻게 반응하는지 관찰합니다.
- 소프트웨어의 런타임 동작 및 성능을 확인합니다.
- 검증:
- 소프트웨어가 의도한 대로 작동하는지 확인합니다.
- 소프트웨어가 지정된 요구 사항과 사용자 기대를 충족하는지 확인합니다.
- 결함 감지:
- 실행 중에 발생하는 결함 및 오류를 식별합니다.
- 성능, 보안 및 유용성과 관련된 문제를 파악하는 데 도움이 됩니다.
- 실시간 피드백:
- 소프트웨어의 기능과 성능에 대한 즉각적인 피드백을 제공합니다.
- 문제를 빠르게 식별하고 해결할 수 있습니다.
- 테스트 수준:
- 단위 테스트: 소프트웨어의 개별 구성 요소 또는 기능을 테스트합니다.
- 통합 테스트: 통합된 구성 요소 간의 상호 작용을 테스트합니다.
- 시스템 테스트: 전체 통합 소프트웨어 시스템을 테스트합니다.
- 인수 테스트: 사용자 요구 사항 및 비즈니스 요구 사항에 대해 소프트웨어를 검증합니다.
블랙박스 테스트와 화이트박스 테스트 비교
블랙 박스 테스트 및 화이트 박스 테스트는 동적 테스트에 대한 두 가지 기본 접근 방식으로, 각각 고유한 방법론, 목표 및 사용 사례가 있습니다.
블랙박스 테스트(명세기반 테스트)
정의:
동작 또는 기능 테스트라고도 알려진 블랙박스 테스트는 내부 코드 구조, 구현 세부 사항 또는 내부 경로에 대한 지식 없이 소프트웨어 기능을 테스트하는 데 중점을 둡니다.
주요 특징:
- 테스터 관점:
- 테스터는 소프트웨어의 내부 작동에 대한 지식이 필요하지 않습니다.
- 소프트웨어가 수행하는 방식보다는 수행하는 작업에 중점을 둡니다.
- 테스트 기준:
- 소프트웨어 요구 사항, 사양 및 사용자 사례를 기반으로 합니다.
- 테스트는 소프트웨어의 외부 설명에서 파생됩니다.
- 테스트 설계 기법:
- 동등 분할: 입력 데이터를 등가 분할로 나누어 테스트 사례 수를 줄입니다.
- 경계 값 분석: 입력 범위의 경계에 중점을 둡니다.
- 의사결정 테이블 테스트: 의사결정 테이블을 사용하여 다양한 입력 조합에 대한 시스템 동작을 캡처합니다.
- 상태 전환 테스트: 시스템의 다양한 상태와 전환을 테스트합니다.
- 보장 범위:
- 기능적 요구 사항의 적용 범위를 보장합니다.
- 내부 코드 경로 또는 구조의 적용 범위를 보장하지 못할 수 있습니다.
- 사용 사례:
- 기능, 사용자 인터페이스 및 전반적인 시스템 동작을 검증하는 데 적합합니다.
- 승인 테스트, 시스템 테스트, 회귀 테스트에 효과적입니다.
화이트 박스 테스트
정의:
구조적 또는 클리어 박스 테스트라고도 알려진 화이트 박스 테스트에는 소프트웨어의 내부 구조, 논리 및 구현을 테스트하는 작업이 포함됩니다. 테스터는 내부 코드와 디자인을 완벽하게 볼 수 있습니다.
주요 특징:
- 테스터 관점:
- 테스터는 내부 코드, 알고리즘, 로직에 접근할 수 있습니다.
- 소프트웨어가 내부적으로 어떻게 작동하는지에 중점을 둡니다.
- 테스트 기준:
- 내부 코드 구조, 설계 문서, 알고리즘을 기반으로 합니다.
- 테스트는 코드에 대한 지식을 바탕으로 설계되었습니다.
- 테스트 설계 기법:
- 문장 적용 범위: 코드의 모든 문이 한 번 이상 실행되도록 합니다.
- 분기 적용 범위: 코드의 모든 분기(결정)가 실행되도록 보장합니다.
- 경로 적용 범위: 코드를 통해 가능한 모든 경로가 실행되는지 확인합니다.
- 루프 테스트: 코드 내의 루프를 테스트하여 올바르게 작동하는지 확인합니다.
- 보장 범위:
- 내부 코드 경로 및 구조의 철저한 적용을 보장합니다.
- 높은 코드 적용 범위 지표를 달성하는 것을 목표로 합니다.
- 사용 사례:
- 코드 논리, 알고리즘 및 내부 기능을 검증하는 데 적합합니다.
- 단위 테스트, 통합 테스트, 디버깅에 효과적입니다.
상세 비교
측면블랙박스 테스트화이트 박스 테스트
지식 필요 | 내부 코드에 대한 지식이 불필요 | 내부 코드 및 디자인에 대한 지식 필요 |
포커스 | 기능적 동작 및 사용자 요구 사항 | 내부 코드 구조 및 논리 |
테스트 기준 | 요구사항, 사양, 사용자 스토리 | 코드, 디자인 문서, 알고리즘 |
기술 | 동등 분할, 경계값 분석, 의사결정 테이블, 상태 전이 |
명령문 적용 범위, 분기 적용 범위, 경로 적용 범위, 루프 테스트 |
범위 | 기능적 범위 | 코드 적용 범위 |
사용 사례 | 승인 테스트, 시스템 테스트, 회귀 테스트 | 단위 테스트, 통합 테스트, 디버깅 |
테스트 설계 | 기능적 요구사항에서 파생됨 | 코드 구조 및 논리에서 파생됨 |
결함 감지 | 기능 및 동작 관련 문제 감지 | 코드 논리 및 구현 문제 감지 |
도구 | 기능 테스트 도구(예: Selenium, QTP) | 코드 분석 도구(예: JUnit, NUnit) |
요약하자면, 블랙박스 테스트와 화이트박스 테스트는 모두 동적 테스트에서 중요한 역할을 합니다.
블랙박스 테스트는 소프트웨어의 외부 동작을 검증하고 사용자 요구 사항을 충족하는지 확인하는 데 필수적이며,
화이트박스 테스트는 내부 코드 및 로직의 정확성을 확인하는 데 필수적입니다.
이들은 함께 소프트웨어 테스트에 대한 포괄적인 접근 방식을 제공하여 소프트웨어의 품질과 신뢰성을 향상시킵니다.
'도전기 > PE' 카테고리의 다른 글
13주_SW_유지보수_3R (0) | 2024.06.02 |
---|---|
13주_SW_품질 요구, 모형, 관측, 평가, ISO 25000 (0) | 2024.06.02 |
13주_SW_안전성 분석 필요성과 ETA (0) | 2024.06.02 |
13주_SW_사업대가산정가이드 (0) | 2024.06.02 |
PE_SW_13주 상용소프트웨어 직접구매시 고려사항 (0) | 2024.06.02 |