1. 화이트 박스 테스트 (White Box Test)
- 화이트 박스 테스트는 모듈의 원시 코드를 오픈시킨 상태에서 코드의 논리적 모든 경로를 테스트 하는 방법이다.
- Source Code의 모든 문장을 한 번 이상 수행하여 모듈 안의 작동을 직접 관찰할 수 있다.
- 산출물의 기능별로 적절한 프로그램의 제어 구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검한다.
- 테스트 데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾는 동적 테스트 (Dynamic Test)에 해당한다.
테스트 종류
- 기초 경로 검사 (Basic Path Testing) : 기초 경로는 수행 가능한 모든 경로를 의미하며, Mocabe의 순환 복잡도를 사용하여 선형 독립 경로 수를 결정한 다음 얻어진 각 경로에 대한 테스트 사례를 생성한다.
- 제어 구조 검사
- 조건 검사 : 프로그램 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법
- 루프 검사 : 프로그램의 반복 구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
- 데이터 흐름 검사 : 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
찾을 수 있는 오류
- 세부적 오류
- 논리 구조상의 오류
- 반복문 오류
- 수행 경로 오류
- 알고리즘 오류에 따른 원치 않는 결과
- 탈출구가 없는 반복문의 사용
- 틀린 계산 수식에 의한 잘못된 결과
테스트 검증 기준
- 문장 검증 기준
- 분기 검증 기준
- 조건 검증 기준
- 분기 / 조건 기준
2. 블랙박스 테스트 (Black Box Test)
소프트웨어가 수행할 특정 기능을 알기 위해 각 기능이 완전히 작동되는 것을 입증하는 테스트로 기능 테스트라고도 한다. 즉, 입력값과 출력값만을 확인하는 테스트이다.
테스트 종류
- 동치분할검사 (Equvialence Partitioning) : 입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사하는 방법
- 원인-효과 그래프 검사 (Cause and Effect Graphing) : 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석
- 오류 예측 검사 (Error Forecast) : 과거의 경험이나 감각으로 테스트하는 기법이며, 보충적 검사기법이다.
- 비교검사 (Comparison Testing) : 동일한 테스트 자료를 여러 버전의 프로그램에 입력하여 동일한 결과가 출력되는지 테스트하는 기법
- 경계값 분석 (Boundary Value Analysis) : 입력 조건 경계값에서 오류 발생확률이 크다는 것을 활용하여 경계값을 테스트 케이스로 선정하여 검사
테스트를 통해 찾을 수 있는 오류
- 인터페이스 오류
- 자료 구조상의 오류
- 성능 오류
- 시작과 종결상의 오류
- 부정확하거나 빠진 오류
- 비정상적인 자료를 입력해도 오류 처리를 수행하지 않는 경우
- 정상적인 자료를 입력해도 요구된 기능이 제대로 수행되지 않는 경우
- 경계값을 입력할 경우 요구된 출력 결과가 나오지 않는 경우
차이점
- 테스팅의 초점:
- 블랙박스 테스팅: 블랙박스 테스팅은 소프트웨어의 기능적인 부분을 테스트하는데 초점을 맞춘다. 이 테스팅은 사용자의 시각에서 시스템의 동작을 검증한다
- 화이트박스 테스팅: 화이트박스 테스팅은 소프트웨어의 내부 구조, 로직 및 코드를 검사하는데 초점을 맞춘다
- 코드 액세스:
- 블랙박스 테스팅: 테스터는 코드의 내부 작동을 모르고, 오직 입력과 출력만을 기반으로 테스팅을 수행
- 화이트박스 테스팅: 테스터는 코드의 내부 구조를 알고 있으며, 코드의 로직을 이해하고 테스팅을 수행
- 테스팅 수준:
- 블랙박스 테스팅: 주로 시스템 테스팅과 수락 테스팅에 사용
- 화이트박스 테스팅: 주로 단위 테스팅과 통합 테스팅에 사용
- 테스팅 디자인:
- 블랙박스 테스팅: 테스팅 케이스는 요구 사항과 명세를 기반으로 설계
- 화이트박스 테스팅: 테스팅 케이스는 소프트웨어의 코드를 기반으로 설계
- 테스팅 시간과 자원:
- 블랙박스 테스팅: 일반적으로 화이트박스 테스팅보다 덜 시간이 소요되며, 더 적은 기술적 지식이 필요
- 화이트박스 테스팅: 높은 기술적 지식이 필요하며, 상대적으로 더 많은 시간과 자원이 소요
- 결함 식별:
- 블랙박스 테스팅: 사용자의 시나리오 중심의 결함을 식별할 수 있다.
- 화이트박스 테스팅: 코드의 구조적 결함을 식별할 수 있다.
'CS > OS & 하드웨어' 카테고리의 다른 글
멀티 프로세싱 vs 멀티 프로그래밍 vs 멀티 태스킹 vs 멀티 스레딩 (0) | 2024.07.28 |
---|---|
애플리케이션 테스트 종류 (0) | 2024.07.25 |
단위 테스트 (컴포넌트 테스트) / 드라이버 (Driver), 스텁 (Stub), 오라클 (Oracle) (0) | 2024.07.15 |
정규화 수행과정 #도부이결다조 (0) | 2024.06.20 |
부동 소수점 오차 (개념) (0) | 2024.05.07 |