1. 통합 테스트(Integration Test)와 관련한 설명으로 틀린 것은?
① 시스템을 구성하는 모듈의 인터페이스와 결합을 테스트하는 것이다.
② 하향식 통합 테스트의 경우 넓이 우선(Breadth First) 방식으로 테스트를 할 모듈을 선택할 수 있다.
③ 상향식 통합 테스트의 경우 시스템 구조도의 최상위에 있는 모듈을 먼저 구현하고 테스트한다.
④ 모듈 간의 인터페이스와 시스템의 동작이 정상적으로 잘되고 있는지를 빨리 파악하고자 할 때 상향식 보다는 하향식 통합 테스트를 사용하는 것이 좋다.
정답 : ③
- 시스템을 구성하는 모듈의 인터페이스와 결합을 테스트하는 것이다.
- 올바른 설명입니다. 통합 테스트는 단위 테스트가 완료된 모듈들을 결합하여 모듈 간의 인터페이스와 상호작용을 테스트합니다.
- 하향식 통합 테스트의 경우 넓이 우선(Breadth First) 방식으로 테스트를 할 모듈을 선택할 수 있다.
- 올바른 설명입니다. 하향식 통합 테스트에서는 넓이 우선 방식으로 상위 수준 모듈부터 하위 수준 모듈로 진행하며, stub을 사용하여 하위 모듈을 대체할 수 있습니다.
- 상향식 통합 테스트의 경우 시스템 구조도의 최상위에 있는 모듈을 먼저 구현하고 테스트한다.
- 틀린 설명입니다. 상향식 통합 테스트는 최하위 모듈부터 테스트를 시작하여 점차 상위 모듈로 올라가는 방식입니다. 시스템 구조도의 최하위 모듈을 먼저 테스트합니다.
- 모듈 간의 인터페이스와 시스템의 동작이 정상적으로 잘되고 있는지를 빨리 파악하고자 할 때 상향식 보다는 하향식 통합 테스트를 사용하는 것이 좋다.
- 올바른 설명입니다. 하향식 통합 테스트는 시스템의 전체적인 흐름과 상위 수준의 기능을 먼저 테스트하므로, 시스템 동작의 전반적인 문제를 빨리 파악할 수 있습니다.
따라서, 정답은 ③ 상향식 통합 테스트의 경우 시스템 구조도의 최상위에 있는 모듈을 먼저 구현하고 테스트한다입니다. 상향식 통합 테스트는 최하위 모듈부터 시작하여 최상위 모듈로 진행하는 방식이기 때문에 설명이 틀렸습니다.
1. 개발 단계에 따른 애플리케이션 테스트
소프트웨어 개발 과정에서는 다양한 단계마다 각기 다른 테스트가 필요합니다. 이러한 테스트는 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트로 분류되며, 이를 테스트 레벨이라고 합니다. 애플리케이션 테스트와 소프트웨어 개발 단계를 연결하여 표현한 모델을 V-모델이라고 합니다.
2. 단위 테스트 (Unit Test)
단위 테스트는 소프트웨어 개발에서 가장 작은 단위인 모듈이나 컴포넌트에 대해 테스트하는 것입니다.
- 목적: 코딩 직후, 인터페이스, 외부 입출력, 자료 구조, 독립적인 기초 경로, 오류 처리 경로, 경계 조건 등을 검사합니다.
- 우선순위: 사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행합니다.
- 방법:
- 구조 기반 테스트: 프로그램 내부 구조 및 복잡도를 검증하는 화이트박스 테스트를 시행합니다. 제어 흐름과 조건 결정을 확인합니다.
- 명세 기반 테스트: 목적 및 실행 코드 기반의 블랙박스 테스트를 시행합니다. 동등 분할, 경계 값 분석 등을 목표로 합니다.
단위 테스트로 발견 가능한 오류:
- 알고리즘 오류에 따른 원치 않는 결과
- 무한 루프에 빠지는 반복문
- 잘못된 계산 수식으로 인한 오류
3. 통합 테스트 (Integration Test)
통합 테스트는 단위 테스트가 완료된 모듈들을 결합하여 하나의 시스템으로 완성시키는 과정에서의 테스트입니다.
- 목적: 모듈 간 또는 통합된 컴포넌트 간의 상호작용 오류를 검사합니다.
4. 시스템 테스트 (System Test)
시스템 테스트는 개발된 소프트웨어가 해당 컴퓨터 시스템에서 완벽하게 수행되는지를 점검하는 테스트입니다.
- 목적: 환경적인 장애 리스크를 최소화하기 위해 실제 사용 환경과 유사한 테스트 환경에서 테스트를 수행합니다.
- 요구사항:
- 기능적 요구사항: 요구사항 명세서, 비즈니스 절차, 유스케이스 등 명세서 기반의 블랙박스 테스트를 시행합니다.
- 비기능적 요구사항: 성능 테스트, 회복 테스트, 보안 테스트, 내부 시스템의 메뉴 구조, 웹 페이지의 네비게이션 등 구조적 요소에 대한 화이트박스 테스트를 시행합니다.
5. 인수 테스트 (Acceptance Test)
인수 테스트는 개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 중점을 두고 테스트하는 방법입니다.
- 목적: 사용자가 직접 소프트웨어를 테스트하고, 문제가 없으면 소프트웨어를 인수하여 프로젝트를 종료합니다.
- 종류:
- 사용자 인수 테스트: 사용자가 시스템 사용의 적절성을 확인합니다.
- 운영상의 인수 테스트: 시스템 관리자가 백업/복원 시스템, 재난 복구, 사용자 관리, 정기 점검 등을 확인합니다.
- 계약 인수 테스트: 인수/검수 조건을 준수하는지 여부를 확인합니다.
- 규정 인수 테스트: 정부 지침, 법규, 규정에 맞게 개발되었는지 확인합니다.
- 알파 테스트: 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트입니다. 통제된 환경에서 오류와 문제점을 사용자와 개발자가 함께 확인하고 기록합니다.
- 베타 테스트: 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트입니다. 개발자에 의해 제어되지 않은 상태에서 테스트가 진행되며, 발견된 오류와 문제점을 기록하여 개발자에게 주기적으로 보고합니다.
핵심 정리
- 단위 테스트 -> 통합 테스트 -> 시스템 테스트 -> 인수 테스트의 순서로 진행됩니다.
- 알파 테스트: 선택된 사용자가 개발자 앞에서 검사하며 통제된 환경에서 이루어집니다.
- 베타 테스트: 선정된 최종 사용자가 여러 명의 사용자 앞에서 검사하며 개발자에 의해 제어되지 않은 상태에서 수행됩니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'코딩일기 > 자격증' 카테고리의 다른 글
[정보처리기사] 형상관리 (SCM, Software Configuration Management) | 정보처리기사 기출문제 (1) | 2024.07.08 |
---|---|
정보처리기사 소프트웨어 개발 : 요구사항 검증방법(동료 검토, 워크 스루, 인스펙션) (0) | 2024.07.05 |
[정보처리기사] 사용자 인터페이스(UI)와 사용자 경험(UX) | CLI와 GUI 그리고 NUI의 차이 | 정보처리기사 기출문제 (1) | 2024.07.01 |
[정보처리기사] 소프트웨어 설계 | 애자일(Agile) 방법론 | 정보처리기사 필기&실기 기출문제 (0) | 2024.06.28 |
정보처리기사 소프트웨어 설계 : 객체지향(Object Oriented)의 특징 (0) | 2024.06.28 |