| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- CLIP
- 생성형 인공지능
- Transformer
- 트랜스포머
- 자연어처리
- Python
- 힙정렬
- ASR
- dementional reduction
- 머신러닝
- TTS
- 알고리즘
- 랭그래프
- CNN
- RDBMS
- 데이터 시각화
- 정보처리기사
- 데이터엔지니어
- UMAP
- LangGraph
- 기초
- 객체지향
- SQL
- python 기초
- python기초
- 캐글
- 소프트웨어 개발
- 에이전트
- RNN
- 딥러닝
Archives
- Today
- Total
수달이네 기술 블로그
2. 소프트웨어 개발(어플리케이션 통합 테스트) 본문
어플리케이션 통합 테스트
결함 관리(Defect Management)
개발 과정 중 발견된 결함을 추적, 기록, 분석, 수정, 검증하는 프로세스
- 에러 발견 → 에러 등록 → 에러 분석 → 결함 확정 → 결함 할당 → 결함 조치 → 결함 조치 검토 승인
결함
문서 혹은 코딩의 결점으로 인해 소프트웨어가 개발자의 설계와 다르게 동작하거나 다른 결과가 발생함.
- 오류(Error): 결함의 원인, 사람에 의해 생성된 실수
- 결점(Fault): 오류가 있는 경우 발생하는 현상
- 버그(Bug): 오류로 예상치 못한 결과가 나타나는 현상
- 고장(Failure), 문제(Problem): 제품에 포함된 결함이 실행됨.
결함 심각도 별 분류
- 치명적(Critical): 기능, 제품의 테스트를 완전 방해하거나 못하게 함.
- 주요(Major): 기능이 기대와 많이 다르게 동작
- 보통(Normal): 제품이 특정 기준을 충족하지 못함
- 경미한(Minor): 사용상의 불편함을 유발함
- 단순(Simple): 기능에 영향 없으나 수정되어야함.
우선순위 별 분류
- 무조건 심각도가 높다고 빨리 처리되어야 하는 것은 아님.
- 결정적(Critical): 24시간 안에 즉시 수정(전체 기능, 테스트 수행 불가)
- 높음(High): 중요 결함이 수정되는 동안 테스트를 위해 수정되어야함. 다른 기능을 사용하지 못함.
- 보통(Medium): 실패 시 올바른 에러 메세지가 출력되지 않음.
- 낮음(Low): UI/UX개선을 위한 제안 등
테스트 자동화 도구
테스트 도구를 활용해 반복적 테스트 작업을 스크립트 형태로 구현함으로 테스트 시간, 비용 최소화
장점
- 테스트 데이터 재입력 작업 자동화
- 기능의 일관성 검증에 유리
- 객관적 평가 기준
- 결과를 다양하게 표현.
- UI가 없어도 정밀 테스트 가능
단점
- 도구 사용방법 교육, 학습 필요
- 도구 적용을 위한 시간, 비용, 노력 필요
- 고가이며, 유지관리 비용이 높음.
정적 분석 도구(Static Analysis Tools)
애플리케이션 실행 없이 분석하는 방법
- 코딩 표준, 코딩 스타일, 복잡도, 결함을 발견
- 테스트 수행자가 작성된 소스 코드의 이해를 바탕으로 도구로 분석
- 자료 흐름이나 논리 흐름을 분석해 비정상적 패턴을 찾음
테스트 실행 도구(Test Execution Tools)
- 테스트를 위해 작성된 스크립트를 실행하는 도구
- 스크립트: 특정 데이터, 테스트 수행방법이 들어있음.
- 데이터 주도 접근: 테스트 데이터를 스프레드시트에 저장 → 이 데이터를 읽고 실행
- 다양한 데이터로 동일한 케이스를 반복해서 실행하고, 스크립트 언어가 익숙하지 않아도 테스트 가능
- 키워드 주도 접근: 테스트 수행 동작을 나타내는 키워드와 테스트 데이터를 스프레드 시트에 저장
- 키워드로 테스트 수행동작 정의, 테스트 대상 앱의 특성에 맞춰 키워드에 테일러링 수행
- 테일러링: 프로젝트 특성, 필요에 따라 프로세스를 적합한 규모로 가공하는 과정, 방법론
성능 테스트 도구(Performance Test Tools)
애플리케이션의 처리량, 응답, 경과 시간 자원 사용률에 대한 가상 사용자로 테스트를 수행해 성능 목표를 확인
테스트 통제 도구(Test Control Tools)
테스트 계획, 관리를 위한 테스트 관리 도구
- 테스트 수행에 필요한 데이터와 도구를 관리하는 형상관리도구, 결함 추적 도구등
- 요구사항에 최적화된 형태의 정보를 생성.
테스트 장치
- 에플리케이션 컴포넌트 및 모듈을 테스트 하는 환경의 일부(테스트 지원 코드, 단위 or 모듈 테스트에 사용)
구성요소
- 테스트 드라이버: 상향식 통합 시험을 위해 모듈 테스트 수행 후의 결과를 도출하는 시험용 모듈
- 테스트 스텁: 하향식 통합 시험을 위해 일시적으로 필요한 조건만으로 임시로 제공되는 시험용 모듈
- 테스트 슈트: 테스트 케이스를 실행 환경에 따라 구분해둔 테스트 케이스의 집합
- 테스트 케이스: 입력값, 실행조건, 결과
- 테스트 시나리오: 테스트 되어야할 기능, 특징, 상황을 작성한 문서
- 사용자가 만나는 다양한 상황을 순서로 구성
- 테스트 스크립트(테스트 스텝): 테스트 케이스의 실행 순서를 작성한 문서
- 아이템을 순서대로 나열
- 목오브젝트: 사용자의 행위를 조건부로 사전에 입력 → 해당 상황에 예정된 행위를 수행
단계별 자동화 도구
테스트 단계에서 자동화를 지원하는 테스트 도구

