개발 단계에 따른 애플리케이션 테스트
단위 테스트
- 코딩 직후 모듈이나 컴포넌트에 초점을 맞춰 테스트
- 인터페이스, 외부적 I/O, 자료 구조 등을 검사
- 사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행
- 구조 기반 테스트 : 화이트 박스 테스트를 시행하여 제어 흐름이나 조건 결정을 목적으로 함
- 명세 기반 테스트 : 블랙 박스 테스트를 시행하여 동등 분할이나 경계값 분석을 목적으로 함
통합 테스트
- 단위 테스트가 완료된 모듈들을 결합하여 하나의 시스템으로 완성하는 과정에서 테스트
- 모듈 간 또는 통합된 컴포넌트 간 상호 작용 오류 검사
- 비점진적 통합 방식
-> 모든 모듈이 미리 결합되어 있는 프로그램 전체를 테스트
-> 빅뱅 통합 테스트 방식
-> 오류 발견 및 장애 위치 파악이 어려움
- 점진적 통합 방식
-> 모듈 단위로 단계적으로 통합하면서 테스트
-> 하향식 / 상향식 / 혼합식 테스트 방식
-> 오류 수정이 용이하고 인터페이스 관련 오류를 완전히 테스트할 수 있음
- 하향식 통합 테스트
-> 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트
-> 깊이 우선 통합법이나 넓이 우선 통합법 사용
-> 상위 모듈에선 테스트 케이스 사용이 어려움
-> 스텁 : 상위 모듈은 있지만 하위 모듈이 없는 경우 하위 모듈 대체
- 상향식 통합 테스트
-> 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트
-> 하나의 주요 제어 모듈과 종속 모듈의 그룹인 클러스터가 필요
-> 드라이버 : 상위 모듈 없이 하위 모듈이 있는 경우 하위 모듈 구동
- 혼합식 통합 테스트
-> 하위 수준에서는 상향식 통합 상위 수준에서는 하향식 통합을 사용하여 최적의 테스트를 지원
-> 샌드위치 통합 테스트
- 회귀 테스팅
-> 이미 테스트된 프로그램의 테스팅을 반복
-> 통합 테스트로 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인
시스템 테스트
- 개발된 소프트웨어가 원하는 환경에서 수행되는지 테스트
- 실제 환경과 유사하게 만든 테스트 환경에서 진행
- 기능적 요구사항 : 명세서 기반의 블랙박스 테스트
- 비기능적 요구사항 : 구조적 요소에 대한 화이트박스 테스트
인수 테스트
- 개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 중점을 두고 테스트
- 사용자가 직접 테스트
- 사용자 인수 테스트 : 사용자가 시스템 사용의 적절성 여부 확인
- 운영상의 인수 테스트 : 시스템 관리자가 시스템 인수 시 수행
- 계약 인수 테스트 : 계약상의 조건을 준수하는지 확인
- 규정 인수 테스트 : 규정에 맞게 개발되었는지 확인
- 알파 테스트 : 개발된 환경에서 사용자가 개발자 앞에서 수행
- 베타 테스트 : 사용자의 환경에서 사용자가 직접 테스트 수행
애플리케이션 테스트 프로세스
애플리케이션 테스트 프로세스
- 개발된 소프트웨어가 제대로 만들어 졌는지 테스트하는 절차
- 테스트를 마치면 테스트 계획서, 케이스, 시나리오, 결과서가 산출
- 에러는 빨리 발견될수록 좋음
- 테스트 계획 : 프로젝트 계획서 및 요구 명세서를 기반으로 테스트 목표를 정의하고 테스트 대상 및 범위 결정
- 테스트 분석 및 디자인 : 테스트의 목적과 원칙을 검토하고 사용자의 요구사항 분석
- 테스트 케이스 및 시나리오 작성 : 테스트 케이스를 작성, 검토 및 확인 후 시나리오 작성
- 테스트 수행 : 테스트 환경 구축 후 테스트 수행
- 테스트 결과 평가 및 리포팅 : 테스트 결과를 분석하여 테스트 결과 작성
- 결함 추적 및 관리 : 테스트 수행 후 결함이 어디에서 발생했고 어떤 결함인지 추적하고 관리
테스트 케이스 / 시나리오 / 오라클
테스트 케이스
- 사용자의 요구사항이 준수되었는지 확인하기 위해 테스트 항목에 대한 명세서
- 명세 기반 테스트의 설계 산출물
- 테스트 케이스 작성 순서
테스트 시나리오
- 테스트 케이스를 적용하는 구체적인 절차를 명세한 문서
테스트 오라클
- 테스트 결과가 올바른지 판단하기 위해 정의된 참 값을 대입하여 비교
- 테스트 오라클의 특징
-> 제한된 검증 : 모든 테스트 케이스에는 적용 불가
-> 수학적 기법 : 수학적 기법을 통해 테스트 오라클 값을 구할 수 있음
-> 자동화 기능 : 테스트 대상에 대한 실행, 결과 비교 등을 자동화할 수 있음
- 테스트 오라클의 종류
-> 참 오라클 : 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공
-> 샘플링 오라클 : 특정 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공
-> 추정 오라클 : 특정 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하고 나머지 값에 대해서는 추정으로 처리
-> 일관성 검사 오라클 : 변경 시 테스트 케이스 수행 전과 후의 결과 값이 동일한지 확인
필기 정리
'2020(개정) 이후 정보처리기사 > 2과목 : 소프트웨어 개발' 카테고리의 다른 글
2020 정보처리기사 필기 - 2.5 인터페이스 구현(1) (0) | 2020.04.16 |
---|---|
2020 정보처리기사 필기 - 2.4 애플리케이션 테스트 관리(3) (0) | 2020.04.15 |
2020 정보처리기사 필기 - 2.4 애플리케이션 테스트 관리(1) (0) | 2020.04.15 |
2020 정보처리기사 필기 - 2.3 제품 소프트웨어 패키징(2) (0) | 2020.04.15 |
2020 정보처리기사 필기 - 2.3 제품 소프트웨어 패키징(1) (0) | 2020.04.14 |