개발 과정에 따른 테스트
소프트웨어 개발 단계에 따라 만들어지는 모듈 구성 단위에 테스트 수행해 코드 오류 뿐 아니라 요구 분석 오류, 설계,
인터페이스 오류 발견할 수 있음
1) 단위 테스트
- 코딩 직후 각 모듈에 대해 테스트 수행
- 논리 흐름 구조 기반 테스트 수행
2) 통합 테스트
- 단위 테스트가 끝난 모듈들 결합하면서 테스트 수행
- 하향식, 상향식, 혼합식 통합 테스트로 구분
하향식 통합 (Top Down) |
- 상위 모듈에서 하위 모듈로 통합하면서 검사 수행 - 검사용 가짜 모듈 (stub) 필요 - 깊이우선 방식, 너비우선 방식 - 테스트 스텁 사용 |
상향식 통합 (Bottom up) |
- 하위 모듈에서 상위 모듈로 통합하면서 검사 수행 - 클러스터 (Cluster) 드라이버 (Driver) 필요 - 최하위 모듈부터 위쪽 방향을 제어 경로 따라 이동하면서 테스트와 통합 수행 방식 - 하위 모듈 포함하는 테스트 드라이버 필요 |
하향식 통합 테스트 절차
- 깊이 우선 방식 : A, B, C, D, E, F, G
- 너비 우선 방식 : A, B, F, G, C, D, E
① 제어 모듈 종속 모듈을 Stub으로 대체
② 통합 방법 따라 Stub 실제 모듈로 대체
③ 모듈 통합될 때까지 검사 수행
④ 통합될 때마다 재수행하는 회귀 검사 실시
상향식 통합 테스트 절차
① 낮은 수준 모듈들 클러스터로 결합
② 클러스터 검사용 드라이버 작성
③ 클러스터 검사
④ 드라이버 제거하고 클러스터를 상위 결합
3) 시스템 테스트
- 다른 시스템 요소와 연결된 소프트웨어가 시스템 기능, 성능 만족하는지 검사
- 성능 테스트, 복구 테스트, 보안 테스트, 강도 테스트 등 있음
성능 테스트 | 통합 시스템 맥락에서 소프트웨어 실시간 성능 검사하며 모든 검사 단계에서 수행 |
복구 테스트 | 소프트웨어 장애 발생시킨 후 올바르게 복구되는지 검사 |
보안 테스트 | 비인가된 침입으로부터 시스템 보호 수행 여부 검사 |
강도 테스트 | 비정상적인 처리량과 빈도 발생 시 소프트웨어 실행 여부 검사 |
회귀 테스트 (Regression Test)
기능 추가나 오류 수정한 소프트웨어가 수정에 의해 다른 부분에 영향 미치는지, 새로 유입된 오류 없는지 확인하는 테스트
4) 인수 테스트
- 사용자 요구사항 충족하는지 검사하는 것, 블랙 박스 검사 이용
- 알파 테스트, 베타 테스트 등 있음
알파 검사 | - 개발자 장소에서 사용자가 개발자 앞에서 수행하는 검사 - 통제된 환경에서 사용자와 개발자가 사용상 문제점 함께 확인 |
베타 검사 | - 여러 사용자 중 선정된 최종 사용자가 수행하는 검사 - 개발자 제외하고 사용자가 직접 수행하는 문제점 확인 |
테스트 자동화 도구
- 사람 대신 테스트 도구 이용해 반복적인 테스트 작업 효율적으로 수행하는 것
- 인간 판단, 조작 실수로 발생하는 휴먼 에러 (Human Error) 방지 가능
1) 자동화 도구 사용 시 장·단점
장점 | - 반복되는 테스트 데이터 재입력 작업 자동화 - 사용자 요구 기능 일관성 검증에 유리 - 테스트 결과값에 대한 객관적 평가 기준 제공 - 테스트 결과 통계 작업과 그래프 등 다양한 표시 형태 제공 - UI 없는 서비스 경우에도 정밀한 테스트 가능 |
단점 | - 도구 도입 후 도구 사용 방법에 대한 교육 및 학습 필요 - 도구를 프로세스 단계별로 적용하기 위한 시간, 비용, 노력 필요 - 상용 도구의 경우, 고가, 유지 관리 비용이 높아 추가 투자 필요 |
2) 테스트 자동화 도구
정적 분석 도구 | - 프로그램 실행하지 않고 분석하는 도구 - 소스코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함 등 발견하기 위해 사용 |
테스트 실행 도구 | - 스크립트 언어 사용해 테스트 실행 - 테스트 데이터와 테스트 수행방법 등 포함된 스크립트 작성 후 실행 - 데이터 주도 접근 방식, 키워드 주도 접근 방식으로 구분 |
성능 테스트 도구 | 가상의 사용자 만들어 처리량, 응답 시간, 자원 사용률 등 인위적으로 적용 후 테스트 |
테스트 통제 도구 | - 테스트 계획 및 관리, 테스트 수행, 결함 관리 등 수행하는 도구 - 형상 관리 도구, 결함 추적 / 관리 도구 등 |
테스트 하네스 도구 | - 테스트하는 환경 일부분으로, 테스트 지원 위해 생성된 코드와 데이터 의미 - 테스트가 실행될 환경 시뮬레이션함 |
3) 테스트 하네스 구성요소
테스트 드라이버 | 테스트 대상 하위 모듈 호출하고, 파라미터 전달하고, 모듈 테스트 수행 후 결과 도출하는 도구 (상향식 통합) |
테스트 스텁 | 제어 모듈이 호출하는 타 모듈 기능 단순히 수행하는 도구로, 일시적으로 필요한 조건만 가지고 있는 테스트용 모듈 (하향식 통합) |
테스트 슈트 | 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스 집합 |
테스트 케이스 | 사용자 요구사항 정확하게 준수했는지 확인하기 위한 입력값, 실행조건, 기대 결과 등으로 만들어진 테스트 항목 명세서 |
테스트 시나리오 | 테스트 케이스 동작 순서에 따른 묶음 |
테스트 스크립트 | 자동화될 테스트 실행 절차에 대한 명세서 |
목 오브젝트 | 사전에 사용자 행위를 조건부로 입력해두면, 그 상황에 맞는 예정된 행위 수행하는 객체 |
애플리케이션 테스트 결과 분석
통합 테스트 후 발견되는 결함에 대한 분석 통해 잔존 결함 추정 가능
결합 (fault)
소프트웨어가 개발자가 의도한 바와 다르게 동작해 원하지 않은 다른 결과 발생하는 것
1) 결함 판단 기준
- 기능 명세서에 가능하다고 명시한 기능 수행되지 않는 경우
- 기능 명세서에 명시되어 있지 않지만 수행해야만 하는 기능 수행되지 않는 경우
- 테스터 시각에서 보았을 때 문제 있다고 판단되는 경우
2) 결함 관리 프로세스
결함 상태
테스트에서 발견된 결함은 지속적으로 상태 변화 추적, 관리해야 함
결함 상태 추적
상태 | 내용 |
Open | 결함이 보고되고 등록된 상태 |
Assigned | 결함 분석 및 수정 위해 담당자에게 결함 전달된 상태 |
Fixed (Resolved) | 결함 수정이 완료된 상태 |
Deferred | 결함 수정이 연기된 상태 |
Closed | 결함이 해결되어 테스터와 담당자가 종료 승인한 상태 |
Clarified | 종료 승인한 결함 검토해 결함 아니라고 확인된 상태 |
결함 추이 분석
테스트 완료 후 발견된 결함에 대해 결함 관리 측정 지표 속성값 분석
결함 관리 측정지표
결함 분포 | 모듈 또는 컴포넌트 특정 속성에 해당하는 결함 수 측정 |
결함 추세 | 테스트 진행 시간에 따른 결함 수 추이 분석 |
결함 에이징 | 특정 결함 상태로 지속되는 시간 측정 |
결함 식별 및 우선순위
결함 분류
시스템 결함 | 시스템 다운, 애플리케이션 작동 정지, 데이터베이스 에러 |
기능 결함 | 사용자 요구사항 미반영 / 불일치, 부정확한 비즈니스 프로세스, 스크립트 오류, 타 시스템 연동 시 오류 등 |
GUI 결함 | UI 비일관성, 데이터 타입 표시 오류, 부정확한 커서, 메시지 오류 등 사용자 화면 설계에서 발생된 결함 |
문서 결함 | 사용자 요구사항과 기능 요구사항 불일치로 인한 불완전한 상태 문서, 사용자 온라인 / 오프라인 매뉴얼 불일치 |
결함 심각도
- 애플리케이션에 발생한 결함이 전체 시스템에 미치는 치명도 나타내는 척도
- 치명적 (critical), 주요 (major), 보통 (normal), 경미 (minor), 단순 (simple)
결함 우선순위
- 결함 처리에 대한 신속성 나타내는 척도
- 업무 가중치와 결함 심각도에 따라 우선순위 결정
- 긴급 (Critical), 높음 (High), 중간 (Medium), 낮음 (Low)으로 나타냄
결함 관리 도구
Mantis | 소프트웨어 설계 시 단위별 작업 내용 기록할 수 있어 결함 및 이슈 관리, 추적할 수 있는 도구 |
Trac | 결함 추적 및 통합 관리할 수 있는 도구 |
Redmine | 프로젝트 관리 및 결함 추적할 수 있는 도구 |
Bugzilla | 결함 지속적으로 관리하고 심각도와 우선순위 저장할 수 있는 도구 |
'Study > 정보처리기사 실기' 카테고리의 다른 글
[정보처리기사 실기] SQL 응용 _ 데이터베이스 고급 기능 (1) | 2025.03.11 |
---|---|
[정보처리기사 실기] 애플리케이션 테스트 관리 _ 애플리케이션 성능 개선 (0) | 2025.03.08 |
[정보처리기사 실기] 애플리케이션 테스트 관리 _ 애플리케이션 테스트 설계 (1) | 2025.03.05 |
[정보처리기사 실기] 인터페이스 구현 _ 인터페이스 구현 검증 (1) | 2025.03.05 |
[정보처리기사 실기] 인터페이스 구현 _ 인터페이스 기능 구현 (1) | 2025.03.04 |