-
정보처리기사 - 애플리케이션 테스트 관리정보처리기사(자격증)/애플리케이션 테스트 관리 2020. 7. 17. 15:31
애플리케이션 테스트 케이스 작성
소프트웨어 테스트의 이해
1. 소프트웨어 테스트 개념
- 개발된 응용 애플리케이션이나 시스템이 사용자가 요구하는 기능과 성능, 사용성, 안정성 등을 만족하는지
확인하고, 노출되지 않은 숨어있는 소프트웨어의 결함을 찾아내는 활동
2. 소프트웨어 테스트 필요성( 발예향 )
1) 오류 발견 관점
2) 오류 예방 관점 : 동료 검토, 워크스루, 인스펙션
3) 품질 향상 관점 : 반복적인 테스트, 신뢰도 향상
3. 소프트웨어 테스트의 기본 원칙( 결완초집 살정오 )
3-1. 소프트웨어 테스트 원리
1) 결함이 존재함을 밝히는 것 : 결함이 없다는 것을 증명할 수 는 없음 -> 결함을 줄이는 활동
2) 완벽한 테스팅은 불가능 : 무한 입력값, 무한 경로가 있어서
3) 개발 초기에 테스트 시작
4) 결함집중 : 적은 수의 모듈에서 대다수 결함 발견
5) 살충제 패러독스 : 동일 테스트 케이스에 의한 반복 테스트는 새로운 버그 못찾음 -> 새로운 시작에서의 접근 필요
6) 테스팅은 정황에 의존적 : 소프트웨어의 성격에 맞게 테스트 실시, 정황과 비즈니스 도메인에 따라 테스트 수행
7) 오류-부재의 궤변 : 요구사항을 충족시켜주지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없음.
3-2. 소프트웨어 테스트 프로세스
테스트 계획 -> 테스트 분석&디자인 -> 테스트 케이스 및 시나리오 작성 -> 테스트 수행 -> 테스트 결과 평가
3-3. 소프트웨어 테스트 산출물
1) 테스트 계획서
2) 테스트 케이스
3) 테스트 시나리오
4) 테스트 결과서
소프트웨어 테스트 유형
1) 프로그램 실행 여부
2) 테스트 상세 기법
3) 테스트에 대한 시각
4) 테스트의 목적
5) 테스트의 종류
1. 프로그램 실행 여부에 따른 분류
1) 정적 테스트 : 프로그램 실행 x -> 동료 검토, 인스펙션, 워크스루
2) 동적 테스트 : 프로그램 실행 o -> 화이트 박스, 블랙 박스 테스트
* 동료 검토 : 다른 동료들이 사전에 검토
* 인스펙션 : 외부 사람들이 검토
* 워크스루 : 사전검토
* 화이트 박스
- 프로그램 내부 로직을 보면서 수행하는 테스트(구조 테스트) -> 문장 검증, 경로 검증
유형 1. 제어구조 테스트 : 소프트웨어
유형 2. 루프 테스트 : 프로그램의 루프 구조에 국한해서 실시하는 테스트
▶ 구조 테스트라고도 하며, 구문 커버리지, 결정 커버리지, 조건 / 결정 커버리지, 변경 조건 / 결정 커버리지,
다중 조거 커버리지 테스트를 포함한다.
* 블랙 박스 테스트
- 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트(기능 테스트)
- 경계 값 분석 테스트, 결정 테이블 테스트, 상태전이 테스트 등이 있다.
▶ 블랙박스 테스트 유형( 동경길상 유분페 )
유형 1. 동등 분할 테스트
- 입력 데이터의 영역을 유사한 도메인별로 유효 값 / 무효 값을 그룹핑하여 대표 값 테스트 케이스를 도출하여
테스트하는 기법
유형 2. 경계 값 분석 테스트
- 등가분할 후 경계 값 부분에서 오류 발생 확률이 높기에 경계 값을 포함하여 테스트 케이스를 테스트
유형 3. 결정 테이블 테스트
- 요구사항의 논리와 발생조건을 테이블 형태로 나열하여, 조건과 행위를 모두 조합하여 테스트하는 기법
유형 4. 상태전이 테스트
- 테스트 대상 / 시스템이나 객체의 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는
경우의 수를 수행하는 테스트
유형 5. 유스케이스 테스트
- 시스템이 실제 사용되는 유스케이스로 모델링 되어 있을 때 프로세스 흐름을 기반으로 테스트 케이스를
명세화하여 수행하는 테스트 기법
유형 6. 분류트리 테스트
- SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트 케이스를 설계하여 테스트하는 기법
유형 7. 페어와이즈 테스트
- Test data 값들 간에 최소한 한번씩을 조합하는 방식 이는, 커버해야할 기능적 범위를 모든 조합에 비해
상대적으로 적은 양의 테스트 세트를 구성하기 위한 테스트 기법
테스트 시각에 따른 분류
1. 검증 (Verifivation)
- 소프트웨어 과정을 테스트
- 올바른 제품을 생산하고 있는지 검증
- 이전 단계에서 설정된 개발 규격과 요구 조건을 충족시키는지 판단
- 개발자 혹은 시험자의 시각으로 소프트웨어가 명세화된 기능을 올바로 수행하는지 알아보는 과정
2. 확인(validation)
- 소프트웨어 결과를 테스트
- 만들어진 제품이 제대로 동작하는지 호가인
- 최종 사용자 요구 또는 소프트웨어 요구에 적합한지 판단
- 사용자 시각으로 올바른 소프트웨어가 개발되었는지 입증하는 과정
테스트 목적에 따른 분류 ( 회안강성 구회병 )
1. 회복(Recovery) 테스트
- 시스템에 고의로 실패를 유도하고, 시스템의 정상적 복귀 여부를 테스트
2. 안전(Security) 테스트
- 불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스 코드 내의 보안적인 결함을 미리
점검하는 테스트 기법
3. 강도(Stress) 테스트
- 시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 검증하는 테스트 기법
4. 성능(Performance) 테스트
- 사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이
반응하는 속도 등을 측정하는 테스트 기법
5. 구조(Structure) 테스트
- 시스템의 내부 논리 경로, 소스 코드의 복잡도를 평가하는 테스트 기법
6. 회귀(Refression) 테스트
- 회귀 테스트는 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지
확인하는 일종의 반복 테스트 기법
7. 병행(Parallel) 테스트
- 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트 기법
테스트 종류에 따른 분류( 명구경 )
1. 명세 기반 테스트
- 요구사항 명세서를 기반으로 테스트 케이스 선정
- 동등 분할, 경계 값 분석, 결정 테이블, 상태 전이, 유스케이스, 분류트리, 페어와이즈, 직교분할 테스트
2. 구조 기반 테스트
- 내부 논리 흐름에 따라 테스트 케이스 작성, 확인
- 제어구조 테스트, 루프 테스트
- 구문 기반, 결정 기반, 조건 기반, 조건/결정 기반, 변경조건/결정 기반, 다중조건 기반 커버리지 테스트
3. 경험 기반 테스트
- 테스터의 경험을 토대로 한, 직관과 기술 능력을 기반으로 수행하는 테스트
- 탐색적, 오류추정, 체크리스트, 특성 테스트
테스트 케이스
테스트 케이스 개념
- 특정 요구 사항에 준수하는 지를 확인하기 위해 개발된 입력값, 실행 조건, 예상된 결과의 집합
테스트 케이스 작성 절차
- 테스트 케이스의 정확성, 재사용성, 간결성 보장을 위해 아래의 절차에 따라 작성
1. 테스트 계획 검토 및 검토 자료 확보
2. 위험 평가 및 우선순위 결정
3. 테스트 요구사항 정의
4. 테스트 구조 설계 및 테스트 방법 결정
5. 테스트 케이스 정의
6. 테스트 케이스 타당성 확인 및 유지보수
테스트 케이스 필요 항목
테스트 케이스 작성은 공통 작성 항목 요소와 개별 테스트 케이스 항목 요소로 나누어 작성한다.
■ 공통 작성 항목 요소
1. 테스트 단계명, 작성자, 승인자, 작성 일자, 문서 버전 식별
2. 대상 시스템 식별 - 개발 서버 또는 개발 시스템명 작성
3. 변경 여부 식별
4. 테스트 범위 식별
5. 테스트 조직 식별
■ 개별 테스트 케이스 항목 요소
1. 테스트 ID
2. 테스트 목적
3. 테스트할 기능 요약
4. 입력 데이터 작성
5. 기대 결과 작성
5. 테스트 환경 설정 - 사용할 물리적, 논리적 테스트 환경, 사용할 데이터, 결과 기록 서버 등의 내용을 작성
6. 전제 조건 설정 - 테스트 간의 종속성, 테스트 수행 전 싫애되어야 할 고려 사항 등
7. 성공 / 실패 기준 설정
8. 기타 요소를 식별하여 설정
테스트 오라클
테스트 오라클(Test Oracle)의 개념
- 테스트 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법
테스트 오라클 종류
-
'정보처리기사(자격증) > 애플리케이션 테스트 관리' 카테고리의 다른 글
애플리케이션 테스트 관리 - 애플리케이션 통합 테스트 (0) 2020.10.10 애플리케이션 테스트 관리 - 애플리케이션 테스트 케이스 작성 (0) 2020.10.09