반응형
-
테스트 단계에 따른 분류
-
단위 테스트
- 개별적으로 테스트할 수 있는 소프트웨어 기능만을 따로 분리하여 기능을 검증
- 일반적으로 코드 접근을 허용하고, 디버깅 도구의 지원 하에 실행하며, 코드를 직접 작성한 개발자가 수행
-
모듈은 독립된 프로그램이 아니기 때문에 테스트 드라이버(Driver) 또는 스터브(Stub)가 필요
- Driver : 테스트를 위한 제어 프로그램으로, 가상의 주 프로그램 기능
- Stub : 테스트를 위한 종속 프로그램으로, 가상의 부 프로그램 기능
-
단위 테스트의 유형
-
인터페이스 테스트다른 모듈과의 데이터 인터페이스에 대한 테스트
-
자료구조 테스트모듈 내의 자료 구조상 오류가 없는가를 테스트
-
수행 경로 테스트구조 및 루프 테스트 등에 의한 논리 결로 테스트
-
오류 처리 테스트각종 오류들이 모듈에 의해 적절하게 처리되는가를 테스트
-
경계 테스트오류가 발생하기 쉬운 경계 값들을 테스트 케이스를 만들어 테스트
-
-
통합 테스트
- 소프트웨어 컴포넌트 간의 상호 작용을 검증하는 프로세스
- 소프트웨어 엔지니어가 하위 수준 관점을 배제하고 통합하고 있는 레벨의 관점, 즉 컴포넌트 간, 서브시스템 간의 통합에 집중해야 하는 활동
-
통합 테스트의 유형
-
하향식(Top-down) 통합 테스트
- 주요 제어 모듈은 테스트 드라이버로 사용되고, 스터브는 주요 제어 모듈에서 직접 종속되는 모든 모듈로 교체
- 깊이 우선이나 넓이 우선의 선택적 통합 접근법을 정하고, 하위 스터브는 실제 컴포넌트들로 한 번에 하나씩 대체
- 테스트들은 각 컴포넌트가 통합됨으로써 수행
- 각 테스트가 완성되면 다른 스터브들이 실제 컴포넌트들로 대체
-
상향식(Bottom-up) 통합 테스트
- 하위 수준의 컴포넌트들은 특별한 소프트웨어 보조 기능을 수행하는 클러스터(혹은 build)로 결합
- 입.출력 테스트 케이스를 통합하기 위해 드라이버가 사용
- 클러스터가 테스트 됨
- 드라이버는 지워지고 클러스터들은 프로그램 구조의 상위로 이동하여 결합됨
-
혼합식(Snadwich) 통합 테스트
- 하향식 통합 전략과 상향식 통합 전략을 절충한 방식
- 우선적으로 통합을 시도할 중요 모듈들을 선정한 후 그 모듈을 중심으로 통합
-
비점진적 테스트(Big Bang)
- 모든 모듈을 한꺼번에 통합하여 테스트
- 단위 테스트에 많은 시간이 필요
- 시스템의 중요 부분과 부수적인 부분을 구별하지 않음
- 일정 계획에 융통성이 없음
- 오류가 있는 경우 어떤 모듈이 변경되어야 하는지 파악하기 어려움
-
-
시스템 테스트
- 전체 시스템의 수행 결과를 테스트
-
시스템 테스트 시 주요 테스트 대상
- 시스템의 비기능적 요구 사항 : 시스템의 안전성, 속도, 정확도, 신뢰도 등
-
외부 인터페이스 : 다른 응용 프로그램, 하드웨어, 운영 환경에 대한 외부 인터페이스
-
-
테스트 목적에 따른 분류
-
인수(Acceptance) / 인증(Qualification) 테스트
- 시스템이 자신들의 요구 사항을 만족시키는지에 대해 고객들이 시스템 수행 결과를 검사
- 시스템 개발자도 인수/인증 테스트 활동에 포함 가능
-
설치(Installation) 테스트
- 소프트웨어 인수 테스트를 끝낸 후 목표 환경에 설치하여 소프트웨어를 검증
- 하드웨어 구성 요구 사항에 따라 다시 수행되는 시스템 테스트로 볼 수 있으며, 설치 결과 및 설치 과정도 검증 가능함.
-
알파 테스트와 베타 테스트
- 소프트웨어를 출시하기 전에 소규모로 대표되는 잠재적 사용자들에게 사내(알파 테스트) 또는 외부(베타 테스트)에서 시범 사용하여 제품의 문제점을 파악
- 알파 테스트와 베타 테스트의 비교
-
구분 | 알파 테스트 | 베타 테스트 |
테스트 주체 | 사용자 | 사용자 |
테스트 환경 |
|
|
개발자 참여 | 부분적 참여 | 불참 |
-
적합성(Conformance) 테스트 / 기능 테스트/ 정확도(Correctness) 테스트
- 테스트하는 소프트웨어에 대해 관찰된 결과가 명세를 따르고 있는지의 여부 확인
-
회귀(Regression) 테스트
- 이미 테스트를 통과한 소프트웨어가 특정 수정 후에도 여전히 테스트를 통과한다는 것을 검증
-
성능(Performance) 테스트
- 소프트웨어가 지정된 성능적 요구 사항과 응답 시간을 만족했는지 확인
-
스트레스(Stress) 테스트
- 최대 설계 또는 그 이상의 부하로 소프트웨어를 테스트 하는 것
-
복구(Recovery) 테스트
- 자체 결함, 하드웨어 고장, 데이터의 오류 등이 발생한 후 소프트웨어가 새로이 시작할 수 있는지를 검증
- 복구가 자동적으로 실행되면 재초기화, Check Point 절차, 데이터 복구, 재착수의 정확성을 평가하는 것이 가능
-
사용 용이성(Usability) 테스트
- 최종 사용자가 사용자 매뉴얼을 포함해 얼마나 쉽게 소프트웨어를 배우고 사용할 수 있는지를 검증
- 소프트웨어가 사용자 업무를 지원할 때 얼마나 효과적인가를 검증
- 사용자 오류로부터 복원하는 능력이 있는지 등을 평가
-
백 투 백(Back-to-Back) 테스트
- 소프트웨어 제품의 두 가지 구현 버전을 놓고 일회성 테스트 집합을 시행한 후 그 결과들을 비교하여 오류를 도출
-
형상(Configuration) 테스트
-
소프트웨어가 제각기 다른 사용자 환경을 위해 만들어진 경우, 형상 테스트는 지정된 다양한 형상에 대하여 소프트웨어를 분석하기 위해 실시
-
※ 성능테스트와 스트레스 테스트는 시스템의 비기능적 요구 사항에서 명시된 사항에 대해 검증하는 활동
반응형
'밥벌이 > 소프트웨어 공학' 카테고리의 다른 글
SLA(Service Level Agreement) (0) | 2010.12.30 |
---|---|
소프트웨어 테스트의 개요 (0) | 2010.12.27 |
소프트웨어 테스트 기법 (0) | 2010.12.27 |
소프트웨어 테스트 프로세스 (0) | 2010.12.27 |
소프트웨어 설계 개요 (0) | 2010.11.25 |