320x100
320x100

소프트웨어 테스트 필요성

- 오류 발견 관점

 : 잠재된 오류를 발견하고 이를 수정

- 오류 예방 관점

 : 프로그램 실행전 동료 검토 등을 통해 사전 예방

- 품질 향상 관점

 : 반복적인 테스트를 거쳐 신뢰도 향상 및 품질보증

 

 

 

소프트웨어 테스트 원리

- 테스팅은 결함을 밝히는 것

- 완벽한 테스팅은 불가능

- 개발 초기에 테스팅 시작

- 결함집중

- 살충제 패러독스

 : 동일한 테스트 케이스에 의한 반복 테스트는 새로운 버그를 찾지 못함

- 테스팅은 정황에 의존적

 : 소프트웨어 성격에 맞게 테스트 실시

- 오류-부재의 궤변

 : 요구사항을 충족하지 못하면 결함이 없어도 품질이 높다고 볼 수 없음

 

 

 

소프트웨어 테스트 프로세스

1. 테스트 계획

2. 테스트 분석 및 디자인

3. 테스트 케이스 및 시나리오 작성

4. 테스트 수행

5. 테스트 결과 평가 및 리포팅

 

 

 

소프트웨어 테스트 산출물

- 테스트 계획서

 : 테스트 목적과 범위 등 테스트 수행을 계획한 문서

 

- 테스트 베이시스

 : 분석, 설계 단계의 논리적인 케이스로 테스트 설계를 위한 기준

 

- 테스트 케이스

 : 테스트를 위한 설계 산출물로써 설계된 값, 결과 등으로 구성된 명세서

 

- 테스트 슈트

 : 테스트 케이스를 실행환경에 따라 구분해놓은 테스트 케이스의 집합

 

- 테스트 시나리오

 : 애플리케이션의 테스트 되어야할 기능 및 특징, 테스트가 필요한 상황을 작성한 문서

 

- 테스트 스크립트

 : 테스트 케이스의 실행순서를 작성한 문서

 

- 테스트 결과서

 : 테스트 결과를 정리한 문서

 

 

 

화이트박스 테스트

- 응용 프로그램의 내부구조와 동작을 검사

 

- 유형

ㆍ구문 커버리지

  : 프로그램 내의 모든 명령문을 적어도 한번씩 수행

 

ㆍ결정 커버리지

  : 각 분기의 결정 포인트 내 전체 조건식이 적어도 한번은 참과 거짓의 결과를 수행

 

ㆍ조건 커버리지

  : 각 개별 조건식이 적어도 한번은 참과 거짓 결과가 되도록 수행 

 

ㆍ조건/결정 커버리지

  : 개별 조건식도 참 한번 거짓 한번 되도록 수행

 

ㆍ변경 조건/결정 커버리지

  : 개별 조건식이 다른 개별 조건식에 영향 받지 않고 전체 조건식에 독립적인 영향 주도록 수행

 

ㆍ다중 조건 커버리지

  : 결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장

 

ㆍ기본 경로 커버리지

  : 수행 가능한 모든 경로를 테스트

 

ㆍ제어 흐름 테스트

  : 프로그램 제어 구조를 그래프 형태로 나타내어 내부 로직 테스트

 

ㆍ데이터 흐름 테스트

  : 제어 흐름 그래프에 데이터 사용현황 추가한 그래프를 통해 테스트

 

 

 

블랙박스 테스트

- 외부 사용자의 요구사항 명세를 보면서 수행

 

- 유형

ㆍ동등분할 

  : 입력 데이터의 영역을 유사 도메인 별로 유효값/무효값을 그룹핑하여 대표 값 케이스 도출 

 

ㆍ경계값 분석 

  : 경계 값을 포함하여 테스트

 

ㆍ결정 테이블

  : 조건과 행위를 모두 조합하여 테스트

 

ㆍ상태전이

  : 이벤트에 의해 상태가 변화되는 경우의 수를 수행

 

ㆍ유스케이스 테스트

  : 프로세스 흐름을 기반으로 테스트 케이스를 명세화 하여 수행

 

