단위 테스트
- 개별적인 모듈이나 컴포넌트에 대한 테스트
: 모듈의 단독 수행을 위한 테스트 배드 필요
Mock 객체 생성 프레임워크
- Mock
: stub의 객체버전
: 수작업 혹은 목 객체 생성 프레임워크를 이용하여 생성
- 목 객체 유형
ㆍ더미 객체 : 객체만 필요한 경우에 사용 / 예외 수행
ㆍ테스트 스텁 : 타 모듈의 기능을 단순히 수행하는 도구
ㆍ테스트 드라이버 : 테스트 대상 하위 모듈 호출, 파라미터 전달, 결과 도출
ㆍ테스트 스파이 : 테스트 대상 클래스와 협력하는 클래스로의 출력 검증
ㆍ가짜 객체 : 실제 협력 클래스의 기능을 대체할 경우 사용
통합 테스트
- 각 모듈간 인터페이스 관련 오류 및 결함 도출
- 하향식 통합 테스트
: 스텁 (더미 모듈)
- 상향식 통합 테스트
: 드라이버 (더미 모듈)
샌드위치 통합
- 상향식 통합 테스트 + 하향식 통합 테스트
빅뱅 테스트
- 모든 모듈을 동시에 통합 후 테스트 수행
: 드라이버나 스텁 없이 실제 모듈을 통한 테스트
테스트 자동화 도구
- 반복적인 테스트 작업을 테스트 형태로 구현하는 도구
- 유형
ㆍ정적 분석 도구
: 만들어진 애플리케이션을 실행하지 않고 분석
: 코딩 표준, 코딩 스타일, 코드 복잡도 등을 분석
ㆍ테스트 실행 도구
: 테스트를 위해 작성된 스크립트를 실행
: 데이터 주도 접근 방식 / 키워드 주도 접근 방식
ㆍ성능 테스트 도구
: 애플리케이션의 처리량, 응답시간 등에 대해 가상의 사용자를 생성하고 성능 목표 달성 여부 확인
ㆍ테스트 통제 도구
: 테스트 계획 및 관리 / 결함 추적 및 관리
테스트 하네스 (Test Harness)
- 컴포넌트 및 모듈을 테스트 하는 환경의 일부분
- 구성요소
: 테스트 드라이버 / 스텁 / 슈트 / 케이스 / 스크립트 / 목 오브젝트
테스트 리포팅
- 테스트 결과 정리
: 테스트에 관한 모든 요소가 포함된 문서 작성
- 테스트 요약 문서
- 품질상태
: 테스트 성공률, 커버리지, 결함의 수, 결함의 중요도 등
- 테스트 결과서
: 결함과 관련한 사항을 중점으로 상세한 기록
- 테스트 실행절차 리뷰 및 평가
결함 관리 프로세스
- 결함 관리 계획
- 결함 기록
- 결함 검토
- 결함 수정
- 결함 재확인
- 결함 상태 추적 및 모니터링 활동
- 최종 결함 분석 및 보고서 작성
테스트 커버리지
- 주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준
- 유형
ㆍ기능 기반 커버리지
: 테스트 대상 애플리케이션의 전체기능을 모수로 설정하고 실제 테스트가 수행된 기능의 수 측정
ㆍ라인 커버리지
: 애플리케이션 전체 소스 코드의 라인 수를 모수로 테스트 시나리오가 수행한 코드 라인수 측정
ㆍ코드 커버리지
: 소스코드의 구문, 조건 등의 구조 코드 자체의 테스트 측정
결함의 분류
- 시스템 결함
: 비정상적인 종료 등 환경과 DB처리의 결함
- 기능 결합
: 요구사항 미반영, 불일치 등 기획, 설계, 업무 시나리오 단계의 결함
- GUI 결함
: UI 비일관성, 부정확한 커서 및 메시지 등 사용자 화면 설계의 결함
- 문서 결함
: 이해 관계자간의 의사소통과 기록이 원활하지 않을때의 결함
결함 심각도별 분류
- 치명적 (Critical)
: 기능이나 테스트를 완전히 방해하는 결함
: 데이터 손실, 시스템 충돌
- 주요 (Major)
: 기대와 많이 다른 작동, 기능 미작동
: 기능 장애
- 보통 (Normal)
: 제품이나 프로그램이 특정 기준에 불충족 / 전체에 영향을 주지 않는 일부 기능의 부자연스러움
: 사소한 기능 오작동
- 경미한 (Minor)
: 사용상의 불편함을 유발
: 표준 위반, UI 잘림
- 단순 (Simple)
: 사소한 버그 / 기능에 영향은 없으나 수정필요
결함 우선순위
- 결정적 (Critical)
: 전체적인 기능 미동작 수준
- 높음 (High)
: 다른 기능을 수행할 수 없는 수준
- 보통 (Medium)
: 올바르지 않은 메시지 출력의 수준
- 낮음 (Low)
: 디자인 혹은 UX 향상을 위한 요청
'Certification > 정보처리기사' 카테고리의 다른 글
운영체제 (0) | 2021.04.13 |
---|---|
애플리케이션 성능 개선 (0) | 2021.04.12 |
애플리케이션 테스트 케이스 설계 (0) | 2021.04.12 |
소프트웨어 개발 보안 구현 (0) | 2021.04.12 |
소프트웨어 개발 보안 설계 2 (0) | 2021.04.12 |