본문 바로가기

정보 처리 기사 필기/2. 소프트웨어 개발

2-4 애플리케이션 테스트 관리 - 통합 테스트

반응형

합 테스트

 

1. 통합 테스트

 

순서
  • 통합 테스트 케이스 설계
  • 통합 테스트 데이터 준비
  • 통합 테스트 수행 및 결과 확인
  • 결함 등록
  • 테스트 결과 보고 및 종료
수행 방법
  • 점증적인 방식
    • 상향식/하향식 통합
    • 드라이버/스터브 사용
  • 빅뱅 방식(비 점증적)
    • 실제 모듈로 테스트

 

 

 

2. 점증적인 통합 테스트

하스상드(하향 - stub/상향 - Driver)

  하향식 통합(Top Down) 상향식 통합(Bottom Up)
개념 메인 제어 모듈부터 아래 방향으로 제어 경로 따라 이동하며
하향 통합 테스트

하위/최하위 모듈은 '깊이-우선' 또는 '너비-우선'방식으로 통합
최하위 레벨 모듈/컴포넌트로부터 위쪽 방향으로
제어 경로 따라 이동하며 테스트
순서 메인 제어 모듈은 작성된 프로그램으로, 작성되지 않은 하위 모듈/컴포넌트를 대신하여 더미 모듈 스터브(Stub) 개발
->  깊이-우선/너비-우선 방식에 따라 스터브가 한번에 하나씩 실제 모듈 대체
-> 각 모듈/컴포넌트 통합 테스트
-> 테스트 완료 후 스터브(실제 모듈로 대체
최하위 레벨 모듈/컴포넌트를 클러스터로 결합
-> 상위 모듈에서 데이터 입출력 확인 더미 모듈 드라이버(driver) 작성
-> 통합된 클러스터 단위 테스트
-> 테스트 완료 후 각 클러스터는 프로그램 위쪽으로 결합, 드라이버는 실제 모듈로 대체

 

 

 

 

 

시스템 테스트

 

1. 시스템 테스트

 

 

수행 방법

  • 부하(Stress) 테스트
  • 요구사항 테스트(검증)
  • 무결성 테스트
  • 부피 테스트
  • 메모리 테스트
  • 성능 테스트: 사용자 이벤트에 시스템 응답하는 시간, 특정 시간 내 처리하는 업무량 등 반응속도 측정
    • Load test(부하): 시스템에 부하를 계속 증가시켜 임계점을 찾는 테스트로 병목 현상 제거하는 과정 방법
    • Stress test: 시스템 처리 능력 이상(임계점)의 부하를 가해 비정상적 상황에서의 처리 테스트
    • Spike test: 짧은 시간에 사용자 몰릴 때 시스템 반응 측정
    • Endurance test(내구성): 오랜 시간 동안 시스템에 높은 부하 가해 시스템 반응 테스트 
  • 신뢰성 테스트
  • 수락(Acceptance) 테스트
  • 회복(Recovery) 테스트: 고의로 실패 유도, 시스템 정상적 복귀 테스트
  • 안전(Security) 테스트: 소스 코드 내의 보안적인 결함 미리 점검
  • 구조(Structure) 테스트: 소스코드 복잡도 평가
  • 회귀(Regression) 테스트: 오류 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없지 확인하는 일종의 반복 테스트
  • 병행(Parellel) 테스트: 변경된 시스템과 기존 시스템에 동일한 데이터 입력 후 결과 비교

 

 

 

2. 인수 테스트

 

수행 방법

알파 테스트 제한된 환경으로 초대된 사용자가 수행하는 것으로 오류 찾는 테스트
베타 테스트 제한되지 않은 환경에서 다수의 사용자가 오류 발견 시 개발자에게 통보

 

 

 

3. 테스트 산출물

 

테스트 산출물
  • 테스트 계획서
  • 테스트 케이스
  • 테스트 시나리오
  • 테스트 결과서
테스트 명세서
  • 테스트 결과 정리
  • 테스트 요약 문서
  • 품질 상태
  • 테스트 결과서
  • 테스트 실행 절차 및 평가
 

 

 

4. 테스트 자동화 도구

 

장점
  • 반복되는 테스트 데이터 자동 입력
  • 사용자 요구 기능의 일관성 있는 검증
  • 테스트 결과 값에 대한 객관적 평가 기준
  • 테스트 결과의 통계 작업, 그래프 등 다양한 표시 형태 제공
  • UI없는 서비스도 정밀 테스트 가능
  • 테스트 시간/인력 비용 최소화
  • 테스트 쉽고 효율적 수행
단점
  • 도구 사용 방법 교육/학습 필요
  • 프로세스 단계별 적용 위한 시간, 노력 필요
  • 도구 구매/유지 관리 비용
테스트 자동화 도구 유형
  • 정적 분석 도구
    • 작성된 소스 코드 실행시키지 않음
    • 동적 테스트 전 결함 발견 지원
  • 동적 분석 도구
    • 작성된 소스 코드 실행
    • 코드에 존재하는 메모리 누수 현황 발견/분석
테스트 실행 도구
(Test Execution Tools)
  • 데이터 주도 접근 방식
    • 테스트 데이터 스프레드시트에 저장/실행
    • 다양한 테스트 데이터로 동일 테스트 케이스 반복 실행
    • 미리 작성된 스크립트에 테스트 데이터만 추가 수행
  • 키워드 주도 접근 방식
    • 키워드와 테스트 데이터 스프레드 시트에 저장
    • 키워드 이용하여 테스트 수행 동작 정의
    • 애플리케이션 특성에 맞춰 키워드 테일러링
성능 테스트 도구
  • 애플리케이션 처리량, 응답시간, 경과시간, 자원 사용률에 대해 가상의 사용자 생성하고 테스트 수행함으로써 성능 목표 달성하였는지 확인하는 테스트 자동화 도구
테스트 통제 도구  
테스트 장치 구성
  • Driver
  • Stub
  • Suites : 테스트 대상 컴포넌트,모듈,시스템에 사용되는 테스트 케이스의 집합
  • Test case : 입력값, 실행 조건, 기대 결과 등의 집합
  • Test script : 자동화된 테스트 실행 절차의 명세
  • Mock object : 사용자 행위를 조건부로 사전 입력 시 그 상황에 예정된 행위 수행하는 객체

 

 

 

5. 테스트 케이스

 

테스트 오라클(Test Oracle)

개념 테스트 결과가 참인지 거짓인지 판단위해 사전에 정의된 참값 입력하여 비교하는 기법 및 활동
참(True) 오라클 발생된 모든 오류 검출
샘플링(Sampling) 오라클 특정한 몇 개의 입력값에 대해서만 기대하는 결과 제공
추정(Heuristic, 추정) 오라클 샘플링 오라클 개선
일관성 테스트(Consistent Test) 오라클 테스트 케이스 수행 전/후 결과 값 동일한지 확인

 

 

 

6. 테스트 시나리오

 

  • 테스트 위한여러 테스트 케이스의 집합이며 동작 순서 기술한 문서
  • 테스트 항목을 하나의 시나리오에 모두 작성하지 않음
  • 고객 요구사항, 설계 문서 등 기반으로 작성

 

 

 

7. 테스트 환경 구축

 

  • 하드웨어 기반
  • 소프트웨어 기반
  • 가상 시스템 기반

 

 

 

8. 테스트 데이터 및 테스트 조건

 

테스트 데이터
  • 컴퓨터 동작이나 시스템 적합성 시험위해 특별히 개발된 데이터 집합
테스트 조건
  • 시작 조건
    • 계획 수립
    • 사용자 요구사항 테스트 명세서 작성
    • 투입 조직 및 참여 인력 역할/책임 정의
    • 테스트 일정 확정
  • 종료 조건
    • 정상적 테스트 모두 수행 시
    • 차기 일정 시작 시점/테스트 일정 만료
    • 테스트 소요 비용 모두 소진 시

 

 

 

 

 

 

 

 

 

Reference

https://book.naver.com/bookdb/book_detail.naver?bid=17134434 

 

이기적 정보처리기사 필기 기본서

- 기초부터 탄탄히 잡아주는 영진닷컴의 이기적 수험서!영진닷컴이 자랑하는 수험서 브랜드 ‘이기적’ 시리즈는 쉽고 풍부한 내용으로 기초부터 튼튼하게 쌓아주는 합격의 동반자입니다. 기

book.naver.com

 

반응형