V 모델
- 애플리케이션 테스트와 소프트웨어 개발 단계를 연결하여 표현
- 소프트웨어 개발 단계에 따라 단위테스트, 통합테스트, 시스템테스트, 인수테스트
- 각각의 개발 단계에 완성도를 개발자 관점에서 검증하고 사용자 관점에서 확인
- 기존 폭포수 모델에서 확장된 형태를 보이며 어느 단계에서 발생한 오류인지 추적이 가능하고 신뢰성이 높다
단위 테스트 (Unit Test)
개념
- 코딩이 완료된 직후 소프트웨어 설계의 최소 단위인 모듈 (함수, 프로시저)이나 컴포넌트에 초점을 맞춰 테스트
- 모듈의 기능 수행 여부를 판정하고 내부에 존재하는 논리적인 오류를 검출
- 사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행
수행 방법
1. 명세 기반 테스트
- 목적 및 실행 코드 기반의 블랙박스 테스트를 진행
- 최소 기능 단위로 테스트하기 때문에 일반적으로 명세 기반 테스트는 진행하지 않는 편이다
2. 구조 기반 테스트
- 프로그램 내부 구조 및 복잡도를 검증하는 화이트박스 테스트를 진행한다
- 단위 테스트 수행 단계에서 일반적으로 구조 기반 테스트를 진행한다
통합 테스트 (Integration Test)
개념
- 소프트웨어 각 모듈간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 테스트 단계
- 단위 테스트가 끝난 단위 프로그램이 설계 단계에서 제시한 구조 및 기능과 동일하게 구현되었는지에 대한 차이를 확인하는 단계
순서
- 테스트 케이스 설계
- 통합 테스트 데이터 준비
- 통합 테스트 수행 및 결과 확인
- 결함 등록
- 테스트 결과 보고 및 종료
커버리지
1. 점증적 / 비점증적 방식
- 점증적 방식 : 개발된 단위 모듈 일부를 테스트하고 점차적으로 늘려가며 테스트 진행
- 비 점증적 방식 : 모든 모듈을 통합하여 전체 프로그램을 한번에 테스트
2. 하향식 (Top Down) 통합 테스트
프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법
3. 상향식 (Bottom Up) 통합 테스트
프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법
시스템 테스트 (System Test)
개념
- 개발된 소프트웨어가 해당 컴퓨터 시스템에 완벽하게 수행되는가를 점검하는 테스트
- 실제 사용 환경과 유사하게 만든 환경에서 테스트를 진행하여 환경적인 장애리스크를 최소화 한다
- 기능적 요구사항과 비기능적 요구 사항으로 구분하여 테스트를 진행한다
기능적 요구사항
- 시스템이 요구하는 기능과 서비스에 대한 요구사항이다
- 명세서 (요구사항 명세서, 유스케이스) 기반의 블랙박스 테스트를 진행
비기능적 요구사항
- 비기능적 요구사항은 성능과 가용성처럼 기능적 요구사항에 다루지 못한 품질적인 요소를 다룬다
- 성능, 회복, 보안 등의 목적 기반 테스트를 진행
인수 테스트 (Acceptance Test)
개념
- 개발이 완료된 소프트웨어에 대해 사용자 요구 사항 충족 여부를 사용자가 직접 테스트하는 것
- 인수테스트 단계에서 소프트웨어에 문제가 없으면 사용자는 소프트웨어를 인수하게 되고, 프로젝트는 종료
종류
1. 알파 (Alpha) 테스트
- 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법
- 테스트는 통제된 환경에서 행해지며, 오류와 사용상의 문제점을 사용자와 개발자가 함께 확인하면서 기록
2. 베타 (Beta) 테스트
- 다수의 사용자에게 제한되지 않은 환경에서 프로그램을 사용하게 하고 오류가 발견되면 개발자에게 통보하는 방식의 테스트 방법
'CS > OS & 하드웨어' 카테고리의 다른 글
컴퓨터 시스템 (3) | 2024.09.03 |
---|---|
멀티 프로세싱 vs 멀티 프로그래밍 vs 멀티 태스킹 vs 멀티 스레딩 (0) | 2024.07.28 |
테스트 기법 (화이트박스 / 블랙박스) (0) | 2024.07.17 |
단위 테스트 (컴포넌트 테스트) / 드라이버 (Driver), 스텁 (Stub), 오라클 (Oracle) (0) | 2024.07.15 |
정규화 수행과정 #도부이결다조 (0) | 2024.06.20 |