1. 애플리케이션 통합 테스트 수행
- 통합 테스트
- 통합 테스트 수행 방법의 분류
- 하향식 통합
- 1단계 : 메인 제어 모듈은 작성된 프로그램을 사용하고, 아직 작성되지 않은 하위 모듈 제어
- 2단계 : 검사 초기에 시스템 구조가 파악되어야 함
- 3단계 : 모듈 및 모든 하위 컴포넌트를 대신하여 더미 모듈인 스텁 개발
- 4단계 : 깊이 우선 or 너비 우선 방식에 따라 스텁이 한 번에 하나씩 실제 모듈로 대체
- 5단계 : 각 모듈 또는 컴포넌트를 통합하면서 테스트 수행
- 6단계 : 테스트가 완료되면 스텁이 실제 모듈 또는 컴포넌트로 작성
- 스텁(stub) : 모듈 및 모든 하위 컴포넌트를 대신 하는 더미 모듈
- 상향식 통합
- 1단계 : 하위 레벨의 모듈 또는 컴포넌트들이 하위 모듈의 기능을 수행하는 클러스터로 결합
- 2단계 : 상위의 모듈에서 데이터의 입력과 출력을 확인하기 위한 더미 모듈인 드라이버 작성
- 3단계 : 각 통합된 클러스터 단위 테스트
- 4단계 : 테스트가 완료되면 각 클러스터들은 프로그램의 위쪽으로 결합되며, 드라이버는 실제 모듈 또는 컴포넌트로 대체
- 드라이버(driver) : 상위의 모듈에서 데이터의 입력과 출력을 확인하기 위한 더미 모듈
- 통합 테스트 수행 방법 간 비교
-
테스트 방안 |
빅뱅 테스트 |
상향식 테스트 |
하향식 테스트 |
테스트 수행 방법 |
모든 모듈을 동시에 통합 후 테스트 수행 |
최하위 모듈부터 점진적으로 상위 모듈과 함께 테스트 |
최상위 모듈부터 하위모듈들을 통합하면서 테스트 |
드라이버/스텁 |
드라이버/스텁 없이 실제 모듈로 테스트 |
테스트 드라이버 필요 |
테스트 스텁 필요 |
장점 |
단시간 테스트 가능 작은 시스템에 유리 |
장애 위치 파익 쉬움 모든 모듈 개발 시간 낭비 필요 없음 |
장애 위치 파악 쉬움 이른 프로토타입 가능 중요 모듈의 선 테스트 가능 |
단점 |
장애 위치 파악 어려움 모든 모듈이 개발되어야 가능 |
중요 모듈들이 마지막 테스트 가능성 높음 이른 프로토타입 어려움 |
많은 스텁 필요 하위 모듈들의 불충분한 테스트 수행 |
- 테스트 자동화 도구
- 테스트 도구를 활용하여 반복적인 테스트 작업을 스크립트 형태로 구현함으로써, 테스트 시간 단축과 인력 투입 비용을 최소화하는 한편, 쉽고 효율적인 테스트 수행 가능
- 테스트 자동화 도구 유형
- 정적 분석 도구(Static Analysis Tools)
- 테스트 실행 도구(Text Execution Tools)
- 성능 테스트 도구(Performance Test Tools)
- 테스트 통제 도구(Test Control Tools)
- 테스트 하네스
- 테스트 드라이버
- 테스트 스텁
- 테스트 슈트
- 테스트 케이스
- 테스트 스크립트
- 목 오브젝트
- 테스트 단계별 테스트 자동화 도구
- 테스트 계획 : 요구사항 관리
- 테스트 분석/설계 : 테스트 케이스 생성
- 테스트 수행 : 테스트 자동화, 정적 분석, 동적 분석, 성능 테스트, 모니터링
- 테스트 관리 : 커버리지 측정, 형상 관리, 결함 추적/관리
2. 애플리케이션 테스트 결과 분석
- 테스트 결과 분석
- 소프트웨어 결함
- 에러(Error)/오류 : 결함(Defect)의 원인, 일반적으로 사람에 의해 생성된 실수
- 결함/결점/버그(Bug) : 에러 또는 오류가 원인, 제거하지 않으면 제품이 실패하고나 문제가 발생
- 실패/문제 : 결함이 실행될 때 발생되는 현상
- 테스트 완료 조건
- 테스트 리포팅
- 테스트 결과 정리
- 테스트 요약 문서
- 품질 상태
- 테스트 결과서
- 테스트 실행 절차 및 평가
- 결함 관리
- 테스트 결함 관리 개념
- 결함 추적 관리 활동
- 결함 관리 프로세스
- 에러 발견
- 에러 등록
- 에러 분석
- 결함 확정
- 결함 할당
- 결함 조치
- 결함 조치 검토 및 승인
- 결함 추이 분석
3. 애플리케이션 개선 조치사항 작성
- 테스트 커버리지
- 테스트 커버리지 유형
- 기능 기반 커버리지
- 라인 커버리지
- 코드 커버리지
- 코드 커버리지 유형
- 구문 커버리지 : 프로그램 내의 모든 명령을 적어도 한 번 수행함
- 결정 커버리지 : 프로그램 내 전체 결정문이 적어도 한 번은 참과 거짓의 결과를 수행
- 조건 커버리지 : 결정 명령문 내의 각 조건이 적어도 한 번은 참과 거짓의 결과가 되도록 수행
- 조건/결정 커버리지 : 전체 조건식 뿐만 아니라 개별 조건식도 참, 거짓 각 한 번씩 결과가 되도록 수행
- 변경 조건/결정 : 전체 조건식에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상 시킴
- 다중 조건 : 결정 조건 내 모든 개발 조건식의 모든 가능한 조합을 100% 보장
- 결함의 식별 및 관리
- 단계별 결함 유입 종류
- 기획 시 유입 결함
- 설계 시 유입 결함
- 코딩 시 유입 결함
- 테스트 부족 유입 결함
- 결함 심각도별 분류
- 치명적 결함 : 기능, 제품의 테스트를 완전히 방해 또는 못하게 하는 결함
- 주요 결함 : 기능이 기대와 많이 다르게 동작 또는 기능이 해야하는 것을 못함
- 보통 결함 : 특정 기준을 충족하지 못함 또는 전체에 영향을 주지 않는 일부 기능이 부자연스러움
- 경미한 결함 : 사용상 불편함 유발
- 단순 결함 : 기능에는 영향이 없지만 수정되어야 함
- 결함 우선순위
- 결함 관리 항목
- 결함 내용
- 결함 ID
- 결함 유형
- 발견 일
- 심각도
- 우선순위
- 시정 조치 예정일
- 수정 담당자
- 재 테스트 결과
- 종료일