CHAPTER 08. 애플리케이션 테스트 관리
Section 2. 애플리케이션 통합 테스트
1. 결함관리 도구
⑴ 결함관리 도구의 개념
Ÿ 각 단계별 테스트 수행 후 발생한 결함의 재발 방지를 위해, 유사 결함 발견 시 처리 시간 단축을 위해 결함을
추적하고 관리할 수 있게 해주는 도구
⑵ 결함관리 프로세스
Ÿ 에러 발견
Ÿ 에러 등록
Ÿ 에러 분석
Ÿ 결함 확정
Ÿ 결함 할당
Ÿ 결함 조치
Ÿ 결함 조치 검토 및 승인
⑶ 결함 추이 분석
Ÿ 결함 추이 분석
- 테스트 완료 후 발견된 결함의 결함 관리 측정 지표의 속성 값들을 분석하고, 향후 애플리케이션의 어떤 모듈
또는 컴포넌트에서 결함이 발생할지를 추정하는 작업
Ÿ 결함 관리 측정 지표
- 결함 분포 : 각 애플리케이션 모듈 또는 컴포넌트의 특정 속성에 해당하는 결함의 수를 측정하여 결함의 분포
를 분석할 수 있다.
- 결함 추세 : 테스트 진행 시간의 흐름에 따른 결함의 수를 측정하여 결함 추세를 분석할 수 있다.
- 결함 에이징 : 등록된 결함에 대해 특정한 결함 상태의 지속 시간을 측정하여 분석할 수 있다.
⑷ 결함의 식별
Ÿ 단계별 결함 유입 분류
- 기획시 유입되는 결함
- 설계 시 유입되는 결함
- 코딩 시 유입되는 결함
- 테스트 부족으로 유입되는 결함
Ÿ 결함 심각도별 분류
- 치명적 결함(Critical)
- 주요 결함(Major)
- 보통 결함(Normal)
- 낮은 결함(Low, Minor)
Ÿ 결함 우선 순위
- 결정적(Critical) : 24시간 안에 즉시 수정, 전체 기능이 동작하지 않고, 더 이상 테스트도 진행할 수 없다.
- 높음(High) : 일반적인 결함으로 인해 하나의 기능을 사용할 수 없다.
- 보통(Medium) : 어떤 기능이 기대치에 못 미칠 경우
- 낮음(Low) : 종료 기준에 따라 수정하지 않아도 되는 경우
⑸ 결함 관리 항목
Ÿ 결함 내용, 결함 ID, 결함 유형, 발견일, 심각도, 우선순위, 시정 조치 예정일, 수정 담당자,
재테스트 결과, 종료일
⑹ 결함 관리 도구 종류
Ÿ S/W 테스트 관리
- TestLink, GanttProject, OpenProj, Redmine
Ÿ 결함 추적 관리
- Mantis, Bugzilla, Trac
2. 테스트 자동화 도구
⑴ 테스트 자동화 도구의 개념
Ÿ 테스트 도구를 활용하여 반복적인 테스트 작업을 스크립트 형태로 구현함으로써, 테스트 시간 단축과 인력
투입 비용을 최소화하는 한편, 쉽고 효율적인 테스트를 수행할 수 있는 방법
⑵ 테스트 자동화 도구의 장/단점
Ÿ 장점
- 반복되는 테스트 데이터 재입력 작업의 자동화
- 사용자 요구 기능의 일관성 검증에 유리
- 테스트 결과 값에 대한 객관적인 평가 기준 제공
- 테스트 결과의 통계 작업과 그래프 등 다양한 표시 형태 제공
- UI가 없는 서비스의 경우에도 정밀한 테스트 가능
Ÿ 단점
- 도구 도입 후 도구 사용 방법에 대한 교육 및 학습이 필요
- 도구를 프로세스 단계별로 적용하기 위한 시간, 비용, 노력이 필요
- 상용 도구의 경우 고가, 유지 관리 비용이 높아 추가 투자가 필요
⑶ 테스트 자동화 도구 유형
① 정적 분석 도구(Static Analysis Tools)
Ÿ 정적 분석 도구는 만들어진 애플리케이션을 실행하지 않고 분석하는 방법
Ÿ 대부분의 경우 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위하여 사용
Ÿ 테스트를 수행하는 사람이 작성된 소스 코드에 대한 이해를 바탕으로 도구를 이용해서 분석하는 것
Ÿ 종류 : pmd, SonarQube, cppcheck, checkstyle 등
② 테스트 실행 도구(Test Execution Tools)
Ÿ 테스트를 위해 작성된 스크립트를 실행
Ÿ 작성된 스크립트는 각 스크립트마다 특정 데이터와 테스트 수행 방법을 포함
Ÿ 테스트 실행 도구 방식 (데이터 주도 접근 방식, 키워드 주도 접근 방식)
3. 통합 테스트
⑴ 통합 테스트의 개념
Ÿ 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트 기법
Ÿ 단위 테스트가 끝난 모듈 또는 컴포넌트 단위의 프로그램이 설계 단계에서 제시한 애플리케이션과
동일한 구조와 기능으로 구현된 것인지를 확인하는 것
Ÿ 수행 방법으로는 비점증적 방식(빅뱅), 점증적 방식(상향식, 하향식)이 있다.
⑵ 통합 테스트 수행 방법의 분류
① 하향식 통합 테스트(Top Down)
Ÿ 메인 제어 모듈로부터 아래 방향으로 제어의 경로를 따라 이동하면서 하향식으로 통합하면서 테스트 진행
Ÿ ‘깊이-우선’ 또는 ‘너비-우선’ 방식으로 통합
Ÿ 아직 개발되지 않은 하위 모듈은 더미 모듈인 스텁(Stub)을 개발하여 테스트 진행
Ÿ 장점
- 장애 위치 파악이 쉬움
- 중요 모듈은 먼저 테스트 수행
Ÿ 단점
- 많은 스텁이 필요함
- 하위 모듈의 불충분한 테스트
② 상향식 통합 테스트(Bottom Up)
Ÿ 최하위 레벨의 모듈 부터 위쪽 방향으로 제어의 경로를 따라 통합하면서 테스트 진행
Ÿ 하위 모듈을 클러스터(Cluster)로 결합하면서 위쪽 방향으로 진행
Ÿ 아직 개발되지 않은 하위 모듈은 더미 모듈인 드라이버(Driver)를 개발하여 테스트 진행
Ÿ 장점
- 장애 위치 파악 쉬움
- 모든 모듈 개발을 위한 시간 낭비가 불필요
Ÿ 단점
- 중요 모듈들이 마지막에 테스트될 가능성이 높음
③ 빅뱅 테스트
Ÿ 모든 구성 요소들을 한꺼번에 통합하여 테스트
Ÿ 소규모 시스템에 편리한 테스트 방식
Ÿ 장점
- 단시간에 테스트를 할 수 있다.
Ÿ 단점
- 장애가 일어난 위치를 파악하기 어렵다.
- 모든 모듈들이 설계된 후에 시작 할 수 있기 때문에, 테스트 시간이 적어진다.
④ 백본 테스트
Ÿ 샌드위치 테스트
Ÿ 상향식과 하향식의 장점을 이용하는 방식
Ÿ 드라이버/스텁을 필요에 따라 만들어 사용
Ÿ 대규모 프로젝트에 사용하는 방식
Ÿ 비용이 많이 들어간다.
⑶ 통합 테스트 수행 순서
Ÿ 통합 테스트 계획서를 검토
Ÿ 통합 테스트를 수행할 테스트 환경을 준비
Ÿ 통합 테스트 케이스 및 시나리오를 검토
Ÿ 통합 모듈 및 인터페이스가 요구사항을 충족하는지 테스트를 수행
Ÿ 통합 테스트 결과를 기록
'information processing' 카테고리의 다른 글
2. 프로젝트 계획 및 분석 (0) | 2022.07.05 |
---|---|
1. 소프트웨어 구축 (0) | 2022.07.05 |
1-23,24. 애플리케이션 테스트케이스 설계(1),(2) (0) | 2022.06.27 |
1-21,22. 객체지향 설계 (0) | 2022.06.27 |
1-20. 인터페이스 구현 검증 (0) | 2022.06.27 |