소프트웨어 테스트: Difference between revisions

From IT Wiki
No edit summary
Line 127: Line 127:


==== 동적 테스트 ====
==== 동적 테스트 ====
* '''[[블랙박스 테스트]]''': 조건 검사, 루프 검사, 기대값 분석, 데이터 흐름 검사
* '''소스 코드 열람에 따른 구분'''
* '''[[화이트박스 테스트]]''': 동치분할 검사, 경계값 분석, 오류 예측 검사, 비교 검사, 원인 효과 그래프
** '''[[블랙박스 테스트]]''': 조건 검사, 루프 검사, 기대값 분석, 데이터 흐름 검사
 
** '''[[화이트박스 테스트]]''': 동치분할 검사, 경계값 분석, 오류 예측 검사, 비교 검사, 원인 효과 그래프
=== 설계 기법에 따른 분류 ===
* '''설계 기법에 따른 분류'''
* [[명세 기반 테스트]]: 동치 분할, 경계값 분석, 상태 전이 모델
** '''[[명세 기반 테스트]]''': 동치 분할, 경계값 분석, 상태 전이 모델
* [[구조 기반 테스트]]: 제어흐름 테스트, 자료흐름 테스트
** '''[[구조 기반 테스트]]''': 제어흐름 테스트, 자료흐름 테스트
* [[경험 기반 테스트]]: 애드혹 테스트, 탐색적 테스트 등
** '''[[경험 기반 테스트]]''': 애드혹 테스트, 탐색적 테스트 등


=== 계획 정도에 따른 분류 ===
=== 계획 정도에 따른 분류 ===

Revision as of 21:54, 10 March 2020

Software Test

개요

정의

  • 노출되지 않은 숨어있는 결함(Fault)을 찾기 위해 소프트웨어를 작동시키는 일련의 행위와 절차
  • 오류 발견을 목적으로 프로그램을 실행하여 품질을 평가하는 과정
  • 개발된 소프트웨어의 결함과 문제를 식별하고 품질을 평가하며 품질을 개선하기 위한 일련의 활동
  • 일반적으로 테스트 케이스에 따라 SW를 동적으로 실행시켜 예상결과치와 비교 분석
  • SW의 동작과 성능, 안정성이 요구되는 수준을 만족하는지 확인하기 위한 결함을 발견하는 메커니즘

목적

  • 프로그램의 잠재된 오류의 발견
  • 기술적인 기능 및 성능의 확인
  • 사용자 요구 만족도 향상
  • 제품 신뢰도 향상

테스트의 일반적인 원리

원리 내용 원인
결함 발견
  • 결함제거가 아닌 결함의 발견을 목적으로 함
  • Test 본연의 역할
불완전성
  • 완벽한 테스팅은 불가능
  • 무한경로, 무한입력값, 무한타이밍
  • 자원의 한계
정황 의존성
  • 테스트는 테스트 주변환경에 의한 영향을 받음
  • 외부요소, 심리요소
초기 집중

(요르돈 법칙)

  • 개발 설계 시 부터 테스트를 고려
  • 결함의 조기발견 및 재유입 방지
  • 품질비용 감소
결함 집중
  • 결함의 80%는 20%코드에 집중
  • 결함이 높은 곳에 자원집중
  • 파레토 법칙
살충제 페러독스
  • 동일한 테스트 전략, 기법을 적용할 시 내성이 생김
  • 테스터의 수동적 자세
오류-부재 궤변
  • 결함을 모두 제거하였다고 품질이 우수하다고 볼 순 없음
  • SW 요구사항 불만족

참조 모델

테스트 종류

단계별 구분

V 다이어그램 V다이어그램.jpg

  • 소프트웨어 개발 생명주기에 따라 대응되는 테스트를 표현한 다이어그램
테스트 세부 내용
단위 테스트

(Unit Test)

  • 인터페이스 테스트
  • 자료구조 테스트
  • 수행경로 테스트
  • 예외처리 테스트
  • 경계값 테스트
통합 테스트

(Integration Test)

  • 하향식 통합
  • 상향식 통합
시스템 테스트

(System Test)

인수 테스트

(Acceptance Test)

  • 알파 테스트
  • 베타 테스트
설치 테스트

(Install Test)

  • 하드웨어 구성
  • 소프트웨어 구성
  • 파일시스템 구성
  • 다른 소프트웨어와의 연계

접근방법에 따른 구분

정적 테스트

동적 테스트

계획 정도에 따른 분류

같이 보기