ㆍ분류트리 테스트

  : SW일부 또는 전체를 트리구조로 분석 및 표현하여 테스트 케이스 설계

 

ㆍ페어와이즈

  : 데이터값들 간 최소 한번씩을 조합

 

ㆍ원인-결과 그래프

  : 그래프를 활용하여 입력 데이터 간 관계 및 출력에 미치는 영향 분석

 

ㆍ비교 테스트

  : 여러 버전의 프로그램에 같은 입력 값을 넣고 비교

 

 

 

테스트 시각에 따른 분류 

- 검증 (Verification)

 : 소프트웨어 개발 과정을 테스트

 : 개발자 혹은 시험자의 시각으로 명세화 된 기능의 수행 여부 확인

 

- 확인 (Validation)

 : 소프트웨어 결과를 테스트

 : 사용자 시각으로 올바른 소프트웨어가 개발 되었는지 확인

 

 

 

테스트 목적에 따른 분류

- 회복 테스트

 : 실패 유도 후 시스템의 정상 복귀 여부 테스트

 

- 안전 테스트

 : 소스코드 내 보안적 결함 점검

 

- 성능 테스트

 : 응답시간, 속도 등 점검

 

- 구조 테스트

 : 시스템 내부 논리 경로, 소스코드 복잡도 평가

 

- 회귀 테스트

 : 오류제거와 수정에 의해 유입된 오류 유무 확인

 

- 병행 테스트

 : 변경된 시스템과 기존 시스템 비교

 

 

 

성능테스트 상세 유형

- 부하 테스트 / 스트레스 테스트 / 스파이크 테스트 / 내구성 테스트

 

 

 

테스트 종류에 따른 분류

- 명세 기반 테스트 / 경험 기반 테스트 (블랙 박스)

- 구조 기반 테스트 (화이트 박스)

 

 

 

정적 테스트

- 리뷰

 : 관리 리뷰 / 기술 리뷰 / 인스펙션 / 워크스루 / 감사

- 정적분석

 : 코딩 표준 / 복잡도 측정 / 자료 흐름 분석

 

 

 

동적 테스트

- 화이트 박스 테스트 (구조 기반 테스트)

- 블랙 박스 테스트 (명세 기반 테스트)

 

 

 

테스트 오라클

- 테스트의 결과가 참인지 거짓인지를 판단하기 위해 사전에 정의된 참 값을 입력하여 비교

- 종류

ㆍ참 오라클

  : 모든 입력 값에 대하여 기대하는 결과를 생성함으로써 발생된 모든 오류 검출 가능

 

ㆍ샘플링 오라클

  : 특정한 값에 대해서만 기대 값 제공

 

ㆍ휴리스틱 오라클 

  : 특정 입력 값에 대해 올바른 결과 제공, 나머지 값에 대해서는 휴리스틱(추정) 값 제공

 

ㆍ일관성 검사 

  : 애플리케이션 변경이 있을때 수행 전과 후 비교 

 

 

 

테스트 레벨

- 함께 편셩되고 관리되는 테스트 활동의 그룹

 

- 종류

ㆍ단위 테스트

  : 요구사항에 대한 단위 모듈, 서브루틴 등 테스트

  : 자료구조 테스트 / 실행 경로 테스트 / 오류 처리테스트 / 인터페이스 테스트 

 

ㆍ통합 테스트

  : 단위 테스트를 통과한 모듈 사이의 인터페이스와 통합된 컴포넌트 간 상호작용 테스트

  : 빅뱅 테스트 / 샌드위치 테스트 / 상향식 테스트 / 하향식 테스트

 

ㆍ시스템 테스트

  : 통합된 단위 시스템의 기능이 정상적으로 수행되는지 검증

  : 기능ㆍ비기능 요구사항 테스트

 

ㆍ인수 테스트

  : 계약상의 요구사항이 만족되는지 확인

  : 계약 인수, 규정 인수, 사용자 인수, 운영상의 인수, 알파ㆍ베타 테스트

300x250
728x90