정보처리기사 실기 — 10 애플리케이션 테스트 관리 정리
실기·서술형에서 결함(Error–Defect–Failure), 커버리지, 코드 품질·리팩토링, 성능 테스트·분석, 결함 관리(우선순위·심각도·분류·분석)가 자주 묶여 출제됩니다. 아래는 Notion 요약과 시험용 키워드를 맞춘 압축 정리입니다.
1. 소프트웨어 결함(Error · Defect · Failure)
| 용어 | 설명 |
|---|---|
| Error(오류) | 사람에 의해 만들어진 실수. Defect(결함)의 원인 |
| Defect / Bug(결함) | Error로 인해 코드·산출물에 포함된 결함. 제거하지 않으면 Failure로 이어질 수 있음 |
| Failure / Problem(고장·문제) | Defect가 실행될 때 나타나는 현상(증상) |
한 줄: 사람의 실수(Error) → 결함(Defect) → 실행 시 고장(Failure).
2. 테스트 커버리지
정의: 테스트가 얼마나 수행·도달되었는지를 나타내는 지표.
| 유형 | 모수(측정 기준) |
|---|---|
| 기능 기반 커버리지 | 전체 기능 대비 테스트된 기능 비율 |
| 라인 커버리지 | 소스 라인 수 대비 실행된 라인 비율 |
| 코드 커버리지 | 구문(코드)이 테스트에 의해 실행·도달된 정도 |
시험·실무에서 “커버리지”라고 하면 대부분 코드 커버리지를 가리키는 경우가 많음.
암기: 기능 · 라인 · 코드 (기·라·코).
3. 리팩토링(Refactoring)
- 정의: 외부 동작(기능)은 바꾸지 않고 내부 구조·코드를 개선하는 작업.
- 목적: 유지보수성 향상, 품질·생산성 향상, 변경에 유연한 구조.
4. 클린 코드(Clean Code)와 작성 원칙
- 클린 코드: 읽기 쉽고(가독성), 단순하며, 유지보수에 유리한 코드.
작성 원칙(5) — 암기: 가단의 중추
- 가독성
- 단순성
- 의존성 최소화
- 중복 제거
- 추상화
5. 코드 품질 분석 도구
| 구분 | 설명 | 예시 |
|---|---|---|
| 정적 분석 | 실행 없이 소스·구조 분석 | PMD, Cppcheck, SonarQube, Checkstyle, Cobertura(커버리지 등) |
| 동적 분석 | 실행하며 메모리·동작 분석 | Avalanche, Valgrind |
6. 나쁜 코드 관련 용어
| 용어 | 요지 |
|---|---|
| 스파게티 코드 | 동작은 하나 구조가 복잡해 이해·추적이 어려운 코드 |
| 베드 코드(Bad Code) | 다른 개발자가 로직을 이해하기 어려운 코드 |
| 외계인 코드 | 오래되었거나 참고할 개발자·문서가 없어 유지보수가 매우 어려운 코드 |
베드 코드 유형(5) — 암기: 오문이 결침
- 오염: 비즈니스 기능을 제대로 못 하는 컴포넌트가 많음
- 문서 부족: 코드와 문서 불일치
- 의미 없는 이름
- 결합도가 높음
- 침식된 아키텍처: 설계가 변형되어 품질 저하
7. 성능 테스트 수행 방법(4단계) — 암기: 도환시성
- 도구 설치
- 환경 설정
- 시나리오 작성
- 성능 테스트 실행 및 모니터링
8. 성능 저하 원인 — DB 관련(5) — 암기: 락페 릭사커
- 락(DB Lock): Lock 해제 전까지 대기·타임아웃
- 페치 과다: 불필요한 대량 Fetch, 커서 이동 등으로 응답 지연
- 릭(Connection Leak): JDBC 등 연결 미종료로 자원 고갈
- 사이즈: Connection Pool 크기 부적절(너무 작거나 큼)
- 커밋: 트랜잭션 미커밋/지연 반환, 불필요한 커밋 빈번
9. 성능 분석 지표(4) — 암기: 처응경사
| 지표 | 설명 |
|---|---|
| 처리량(Throughput) | 단위 시간에 처리 가능한 트랜잭션·페이지 수 |
| 응답시간(Response Time) | 사용자 입력 ~ 응답 출력 시작까지 |
| 경과시간(Elapsed Time) | 입력 ~ 처리 ~ 결과 출력 완료까지 |
| 사용률(Resource Utilization) | 처리 중 CPU·메모리 등 자원 사용 정도 |
10. 결함 우선순위(Priority)(4) — 암기: 크·하·미·로
| 우선순위 | 의미 |
|---|---|
| Critical | 이 결함 때문에 전체 기능이 동작하지 않음 |
| High | 이 결함 때문에 다른 기능이 동작하지 않음 |
| Medium | 중간 수준 |
| Low | 낮음 |
11. 결함 심각도(Severity)(5) — 암기: 크메노마심 / 뜻: 치주보경단
| 심각도 | 뜻(한 줄) |
|---|---|
| Critical(치명적) | 테스트 진행이 어려울 정도 |
| Major(주요) | 기능이 기대와 다르게 동작 |
| Normal(보통) | 사소한 기능 오작동 |
| Minor(경미) | UI 오류 등 |
| Simple(단순) | 미관상 문제 |
우선순위는 “언제 고칠지·업무 중요도”, 심각도는 “결함 자체의 파급·깊이”에 가깝게 구분해 서술하면 안전합니다.
12. 결함 분류(4) — 암기: 시기지문
- 시스템 결함: 비정상 종료, DB 오류 등
- 기능 결함: 요구사항 불일치, 스크립트 오류 등
- 지(GUI) 결함: 잘못된 메시지·화면 등
- 문서 결함: 매뉴얼·명세와 실제 불일치
13. 결함 분석(에이징 · 추세)
| 분석 | 내용 |
|---|---|
| 결함 에이징(Aging) 분석 | 특정 결함이 얼마나 오래 열려 있는지(지속 시간) 측정 |
| 결함 추세(Trend) 분석 | 테스트 기간에 따른 결함 수·추이를 측정·관찰 |
14. 실기·서술용 한 줄 모음
- Error는 사람의 실수이고, Defect는 그로 인한 결함이며, Failure는 실행 시 나타나는 고장 현상이다.
- 테스트 커버리지는 기능·라인·코드 커버리지로 나누며, 통상 코드 커버리지를 말한다.
- 리팩토링은 기능 변경 없이 내부를 개선해 유지보수성을 높인다.
- 클린 코드 원칙은 가독성·단순성·의존성 최소화·중복 제거·추상화이다.
- 정적 분석은 SonarQube 등, 동적 분석은 Valgrind 등이 예이다.
- 성능 테스트는 도구 설치 → 환경설정 → 시나리오 → 실행·모니터링 순으로 한다.
- 결함 우선순위는 Critical·High·Medium·Low, 심각도는 Critical·Major·Normal·Minor·Simple이다.
- 결함 에이징은 지속 시간, 추세 분석은 시간에 따른 결함 수 변화이다.
15. 시험 직전 체크리스트(2분)
- Error → Defect → Failure 관계를 한 문장으로 말할 수 있다
- 커버리지 3종(기능·라인·코드)을 구분할 수 있다
- 리팩토링 = 기능 불변 + 유지보수성 향상
- 클린 코드 5원칙(가단의 중추)
- 정적 vs 동적 분석 도구를 각각 1개 이상 예로 든다
- 성능 테스트 4단계(도환시성), DB 성능 5원인(락페 릭사커)
- 성능 지표 4가지(처응경사)
- 우선순위 4단계 vs 심각도 5단계를 혼동하지 않는다
- 결함 분류 4가지(시기지문), 에이징 vs 추세 분석
'BackEnd > 정보처리기사' 카테고리의 다른 글
| #정보처리기사 실기 — 11 응용 SW 기초 기술 활용 정리 (0) | 2026.05.03 |
|---|---|
| 정보처리기사 실기 — 09 소프트웨어 개발 보안 구축 정리 (1) | 2026.04.27 |
| 정보처리기사 실기 — 08 서버 프로그램 구현 정리 (1) | 2026.04.26 |
| 정보처리기사 실기 - 07. SQL 응용 정리 (1) | 2026.04.25 |
| 정보처리기사 실기 — 06 프로그래밍 언어 활용 정리 (0) | 2026.04.24 |