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