테스트 케이스 자동 생성 도구로 테스트 데이터 도출 방법
- 자료 흐름도: 소스코드를 파싱해 자료 흐름도를 작성하고, 테스트에 필요한 입력값을 찾아냄
- 기능 테스트: 주어진 기능을 구동시키는 상태를 파악해 입력값을 생성
- 입력 도메인 분석: 입력 변수가 가질 수 있는 값의 도메인을 분석
- 랜덤 테스트: 입력값을 무작위로 추출
통합 테스트(Integration Test)
모듈 간의 인터페이스 관련 오류, 결함을 찾아내기 위한 테스트
하향식
메인 제어 모듈부터 아래방향으로 통합하는 테스트

- 메인 제어 모듈은 작성된 프로그램을 사용하고 아직 미작성된 하위 모듈을 관리
- 하향식이므로 검사 초기에 시스템의 구조가 파악되어야함
- 모듈 및 모든 하위 컴포넌트를 대신하여 더미 모듈인 스텁 개발
- 깊이우선, 너비우선 방식에 따라 하위 모듈인 스텁이 실제 모듈로 대체
- 각 모듈 또는 컴포넌트를 통합하며 테스트 수행
- 테스트가 완료되면 스텁이 실제 모듈또는 컴포넌트로 작성
상향식
최하위 모듈, 컴포넌트로부터 점진적으로 상위 모듈과 테스트

- 하위 레벨의 모듈 또는 컴포넌트들이 하위 모듈의 기능을 수행하는 클러스터로 결합
- 상위 모듈에서 데이터 입출력을 확인하기 위한 더미 모듈 드라이버 작성
- 각 통합된 클러스터 단위 테스트
- 테스트가 완료되면 각 클러스터들은 위쪽으로 결합되며 드라이버는 실제 모듈 또는 컴포넌트로 대체
나머지
빅뱅: 모든 모듈을 동시에 통합 후 테스트
샌드위치: 상향 + 하향식 , 큰 규모의 통합 테스트에서 사용함
'공부 > 정보처리기사' 카테고리의 다른 글
| 2. 소프트웨어 개발(어플리케이션 테스트 관리) (0) | 2026.05.14 |
|---|---|
| 2. 소프트웨어 개발(제품 소프트웨어 버전관리) (0) | 2026.05.12 |
| 2. 소프트웨어 개발(패키징, 표준) (0) | 2026.05.12 |
| 2. 소프트웨어 개발(통합 구현, 관리) (0) | 2026.05.10 |
| 2. 소프트웨어 개발(자료구조) (0) | 2026.05.05 |