2022. 4. 24. 09:17ㆍ정보처리기사/실기
애플리케이션 테스트 케이스 작성
소프트웨어 테스트 이해
(1) 개념 : 개발된 시스템이 사용자가 요구하는 기능과 성능, 사용성, 안정성 등 만족하는지 확인하고 노출되지 않은 결함 발견
(2) 필요성 : 오류 발견 관점, 오류 예방 관점, 품질 향상 관점
(3) 기본 원칙
- 결함 존재 증명, 완벽 테스팅은 불가능, 초기 집중, 결함 집중, 살충제 패러독스, 정확 의존성, 오류 부재의 궤변
- 테스트 프로세스
- 테스트 계획 -> 분석 및 디자인 -> 케이스 및 시나리오 작성 -> 테스트 수행 -> 결과 평가 및 리포팅
- 산출물 : 테스트 계획서, 베이시스, 케이스, 슈트, 시나리오, 스크립트, 결과서
소프트웨어 테스트 유형
- 실행 여부, 상세 기법, 시각, 목적, 종류에 따라 분류
(1) 실행 여부에 따른 분류
- 정적 테스트 : 실행하지 않고 구조 분석해 논리 검증 : 리뷰, 정적 분석
- 동적 테스트 : 실행하는 방식으로 테스트해 결함 검출 : 화이트 박스, 블랙박스, 경험 기반 테스트
(2) 테스트 기법에 따른 분류 : 화이트박스, 블랙박스
- 화이트 박스 테스트 : 내부 구조와 동작 검사, 코드 분석과 프로그램 구조에 대한 지식 바탕, 가능성 모듈 검사
- 모든 문장 한 번 씩 실행 산출물 기능별로 적절한 제어 구조에 따라 선택, 반복 수행 논리적 경로 검사, 개발자가 추적할 수 있기에 동작의 유효성뿐 아니라 실행 과정도 확인
- 주로 구조 기반 테스트, 코드 기반 테스트, 로직 기반 테스트, 글래스 박스 테스트라고 불림
- 유형 : 구문 커버리지, 결정 커버리지, 조건 커버리지, 조건/결정 커버리지, 변경 조건/결정 커버리지, 다중 조건 커버리지, 기본 경로 커버리지, 제어 흐름 테스트, 데이터 흐름 테스트
- 블랙 박스 테스트 : 외부 사용자의 요구사항 명세를 보면서 수행, 특징 요구사항 등에 초점 맞춰 테스트, 내부 구조는 몰라, 명세 테스트
- 유형 : 동치,균등, 동등 분할 테스트, 경계값 분석 테스트, 결정 테이블 테스트, 상태 전이 테스트, 유스케이스 테스트, 분류 트리 테스트, 페어와이즈 테스트, 원인 결과 그래프 테스트, 비교 테스트
- 테스트 시각에 따른 분류
- 검증 : 개발 과정 테스트, 오바른 제품 생산하는지 검증, 개발 규격과 요구 충족 판단, 명세화된 기능 확인
- 확인 : 결과 테스트, 제대로 동작하는지, 최종 사요자 요구 또는 요구에 적합한지 판단, 올바른지 판다
- 테스트 목적에 따른 분류
- 회복 테스트, 안전 테스트, 성능 테스트(부하 테스트, 강도 테스트, 스파이크 테스트, 내구성 테스트), 구조 테스트, 회귀 테스트, 병행 테스트
- 테스트 종류에 따른 분류
- 명세 기반 테스트, 구조 기반 테스트, 경험 기반 테스트
정적 테스트
- 리뷰 : 산출물에 존재하는 결함 검출이나 점검을 전문가와 수행
- 프로세스 : IEEE1028-2008에서 정의한 경영진 준비 -> 리뷰 계획 -> 절차 개요 설명 -> 작업물 개요 설명 -> 개별 준비 -> 그룹 검토 -> 재작업 -> 후속 작업
- 유형
- 동료 검토 : 동료가 진행하는 리뷰로 요구사항 명세서 작성자가 요구사항 명세서 설명하고, 결함 발견
- 인스펙션 : 요구, 설계, 원시코드 등 다른 전문가나 팀이 문제 식별하고 해결 찾는 법, 개발 초기에 검사해야만 문제 발견
- 순서 : 계획 수립 -> 절차 및 작업물의 개요 설명 -> 준비 -> 검토 회의 -> 재작업 -> 후속 작업
- 워크 스루 : 검토 자료 회의 전 배포해서 사전 검토한 후 짧은 시간 회의, 가장 비형식적인 검토법, 결함 검출 뿐 아니라 교육의 지식 공유 위해 수행, 작성자는 기록자 역할도 담당, 직책별로 참여는 금지, 작성자가 권고 및 조치사항 기록, 마지막으로 재작업 및 후속 단계에 모든 조치 종결
- 정적 분석 : 수작업 중심, 도구 지원 받아 정적 테스트 수행, 결함을 검출하거나 복잡도 측정
- 유형
- 코딩 표준 : 코딩 표준 및 코딩 지침에 대한 준수 여부 검사 : LDRA, PRQA, PARASOFT
- 복잡도 측정 : 신뢰 척도 사용해 프로그램의 복잡도 측정 및 분석 검사, 순환 복잡도
- 자료 흐름 분석 : 흐름에 이상 존재 여부 분석
- 유형
동적 테스트
- 화이트박스 테스트(구조 기반 테스트) : 내구 구조와 동작 검사, 구조기반 코드기반 로직기반 글래스 박스 테스트라고 불림
- 기본 구문 : 제어 흐름 그래프는 프로그램 구조 효과적으로 나타냄, 기본 블록과 제어 흐름 구성 추출, 모든 경로 최소한 한 번은 테스트 방법, 경로가 많아 불가능, 대안으로 일부 경로만 테스트 하는 법으로 사용
- 테스트 커버리지 개념 : 수행 정도를 나타내는 값 완벽성 측정, 범위는 품질 측정 기준, 정확성과 신뢰성 향상, 수행된 정도, 100% 커버는 불가능, 코드로 작성된 부분만 측정 가능하다
- 기능 기반 커버리지 : 전체 기능 모수 설정, 수행된 기능 수 측정, 100% 달성 목표, 많은 화면 수 모수
- 라인 커버리지 : 전체 소스 코드 라인 수를 모수 라인 수 측정, 단위 테스트에서 라인 커버리지 척도
- 코드 커버리지 : 충분성 지표, 구조 코드 자체가 얼마나 테스트 되었나 측정, 테스트 커버리지
- 테스트 커러비리 구성: 구문, 결정, 조건, 결정 : 참 거짓에 대한 결정 포인트, 소스 코드 상 if, while, for, switch 결정 포인트, 결정 포인트 내에 있는 모든 조건문이고, 전체 조건식에 연산자 구분
- 구문 커버리지 : 모든 명령문을 적어도 하나 수행, 조건문 결과와 관계없이 구문 실행 개수 계산
- 구문 커버리지(%) = 테스트 케이스 집합에 의해 실행된 문장 수 / (전체 실행 가능 프로그램 문장 수) * 100
- 결정 커버리지 : 전체 조건식이 적어도 한 번은 참 거짓 결과 수행, 선택 또는 분기 커버리지라고 한다. -> 구문 커버리지에 포함 된다.
- 결정 커버리지 = 테스트 케이스 집합에 의해 실행된 결정의 결과 수 / 전체 프로그램 결과 * 100
- 조건 커버리지 : 결정 포인트 내의 개별 조건식이 적어도 한 번 참과 거짓의 결과가 되도록 수행
- 조건 커버리지 : 테스트 케이스 집합에 의해 실행된 조건의 결과 수 / 전체 프로그램 조건의 결과 수 * 100
- 조건/결정 커버리지 : 조건 커버리지와 결정 커버리지를 최소한의 조합으로 달성, 전체 조건식뿐 아니라 개별 조건식도 참 한 번 거짓 한 번 결과 수행
- 조건 결정 커버리지 = 테스트 케이스 집합에 의해 실행된 조건/결정의 결과수) / (전체 프로그램 조건/결과의 결과 수) * 100
- 변경 조건/결정 커버리지 : 다른 개별 조건식에 영향을 받지 않고, 전체 조건식의 결과에 독립적으로 영햐을 주도록 향상시키는 커버리지, 각 조건이 독립적으로 결정의 결과에 영향을 미쳐야 한다는 것
- 각 조건이 결정을 구성하는 다른 조건들과 무관하게 전체 결정의 평가에 영향을 미치는지 알아보기 위한 테스트 케이스 생성
- 변경 조건 결정 커버리지 : 테스트 케이스 집합에 의해 MC/DC를 만족하는 조건의 개수 ) / 총 조건의 개수 * 100
- 다중 조건 커버리지 : 모든 개별 조건식의 모든 가능한 조합을 100% 보장, 기본 조건식의 가능한 논리적인 조합이 적어도 한 번은 테스트되도록 도축, 문장 결정 조건 조건/결정 커버리지 포용
- 다중 조건 커버리지 : 테스트 케이스 집합에 의해 실행된 각 결정 조건들의 조합수 / 전체 프로그램 결정 조건들의 조합 수
- 기본 경로 커버리지 : 맥케이브 순환 복잡도 기반으로 계산
- 순환 복잡도 : 제어 흐름의 복잡한 정보를 정량적으로 표시, 선형적으로 독립적인 경로의 수
- 측정법 : 측정 방식은 제어 흐름에 의한 그래프를 통해 원시 코드의 회전수
- 계산식 : V(G) = E - N + 2 -> 복잡도는 노드와 간선 수로 계산, V(G) = P + 1 -> 복잡도는 조건 분기문수로 계산
- 개념 : 수행 가능한 모든 경로를 테스트, 식별해 테스트 데이터 생성하고 테스트, 경로 커버리지다, 순환복잡도 근거, 소프트웨어 복잡도에 대한 정략적 지표, 기본 경로 수는 순환복잡도와 같다
- 방법 : 테스트 수행한 기본 경로 비율 / 식별한 모든 기본 경로 수 * 100
- 제어 흐름 테스트 : 그래프 형태로 내부 로직 테스트, 제어 구조 충분히 커버 -> 경로 설정, 테스팅 완정성 가늠, 제어 흐름 그래프로 표시, 흐름에 따라 강도 조절
- 절차 : 테스트 입력 데이터 준비 -> 테스트 목표 설정 및 테스트 경로 선택 -> 테스트 실행
- 구문 커버리지 : 모든 명령문을 적어도 하나 수행, 조건문 결과와 관계없이 구문 실행 개수 계산
- 블랙박스 테스트(명세 기반 테스트) : 요구 명세 보면서 수행, 명세 테스트, 테스트 레벨에 적용
- 동등분할 테스트 : 입력 데이터 영역을 유사한 도메인별 유효값/무효값을 그룹핑 대푯값 케이스 도출, 동치 균등 동치클래스 분할 테스트라 불림
- 절차 : 사전 고려 -> 동일한 출력 결과 가지는 입력 조건 식별 -> 동등 클래스 분할 -> 동등 클래스의 대푯값 선정 -> 동등 클래스 분할을 통한 테스트 케이스 도출
- 경곗값 분석 테스트 : 오류 발생 확률이 높기에 경곗값 포함하여 케이스 설계, 최솟값 바로 위 최대치 바로 아래 등 극한 한계 테스트, 한계값 테스트, 경계는 클래스 간 경계 경계 바로위 바로 아래 값, 다수의 오류들이 입력 영역 경계에서 발생, 대부분 동등분할 테스트와 함께 사용
- 선택 기준 : 값의 범위, 몇 개의 값, 파일리스트 테이블과 같은 정렬된 집합 형태, 그 외
- 선택 방법 : 2-value : 경계에 있는 값, 바로 위 아래 중 하나, 3-value : 경계 있는 값, 경계 바로 위와 아래 값
- 결정 테이블 테스트 : 논리와 발생조건을 테이블 형태로 나열, 조건과 행위를 모두 조합, 시스템의 액션을 고려하여 테스트 케이스 도출, 복잡한 논리적 관계를 표현하기 좋고, 누락된 요구사항 검사에 용이
- 작성 방법
- 명 세등 분석해 시스템의 행동에 영향 주는 모든 조건 분석 -> 조건은 왼쪽 위 행동은 왼쪽 아래 위치하는 테이블 구성 -> 모든 조건의 조합을 나열하고, 행동 작성 -> 가능하지 못한 조건의 조합 배제 -> 결정표 축약할 수 있는지 파악 -> 결정표의 각 규칙이 최소한 한 번은 테스트 할 수 있도록 테스트 케이스 작성
- 작성 방법
- 상태 전이 테스트 : 대상 시스템이나 객체의 상태 구분, 이벤트에 의해 한 상태에 다른 상태로 전이 되는 경우의 수, 상태 전이도로 모델링 한 후 상태 전이도에서 테스트 케이스 도출, 시스템 외부에서 오는 일련의 이벤트들에 대해 시스템 상태가 어떻게 하나 반응 확인
- 유스케이스 테스트 : 시스템이 실제 사용되는 유스케이스 모델링, 명세화
- 분류 트리 테스트 : 소프트웨어 일부 또는 전체를 트리 구조로 분석 및 표현해 테스트 케이스 설계, 입력 및 동작을 다양한 기준으로 구분한 트리, 동등분할 영역을 구분하는 것과 유사, 동등분할 테스트 커버리지 측정 원리와 동일
- 페어와이즈 테스트 : 테스트 데이터 값들 간에 최소한 한 번 씩을 조합, 모든 조합에 비해 상대적 적은 양의 세트 구성, 적은 량의 테스트 세트 구성이 용이, 입력 변수 개수와 입력 가능 값이 많을수록 테스트 케이스 도출 복잡도가 높다.
- 동등분할 테스트 : 입력 데이터 영역을 유사한 도메인별 유효값/무효값을 그룹핑 대푯값 케이스 도출, 동치 균등 동치클래스 분할 테스트라 불림
- 경험 기반 테스트 : 테스트 경험을 토대로, 직관과 기술 능력을 기반으로 수행
- 탐색적 테스트 : 경험에 바탕 두고 탐색적 기능 수행, 휴리스틱한 능력 필요, 테스트 차터, 시간 제한, 노트, 회고
- 오류 추정 : 범할 수 잇는 실수 추정하고 이에 따른 결함이 검출되도록 테스트 케이스 설계 테스트
테스트 케이스
(1) 개념 : 특정 요구 준수하는지 확인하기위해 개발된 입력값, 실행 조건, 예상된 결과의 집합
(2) 작성 절차 : 정확성, 재사용성, 간결성 보장
- 테스트 계획 검토 및 자료 확보 -> 위험 평가 및 우선순위 결정 -> 테스트 요구사항 정의 -> 테스트 구조 설계 및 테스트 방법 결정 -> 테스트 케이스 정의 -> 테스트 케이스 타당성 확인 및 유지보수
(3) 필요항목
- 공통 작성 항목 요소 : 테스트 단계명 작성자 승인자 작성일자 문서버전 식별, 대상 시스템 식별, 변경 여부 식별, 테스트 범위 식별, 테스트 조직 식별
- 개별 테스트 케이스 항목 요소 : 테스트 아이디 작성, 테스트 목적 작성, 테스트할 기능 요약, 입력 데이터 작성, 기대 결과 작성, 테스트 환경 설정, 전제 조건 설정, 성공/실패 기준 설정, 기타 요소 식별하여 설정
(4) 테스트 케이스 구성요소
- 식별자, 테스트 항목, 입력 명세, 출력 명세, 환경 설정, 특수 절차 요구, 의존성 기술
테스트 오라클
(1) 개념 : 결과가 참인지 거짓인지 판단 사전에 정의된 참값 입력해 비교
(2) 종류 : 참 오라클, 샘플링 오라클, 휴리스틱 오라클, 일관성 검사 오라클
애플리케이션 테스트 시나리오 작성
테스트 레벨
(1) 개념 : 함께 편성되고 관리되는 테스트 활동 그룹, 책임과 연관, 테스트 레벨은 서로 독립
(2) 종류 : 개발 단계에 따라 분류, 테스트 레벨이라 함
- 단위 테스트 : 자료 구조 테스트, 실행 경로 테스트, 오류 처리 테스트, 인터페이스 테스트
- 구현이 진행되면서 수행, 최소 단위인 모듈이나 컴포넌트에 초점, 요구사항 기반 기능성 위주, 명세 기반과 구조 기반 테스트로 나눠지지만 주로 구조 기반 위주 수행
- 통합 테스트 : 빅뱅, 샌드위치, 상향식, 하향식 테스트
- 각 모듈 간의 인터페ㅣ스 관련 오류 및 결함을 찾아내기 위한 체계적인 기법
- 시스템 테스트 : 기능 비기능 요구사항 테스트
- 통합된 단위 시스템의 기능이 정상적으로 수행되는지 검증
- 기능적 요구사항 테스트 : 요구사항 명세서, 비즈니스 절차, 유스케이스등 명세 기반 블랙 박스 테스트
- 비기능적 요구사항 테스트 : 성능 테스트 회복 테스트, 보안 테스트, 내부 시스템 구조, 웹 내비, 화이트 박스 테스트
- 통합된 단위 시스템의 기능이 정상적으로 수행되는지 검증
- 인수 테스트 : 계약 인수, 규정 인수, 사용자 인수, 운영상의 인수, 알파 베타 테스트
- 최종 사용자와 업무 이해 관계자 등이 테스트 수행
- 사용자 인수 테스트, 운영상의 인수 테스트, 계약 인수 테스트, 규정 인수 테스트, 알파 테스트, 베타 테스트
테스트 시나리오
- 개념 : 여러 케이스 집합, 기술한 문서, 중요시된 요구사항이나 대안 흐름과 같은 테스트 항목 빠짐 없이 테스트
테스트 환경 구축
(1) 개념 : 실제 운영 시스템 정상적 구축
(2) 유형 : 하드웨어 기반 테스트 환경 구축, 소프트웨어 기반 테스트 환경 구축, 가상 시스템 기반의 테스트 환경 구축
(3) 테스트 데이터 : 개념, 필요성, 유형, 준비
(4) 조건 : 테스트 시작 조건, 테스트 종료 조건, 테스트 성공과 실패의 판단 기준
'정보처리기사 > 실기' 카테고리의 다른 글
[정보처리기사 실기] 10장 애플리케이션 테스트 관리 - 애플리케이션 성능 개선 (0) | 2022.04.26 |
---|---|
[정보처리기사 실기] 10장 애플리케이션 테스트 관리 - 애플리케이션 통합 테스트 (0) | 2022.04.26 |
[정보처리기사 실기] 9장 소프트웨어 개발 보안 구축 - 소프트웨어 개발 보안 구현 (0) | 2022.04.23 |
[정보처리기사 실기] 9장 소프트웨어 개발 보안 구축 - 소프트웨어 개발 보안 설계 (0) | 2022.04.23 |
[정보처리기사 실기] 8장 서버 프로그램 구현 - 서버와 배치 프로그램 구현 (0) | 2022.04.23 |