소프트웨어 테스트 편집하기
IT위키
편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
[[분류:소프트웨어 공학]] | [[분류:소프트웨어 공학]] | ||
;Software Test | ;Software Test | ||
==개요== | == 개요 == | ||
===정의=== | === 정의 === | ||
* 노출되지 않은 숨어있는 결함(Fault)을 찾기 위해 소프트웨어를 작동시키는 일련의 행위와 절차 | |||
*노출되지 않은 숨어있는 결함(Fault)을 찾기 위해 소프트웨어를 작동시키는 일련의 행위와 절차 | * 오류 발견을 목적으로 프로그램을 실행하여 품질을 평가하는 과정 | ||
*오류 발견을 목적으로 프로그램을 실행하여 품질을 평가하는 과정 | * 개발된 소프트웨어의 결함과 문제를 식별하고 품질을 평가하며 품질을 개선하기 위한 일련의 활동 | ||
*개발된 소프트웨어의 결함과 문제를 식별하고 품질을 평가하며 품질을 개선하기 위한 일련의 활동 | * 일반적으로 테스트 케이스에 따라 SW를 동적으로 실행시켜 예상결과치와 비교 분석 | ||
*일반적으로 테스트 케이스에 따라 SW를 동적으로 실행시켜 예상결과치와 비교 분석 | * SW의 동작과 성능, 안정성이 요구되는 수준을 만족하는지 확인하기 위한 결함을 발견하는 메커니즘 | ||
*SW의 동작과 성능, 안정성이 요구되는 수준을 만족하는지 확인하기 위한 결함을 발견하는 메커니즘 | |||
*프로그램의 잠재된 오류의 발견 | === 목적 === | ||
*기술적인 기능 및 성능의 확인 | * 프로그램의 잠재된 오류의 발견 | ||
*사용자 요구 만족도 향상 | * 기술적인 기능 및 성능의 확인 | ||
*제품 신뢰도 향상 | * 사용자 요구 만족도 향상 | ||
* 제품 신뢰도 향상 | |||
=== | === 테스트의 일반적인 원리 === | ||
{| class="wikitable" | {| class="wikitable" | ||
!원리 | ! 원리 | ||
!내용 | ! 내용 | ||
!원인 | ! 원인 | ||
|- | |- | ||
|결함 발견 | | 결함 발견 | ||
| | | | ||
*결함제거가 아닌 결함의 발견을 목적으로 함 | * 결함제거가 아닌 결함의 발견을 목적으로 함 | ||
| | | | ||
*Test 본연의 역할 | * Test 본연의 역할 | ||
|- | |- | ||
|불완전성 | | 불완전성 | ||
| | | | ||
*완벽한 테스팅은 불가능 | * 완벽한 테스팅은 불가능 | ||
*무한경로, 무한입력값, 무한타이밍 | * 무한경로, 무한입력값, 무한타이밍 | ||
| | | | ||
*자원의 한계 | * 자원의 한계 | ||
|- | |- | ||
|정황 의존성 | | 정황 의존성 | ||
| | | | ||
*테스트는 테스트 주변환경에 의한 영향을 받음 | * 테스트는 테스트 주변환경에 의한 영향을 받음 | ||
| | | | ||
*외부요소, 심리요소 | * 외부요소, 심리요소 | ||
|- | |- | ||
|초기 집중 | | 초기 집중 | ||
([[요르돈 법칙]]) | ([[요르돈 법칙]]) | ||
| | | | ||
*개발 설계 시 부터 테스트를 고려 | * 개발 설계 시 부터 테스트를 고려 | ||
*결함의 조기발견 및 재유입 방지 | * 결함의 조기발견 및 재유입 방지 | ||
| | | | ||
*품질비용 감소 | * 품질비용 감소 | ||
|- | |- | ||
|결함 집중 | | 결함 집중 | ||
| | | | ||
*결함의 80%는 20%코드에 집중 | * 결함의 80%는 20%코드에 집중 | ||
*결함이 높은 곳에 자원집중 | * 결함이 높은 곳에 자원집중 | ||
| | | | ||
*파레토 법칙 | * 파레토 법칙 | ||
|- | |- | ||
|살충제 페러독스 | | 살충제 페러독스 | ||
| | | | ||
*동일한 테스트 전략, 기법을 적용할 시 내성이 생김 | * 동일한 테스트 전략, 기법을 적용할 시 내성이 생김 | ||
| | | | ||
*테스터의 수동적 자세 | * 테스터의 수동적 자세 | ||
|- | |- | ||
|오류-부재 궤변 | | 오류-부재 궤변 | ||
| | | | ||
*결함을 모두 제거하였다고 품질이 우수하다고 볼 순 없음 | * 결함을 모두 제거하였다고 품질이 우수하다고 볼 순 없음 | ||
| | | | ||
*SW 요구사항 불만족 | * SW 요구사항 불만족 | ||
|} | |} | ||
*[[TMMi]] | == 참조 모델 == | ||
*[[ISO/IEC/IEEE 29119]] | * [[TMMi]] | ||
*[[확인과 검증|확인과 검증(V&V)]] | * [[ISO/IEC/IEEE 29119]] | ||
* [[확인과 검증|확인과 검증(V&V)]] | |||
==테스트 종류== | == 테스트 종류 == | ||
===단계별 구분=== | === 단계별 구분 === | ||
[[V 다이어그램]] | [[V 다이어그램]] | ||
[[파일:V다이어그램.jpg]] | [[파일:V다이어그램.jpg]] | ||
* 소프트웨어 개발 생명주기에 따라 대응되는 테스트를 표현한 다이어그램 | |||
*소프트웨어 개발 생명주기에 따라 대응되는 테스트를 표현한 다이어그램 | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!테스트!!세부 내용 | ! 테스트 !! 세부 내용 | ||
|- | |- | ||
|[[단위 테스트]] | | [[단위 테스트]] | ||
(Unit Test) | (Unit Test) | ||
|| | || | ||
*인터페이스 테스트 | * 인터페이스 테스트 | ||
*자료구조 테스트 | * 자료구조 테스트 | ||
*수행경로 테스트 | * 수행경로 테스트 | ||
* 예외처리 테스트 | |||
* 경계값 테스트 | |||
|- | |- | ||
|[[통합 테스트]] | | [[통합 테스트]] | ||
(Integration Test) | (Integration Test) | ||
|| | || | ||
*하향식 통합 | * 하향식 통합 | ||
*상향식 | * 상향식 통합 | ||
|- | |- | ||
|[[시스템 테스트]] | | [[시스템 테스트]] | ||
(System Test) | (System Test) | ||
|| | || | ||
*[[보안 테스트]] | * 회복 테스트 | ||
*민감도 테스트 | * [[보안 테스트]] | ||
*[[성능 테스트]] | * 강도 테스트 | ||
* 민감도 테스트 | |||
* [[성능 테스트]] | |||
|- | |- | ||
|[[인수 테스트]] | | [[인수 테스트]] | ||
(Acceptance Test) | (Acceptance Test) | ||
|| | || | ||
*알파 | * 알파 테스트 | ||
*베타 테스트 | * 베타 테스트 | ||
|- | |- | ||
|[[설치 테스트]] | | [[설치 테스트]] | ||
(Install Test) | (Install Test) | ||
|| | || | ||
*하드웨어 | * 하드웨어 구성 | ||
*파일시스템 구성 | * 소프트웨어 구성 | ||
*다른 소프트웨어와의 연계 | * 파일시스템 구성 | ||
* 다른 소프트웨어와의 연계 | |||
|} | |} | ||
===접근방법에 따른 구분=== | === 접근방법에 따른 구분 === | ||
==== | ==== 정적 테스트 ==== | ||
* [[정형 기술 검토]] | |||
==== 동적 테스트 ==== | |||
{| class="wikitable" | |||
! 구분 | |||
! [[화이트박스 테스트]] | |||
==== | ! [[블랙박스 테스트]] | ||
|- | |||
| 개념 | |||
| | |||
* 프로그램 내부 로직을 참조하면서 모든 경로를 테스트 | |||
* | | | ||
* | * 프로그램 외부명세(기능, I/F)로부터 직접 테스트 (Data, I/O 위주 테스트) | ||
* | |- | ||
* | | 특징 | ||
| | |||
* 구조 테스트- Logic-Driven 테스트- 모듈 테스트 | |||
| | |||
* | * 기능 테스트- Data-Driven 테스트- I/O-Driven 테스트 | ||
*[[ | |- | ||
*[[ | | 테스트기법 | ||
| | |||
* 조건 검사 | |||
* 루프 검사 | |||
| | |||
* [[동치 분할 테스트]] | |||
* [[경계값 분석테스트|경계값 분석]] 등 | |||
|- | |||
| 관점 | |||
| | |||
* 개발자 관점 | |||
| | |||
* 사용자 관점 | |||
*[[테스트 | |} | ||
*[[ | * [[블랙박스 테스트]] | ||
* [[화이트박스 테스트]] |