반응형
1. 애플리케이션 테스트 케이스 작성
1.1 테스트의 목적
- 회복(Recovery) 테스트
- 시스템에 고의로 실패를 유도하고 시스템이 정상적으로 복귀하는지 확인한다.
- 안전(Security) 테스트
- 시스템이 불법적인 접근을 차단하고 보안 결함이 없는지 점검한다.
- 강도(Stress) 테스트
- 과다한 정보량을 부과하여 과부하 상황에서도 시스템이 정상 작동하는지 검증한다.
- 성능(Performance) 테스트
- 특정 시간 내 업무 처리량, 사용자 이벤트에 대한 반응 속도를 평가한다.
- 구조(Structure) 테스트
- 시스템 내부 논리 경로 및 복잡도를 분석한다.
- 회귀(Regression) 테스트
- 코드 변경 또는 수정 후 새로운 결함 발생 여부를 점검한다.
- 병행(Parallel) 테스트
- 기존 시스템과 변경된 시스템에 동일 데이터를 입력하고 결과를 비교한다.
1.2 테스트 시각
- 검증(Verification)
- “Are we building the product right?”
- 제품의 생산 과정과 절차를 점검하여 올바르게 개발하고 있는지 확인한다.
- 확인(Validation)
- “Are we building the right product?”
- 생산된 제품이 요구사항에 따라 정상 작동하는지 확인한다.
1.3 테스트 기법
- 화이트박스 테스트
- 프로그램의 내부 로직(수행 경로, 루프 등)을 기반으로 테스트를 수행한다.
- 코드 구조를 보면서 결함을 분석한다.
- 블랙박스 테스트
- 사용자 요구사항 명세를 기준으로 기능을 테스트한다.
- 내부 로직은 보지 않고 입력과 출력의 정확성을 검증한다.
1.4 테스트 종류
- 명세 기반 테스트
- 주어진 명세에 따라 테스트 케이스를 작성하고 확인한다.
- 예: 동등 분할, 경계값 분석, 유한 상태 기계 기반, 유스케이스 테스트.
- 구조 기반 테스트
- 소프트웨어 내부 논리 흐름에 따라 테스트 케이스를 작성한다.
- 예: 구문 기반, 조건 기반, 조건결정 기반 테스트.
- 경험 기반 테스트
- 테스터의 경험과 직관을 기반으로 테스트를 수행한다.
- 유사 소프트웨어나 기술을 활용하여 예측하고 분석한다.
1.5 테스트 프로세스
- 테스트 계획
- 테스트 범위, 대상 시스템, 테스트 수행 절차와 일정을 계획한다.
- 테스트 분석 및 설계
- 테스트 케이스 및 시나리오를 설계하고 테스트 환경을 준비한다.
- 테스트 수행
- 설계된 테스트 케이스를 실행하고 결과를 기록한다.
- 테스트 평가 및 리포트 작성
- 테스트 결과를 분석하고 보고서를 작성하여 품질을 평가한다.
1.6 테스트 케이스와 테스트 오라클의 이해
1.6.1 테스트 케이스
- 정의
- 특정 프로그램의 일부나 요구사항을 기반으로 설계된 테스트 시나리오.
- 입력 값, 실행 조건, 기대 결과를 포함.
- 작성 절차
- 테스트 계획 검토 및 자료 확보.
- 위험 평가 및 우선순위 결정.
- 테스트 요구사항 정의.
- 테스트 구조 설계 및 테스트 방법 결정.
- 테스트 케이스 작성 및 타당성 확인.
1.6.2 테스트 오라클
- 정의
- 테스트 결과의 참/거짓 여부를 판단하기 위해 사전에 정의된 참 값을 비교하는 기법.
- 유형
- 참(True) 오라클: 모든 입력 값에서 기대 결과를 생성하며 오류를 검출한다.
- 샘플링(Sampling) 오라클: 특정 입력 값에서만 기대 결과를 생성한다.
- 휴리스틱(Heuristic) 오라클: 일부는 참 값을 생성하고 나머지는 추정으로 처리한다.
- 일관성 검사(Consistent) 오라클: 변경 전후의 결과 일치를 비교한다.
2. 애플리케이션 테스트 시나리오 작성
2.1 테스트 시나리오의 이해
- 테스트 시나리오의 정의
- 테스트 수행을 위한 여러 테스트 케이스의 집합으로, 테스트 케이스의 동작 순서를 기술한 문서이다.
- 테스트를 위한 절차를 명세한 문서이다.
- 테스트 시나리오의 필요성
- 테스트 수행 절차를 미리 정량적으로 설계하여, 설계 단계에서 중요시점인 요구사항이나 주요 흐름과 같은 테스트 항목을 빠짐없이 테스트하기 위함이다.
2.2 테스트 시나리오 작성 시 유의점
- 시스템 전반을 고려한 작성
- 시스템 내 각 구성요소의 테스트 시나리오를 모두 작성하지 않고, 시스템별, 모듈별, 항목별 주요 흐름과 연관된 부분에만 작성한다.
- 고객 요구사항과 설계 문서 연계
- 고객 요구사항과 설계 문서 등을 토대로 테스트 시나리오를 작성한다.
- 각 테스트 항목의 상세화
- 설계된 항목별 목적, 순서 단계, 테스트 데이터, 테스트 케이스, 예상 결과, 결과 등의 항목을 포함하여 작성한다.
2.3 테스트 환경 구축의 이해
- 테스트 환경 구축의 정의
- 개발된 응용 소프트웨어가 실제 운영 시스템에서 정상적으로 작동하는지 테스트할 수 있도록, 실제 운영 시스템과 동일하거나 유사한 하드웨어, 소프트웨어, 네트워크 등의 환경을 구축하는 활동이다.
- 테스트 환경 구축 유형
- 하드웨어 기반 테스트 환경 구축
- 서버 장비(WAS 서버, DBMS 서버), 클라이언트 장비(노트북, PC), 네트워크 장비(내부 LAN 또는 공용 인터넷 라인)를 설치하는 작업이다.
- 소프트웨어 기반 테스트 환경 구축
- 구축된 하드웨어 환경에 응용 소프트웨어를 설치하고 필요한 데이터를 구축하는 작업이다.
- 가상 시스템 기반 테스트 환경 구축
- 가상 머신(Virtual Machine) 기반의 서버 또는 클라우드 환경을 이용하여 논리적인 테스트 환경을 구축한다.
- 하드웨어 기반 테스트 환경 구축
2.4 테스트 데이터 및 테스트 조건의 이해
- 테스트 데이터의 개념
- 컴퓨터의 동작이나 시스템의 적정성을 시험하기 위해 특별히 개발된 데이터를 활용해 프로그램의 기능을 테스트한다.
- 테스트 데이터의 필요성
- 테스트 수행 시 적절한 데이터를 사용하면 결과의 정확성과 도출까지 소요되는 시간을 단축할 수 있다.
- 테스트 데이터 준비
- 실제 데이터나 시뮬레이션 데이터 기반으로 테스트 실행에 적합하게 준비한다.
- 테스트 시작 조건
- 테스트 계획과 설계, 사용자 요구사항에 대한 테스트 환경의 구성이 완료된 상태에서 테스트를 시작하도록 조건을 정의한다.
- 단계별 또는 회차별 테스트 수행을 위해 모든 조건을 만족하지 않아도 테스트를 시작할 수 있다.
- 테스트 종료 조건
- 테스트가 정상적으로 모두 수행되거나, 테스트 일정이 도래했을 경우, 또는 테스트의 비용 소진, 테스트 종료 기능의 수행 여부에 따라 종료한다.
- 테스트 성공과 실패의 판단 기준
- 기능 및 비기능 테스트 시나리오에서 설정한 결과를 만족하면 성공으로 간주한다.
- 동일한 입력 데이터 또는 이벤트를 통해 테스트하더라도 이전과 동일한 결과가 나올 때 성공으로 판단한다.
반응형