통합 시험
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
통합 시험은 주요 설계 항목들이 기능, 성능, 안정성 요구사항을 제대로 구현하는지 검증하는 것을 목적으로 한다. 빅뱅, 혼합형(샌드위치), 위험-가장 어려운 것, 하향식 및 상향식 방식 등 다양한 접근 방식이 존재하며, 협업 통합, 백본 통합, 계층 통합 등의 통합 패턴도 활용된다. 샌드위치 시험은 하향식과 상향식 시험을 결합한 방식이다.
더 읽어볼만한 페이지
- 하드웨어 테스트 - JTAG
JTAG는 집적 회로의 테스트와 디버깅을 위해 개발된 IEEE 1149.1 표준 인터페이스로, 칩 내부 조사, 제어, 임베디드 시스템 디버깅, 펌웨어 프로그래밍 등에 활용된다. - 하드웨어 테스트 - 환경 스트레스 스크리닝
환경 스트레스 스크리닝(ESS)은 제품의 작동 수명 동안 겪을 물리적 환경 조건을 인위적으로 조성하여 제품 신뢰성을 사전에 검증하고 초기 불량률을 감소시켜 품질을 향상시키는 시험 과정이다. - 소프트웨어 테스트 - 보안 취약점
보안 취약점은 시스템의 설계, 구현, 운영, 관리상 결함이나 약점으로, 위협에 의해 악용되어 시스템 보안 정책을 위반할 수 있는 요소이며, ISO 27005, IETF RFC 4949, NIST SP 800-30, ENISA 등 다양한 기관에서 정의하고 있다. - 소프트웨어 테스트 - A/B 테스트
A/B 테스트는 두 가지 이상의 대안을 비교하여 더 나은 성과를 판단하는 방법으로, 웹사이트, 애플리케이션 등 다양한 분야에서 사용자 인터페이스 등을 테스트하며 통계적 가설 검정을 기반으로 한다.
| 통합 시험 | |
|---|---|
| 개요 | |
| 정의 | 소프트웨어 테스트의 한 종류로, 개별적으로 테스트된 소프트웨어 모듈들을 결합하여 전체 시스템으로 통합하는 과정에서 발생하는 결함 및 상호 작용을 검증하는 테스트 기법이다. |
| 목표 | 모듈 간의 인터페이스, 데이터 흐름, 제어 흐름 등 통합 과정에서 발생하는 문제점을 발견하고 해결하여 전체 시스템의 안정성과 신뢰성을 확보하는 것이다. |
| 주요 검증 사항 | 모듈 간의 인터페이스 호환성 데이터 전달의 정확성 제어 흐름의 적절성 예상치 못한 상호 작용 |
| 통합 방법 | |
| 빅뱅 통합 | 모든 모듈을 한 번에 통합하여 테스트하는 방식이다. 초기 단계에서 많은 결함을 발견할 수 있지만, 결함의 원인을 찾기 어렵고 수정에 많은 비용이 소모될 수 있다. |
| 상향식 통합 | 하위 모듈부터 점진적으로 통합하여 테스트하는 방식이다. 하위 모듈의 안정성을 확보한 후 상위 모듈을 통합하므로, 결함의 원인을 찾기 쉽고 수정이 용이하다. |
| 하향식 통합 | 상위 모듈부터 점진적으로 통합하여 테스트하는 방식이다. 상위 모듈의 요구사항을 충족하는지 검증하는 데 유용하며, 초기 단계에서 시스템의 전체적인 구조를 파악할 수 있다. |
| 샌드위치 통합 | 상향식 통합과 하향식 통합을 병행하는 방식이다. 시스템의 핵심 모듈을 먼저 통합하여 테스트하고, 나머지 모듈들을 점진적으로 통합한다. |
| 테스트 단계 | |
| 단위 테스트 | 각 모듈을 개별적으로 테스트하여 기능의 정확성을 검증한다. |
| 통합 테스트 | 단위 테스트를 완료한 모듈들을 결합하여 인터페이스와 상호 작용을 테스트한다. |
| 시스템 테스트 | 전체 시스템을 테스트하여 요구사항을 충족하는지 검증한다. |
| 인수 테스트 | 최종 사용자가 시스템을 테스트하여 사용성을 평가한다. |
| 관련 용어 | |
| 스텁 (Stub) | 하위 모듈의 기능을 임시로 대체하는 가짜 모듈이다. 하향식 통합 테스트에서 사용된다. |
| 드라이버 (Driver) | 상위 모듈의 기능을 임시로 대체하는 가짜 모듈이다. 상향식 통합 테스트에서 사용된다. |
| 테스트 케이스 | 테스트의 목적, 입력 값, 실행 조건, 예상 결과 등을 정의한 문서이다. |
| 테스트 스위트 | 관련된 테스트 케이스들의 모음이다. |
| 회귀 테스트 | 기존 기능의 변경으로 인해 새로운 결함이 발생하지 않았는지 확인하는 테스트이다. |
| 자동화 | |
| 자동화 도구 | JUnit Selenium TestComplete |
| 참고 자료 | |
2. 목적
통합 시험의 목적은 주요 설계 항목들이 기능, 성능, 안정성 요구사항을 잘 구현하고 있는지를 검증하는 것이다. "설계 항목들" 즉 통합된 모듈 그룹들은 노출되어 있는 인터페이스에 정상적인 입력 데이터나 비정상적인 오류 입력 데이터를 넣어보는 블랙박스 검사 기법으로 테스트된다.
통합 시험의 몇 가지 유형으로는 빅뱅, 혼합형(샌드위치), 위험-가장 어려운 것, 하향식 및 상향식 방식이 있다.[3] 다른 통합 패턴[3]으로는 협업 통합, 백본 통합, 계층 통합, 클라이언트-서버 통합, 분산 서비스 통합 및 고주파수 통합이 있다.
3. 접근 방식
빅뱅 시험에서는 개발된 대부분의 모듈을 결합하여 완전한 소프트웨어 시스템 또는 시스템의 주요 부분을 형성한 다음 통합 시험에 사용한다.[3][6] 이 방법은 통합 시험 프로세스에서 시간을 절약하는 데 매우 효과적이다.[3][6] 그러나 테스트 케이스와 그 결과가 제대로 기록되지 않으면 전체 통합 프로세스가 더 복잡해지고 시험 팀이 통합 시험의 목표를 달성하는 데 방해가 될 수 있다.[3][6]
상향식 시험에서는 가장 낮은 수준의 구성 요소를 먼저 테스트한 다음 더 높은 수준의 구성 요소 테스트를 용이하게 하는 데 사용한다. 이 프로세스는 계층 구조의 맨 위에 있는 구성 요소가 테스트될 때까지 반복된다.[3] 모든 하위 또는 하위 수준 모듈, 프로시저 또는 기능이 통합된 다음 테스트된다. 하위 수준 통합 모듈의 통합 시험 후 다음 수준의 모듈이 형성되어 통합 시험에 사용할 수 있다. 이 접근 방식은 동일한 개발 수준의 모든 또는 대부분의 모듈이 준비된 경우에만 유용하다. 이 방법은 또한 개발된 소프트웨어의 수준을 결정하는 데 도움이 되며 백분율 형태로 시험 진행 상황을 보고하기 쉽게 해준다.[3]
하향식 시험에서는 가장 상위 통합 모듈을 먼저 시험하고 관련 모듈이 끝날 때까지 모듈의 분기를 단계별로 시험한다.[3]
샌드위치 시험은 하향식 시험과 상향식 시험을 결합한다.[3] 이러한 종류의 시험의 한계는, 설계 항목의 실행 확인 외에, 지정된 통합 시험에 명시되지 않은 조건은 일반적으로 시험되지 않는다는 것이다.[3]
3. 1. 빅뱅 (Big Bang) 방식
빅뱅 시험에서는 개발된 대부분의 모듈을 결합하여 완전한 소프트웨어 시스템 또는 시스템의 주요 부분을 형성한 다음 통합 시험에 사용한다.[3][6] 이 방법은 통합 시험 프로세스에서 시간을 절약하는 데 매우 효과적이다.[3][6] 그러나 테스트 케이스와 그 결과가 제대로 기록되지 않으면 전체 통합 프로세스가 더 복잡해지고 시험 팀이 통합 시험의 목표를 달성하는 데 방해가 될 수 있다.[3][6]
3. 2. 상향식 (Bottom-up) 방식
상향식 시험에서는 가장 낮은 수준의 구성 요소를 먼저 테스트한 다음 더 높은 수준의 구성 요소 테스트를 용이하게 하는 데 사용한다. 이 프로세스는 계층 구조의 맨 위에 있는 구성 요소가 테스트될 때까지 반복된다.[3][6] 모든 하위 또는 하위 수준 모듈, 프로시저 또는 기능이 통합된 다음 테스트된다. 하위 수준 통합 모듈의 통합 시험 후 다음 수준의 모듈이 형성되어 통합 시험에 사용할 수 있다. 이 접근 방식은 동일한 개발 수준의 모든 또는 대부분의 모듈이 준비된 경우에만 유용하다. 이 방법은 또한 개발된 소프트웨어의 수준을 결정하는 데 도움이 되며 백분율 형태로 시험 진행 상황을 보고하기 쉽게 해준다.[3][6]
3. 3. 하향식 (Top-down) 방식
하향식 시험에서는 가장 상위 통합 모듈을 먼저 시험하고 관련 모듈이 끝날 때까지 모듈의 분기를 단계별로 시험한다.[3][6] 최상위 모듈부터 시작하여 하위 모듈로 점차적으로 통합해 가면서 시험하는 방식이다.
3. 4. 샌드위치 (Sandwich) 방식
샌드위치 시험은 하향식 시험과 상향식 시험을 결합한 방식이다.[3][6] 이러한 종류의 시험의 한계는, 설계 항목의 실행 확인 외에, 지정된 통합 시험에 명시되지 않은 조건은 일반적으로 시험되지 않는다는 것이다.[3][6]
3. 5. 기타 통합 패턴
통합 시험에는 협업 통합, 백본 통합, 계층 통합, 클라이언트-서버 통합, 분산 서비스 통합, 고주파수 통합 등 다양한 패턴이 존재한다.[3][6]
4. 한계
참조
[1]
서적
ISO/IEC/IEEE International Standard - Systems and software engineering
ISO/IEC/IEEE 24765:2010(E)
[2]
서적
Testing in Software Development
https://books.google[...]
BCS
2014-10-31
[3]
서적
Testing Object-Oriented Systems: Models, Patterns, and Tools
Addison Wesley
[4]
서적
ISO/IEC/IEEE International Standard - Systems and software engineering
ISO/IEC/IEEE 24765:2010(E)
[5]
서적
Testing in Software Development
https://books.google[...]
BCS
2014-10-31
[6]
서적
Testing Object-Oriented Systems: Models, Patterns, and Tools
Addison Wesley
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com