애플리케이션 테스트 수행
단위 테스트(Unit Test)
- 개별적인 모듈울 테스트 / 구현 단계에서 각 모듈을 구현한 후 수행 / 테스트 베드 환경 필요
목(Mock) 객체 생성 프레임워크
- 객체 지향 프로그램에서는 컴포넌트 수행 시 테스트 되는 메서드가 다른 클래스의 객체에 의존한다
- 이런 경우 메서드를 고립화하여 테스트하는 것이 불가능하므로 독립적인 컴포넌트 테스트를 위해서는 스텁의 객체 지향 버전인 목 객체가 필요하다
- 목 객체는 개발자가 수작업으로 만들거나 목 객체 생성 프레임워크를 활용하여 생성할 수 있다
목 객체 유형
- 더미 객체 (Dummy): 테스트할 때 객체만 필요하고 해당 객체의 기능까지는 필요하지 않은 경우 사용
- 테스트 스텁 (Stub) : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구
- 테스트 드라이버 (Driver) : 테스트 대상 하위 모듈을 호출하고, 파라미터를 전달, 모듈 테스트 수행 후 결과 도출
- 테스트 스파이 (Spy) : 주로 테스트 대상 클래스와 협력하는 클래스로 가는 출력을 검증하는데 사용
- 가짜 객체 (Fake) : 실제 협력 클래스의 기능을 대체하여 할 경우 사용
통합 테스트
- 애플리케이션 통합 테스트는 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트 기법이다
통합 테스트의 분류
- 빅뱅 테스트 : 모든 모듈을 동시에 통합 후 테스트 / 드라이버·스텁 없이 실제 모듈로 테스트
- 하향식 통합 테스트 : 메인 제어 모듈로부터 아래 방향으로 제어의 경로를 따라 이동하면서 하향식으로 통합하는 테스트
'깊이-우선' 또는 '너비-우선' 방식으로 통합된다 / 모듈 및 모든 하위 컴포넌틀를 대신하여 더미 모듈인 테스트 스텁 개발
- 상향식 통합 테스트 : 애플리케이션 구조에서 최하위 레벨의 모듈 또는 컴포넌트로부터 위쪽 방향으로 제어의 경로를 따라 이동하면서 구축과 테스트를 수행 / 상위의 모듈에서 데이터의 입력과 출력을 확인하기 위한 더미 모듈인 드라이버 작성
- 샌드위치 통합 : 상향식 통합 테스트와 하향식 통합 테스트 방식을 결합한 테스트 방식이며, 큰 규모의 통합 테스트에서 사용하는 방식이다 / 병렬 테스트가 가능하고 시간 절약 가능 / 스텁과 드라이버의 필요성이 매우 높고 비용도 높음
테스트 자동화 도구
- 반복적인 테스트 작업을 스크립트 형태로 구현함으로써, 테스트 시간 단축과 인력 투입 비용을 최소화하는 효율적인 테스트 수행 방법
테스트 자동화 유형
- 정적 분석 도구 (Static Analysis Tools) : 만들어진 애플리케이션을 실행하지 않고 분석 / 코딩 표준, 코딩 스타일 등 남은 결함을 발견하기 위해 사용
- 테스트 실행 도구 (Test Execution Tools) : 작성된 스크립트를 실행 / 데이터 주도 접근 방식, 키워드 주도 접근 방식
- 성능 테스트 도구 (Performance Test Tools) : 처리량, 응답시간, 경과시간, 자원 사용률에 대한 가상의 사용자를 생성하고 테스트 수행
- 테스트 통제 도구 (Test Control Tools) : 테스트 관리, 형상 관리, 결함 추적·관리 도구
테스트 하네스
- Test Harness : 애플리케이션 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로, 테스트를 지원하기 위한 코드와 데이터를 말하며 , 단위 또는 모듈 테스트에 사용하기 위해 코드 개발자가 작성
테스트 하네스 구성요소
- 테스트 드라이버, 테스트 스텁
- 테스트 슈트 : 테스트 케이스의 집합
- 테스트 케이스 : 요구사항에 준수하는 지를 확인하기 위해 개발된 입력값, 실행 조건, 예상된 결과의 집합
- 테스트 시나리오 : 애플리케이션이 테스트 되어야 할 기능 및 특징, 테스트가 필요한 상황을 작성한 문서
- 테스트 스크립트 : 자동화된 테스트 실행 절차에 대한 명세
- 목 오브젝트 : 사용자의 행위를 조건부로 사전 입력해 두명, 그 상황에 예정된 행위 수행
결함 분석 방법
- 구체화(Specification) : 결함을 발생시킨 입력값, 테스트 절차, 환경을 명확히 파악
- 고립화 (Isolation) : 어떤 요소가 결함 발생에 영향을 미치는지 분석
- 일반화 : 결함 발생에 영향을 주는 요소를 일반화 시키는 방법
결함 생명주기
- 결함 등록, 검토, 할당, 수정, 확인, 재등록, 조치 보류
결함 추이 분석
- 결함 관리 측정 지표의 속성값 들을 분석하고, 향후 애플리케이션의 어떤 모듈 또는 컴포넌트에서 결함이 발생할지를 추정하는 작업
결함 추이분석의 유형
- 결함 분포 분석 : 각 APP 모듈 또는 컴포넌트의 특정 속성에 해당하는 결함의 수 측정해 분석
- 결함 추세 분석 : 테스트 진행 시간의 흐름에 따른 결함 수 측정해 분석
- 결함 에이징 분석 : 등록된 결함에 대해 특정한 결함 상태의 지속 시간을 측정해 분석
결함 심각도별 분류 - 치주 보경단
- 치명적(Critical) 결함 : 기능이나 제품의 테스트 완전히 방해, 데이터 손실, 시스템 충돌
- 주요(Major) 결함 : 기능이 기대와 다르게 동작
- 보통(Normal) 결함 : 일부 기능 부자연스러움, 사소한 기능 오작동
- 경미한(Minor) 결함 : 사용상의 불편함 유발, UI 잘림
- 단순(Simple) 결함 : 사소한 버그, 미관상 좋지 않음
결함 우선순위
- 발생한 결함이 얼마나 빠르게 처리되어야 하는지
- 결정적 - 높음 - 보통 - 낮음
'IT 자격증 > 정보처리기사 실기' 카테고리의 다른 글
[정보처리기사 실기] 08. 응용 SW 기초 기술 활용 - 운영체제의 특징 (1) | 2022.10.11 |
---|---|
[정보처리기사 실기] 07. 애플리케이션 테스트 관리 - 애플리케이션 성능 관리 (1) | 2022.10.11 |
[정보처리기사 실기] 07. 애플리케이션 테스트 관리 - 애플리케이션 테스트 케이스 설계 (0) | 2022.10.11 |
[정보처리기사 실기] 06. 소프트웨어 개발 보안 구축 - SW 개발 보안 구현 (0) | 2022.10.08 |
[정보처리기사 실기] 06. 소프트웨어 개발 보안 구축 - SW 개발 보안 설계 (0) | 2022.10.08 |