본문 바로가기
정보처리기사

(정보처리기사)애플리케이션 테스트 관리

by 흥부와놀자 2020. 7. 11.

테스트 방식, 대상과 범위를 결정하여 테스트 케이스를 작성 및 시나리오를 정의하고 테스트 수행에 필요한 데이터를 준비하여 요구사항을 충족시키는지에 대한 테스트를 수행 하고 발견된 결함을 분석하여 개선조치 사항을 작성한다.

 

1. 애플리케이션 테스트 케이스 설계

- 소프트웨어 테스트의 원리

  - 테스팅은 결함이 존재함을 밝히는 활동이다.

  - 완벽한 테스팅은 불가능하다.

  - 조기 테스팅으로 시간과 비용을 절약할 수 있다.

  - 파레토의 원리, 결함집중(발견되는 대부분의 결함은 소수의 모듈에 집중되어 발생한다.)

  - 살충제 패러독스(테스트를 반복해서 실행 시 해당 테스트로는 결함을 발견할 수 없고 새로운 테스트케이스를 작성해      야 한다.)

  - 오류 부재의 개념(실제 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못할 수 도 있다.)

 

2. 애플리케이션 테스트의 분류

- 프로그램 실행 여부에 따라

 - 정적테스트 : 프로그램을 실행하지 않고 하는 테스트. 워크스루, 인스펙션, 코드검사

 - 동적테스트 : 프로그램을 실행하고 하는 테스트. 블랙박스 테스트, 화이트박스 테스트

- 테스트 기반에 따라

 - 명세기반테스트 : 요구사항 명세에 따라 테스트케이스 만들고 테스트. 동등분할, 경계값 분석(값의 경계에서 결함이 자주 발생)

 - 구조기반테스트 : 소프트웨어의 내부 논리 흐름에 따라 테스트 케이스 만들고 테스트. 구문기반, 조건기반

 - 경험기반테스트 : 테스터의 경험에 기반한 테스트. 에러추정테스트

- 시각에 따라

 - 검증테스트 : 개발자의 시각에서 제품이 명세서 대로 완성 돼었는지를 테스트

 - 확인테스트 : 사용자의 시각에서 제품의 결과를 테스트하는것으로 사용자입장에서 정상동작 되는지 확인하는 테스트

- 목적에 따라

 - 회복테스트, 안전 테스트, 강도 테스트, 성능 테스트, 회귀 테스트(마지막에 한번더 확인), 병행 테스트(기존꺼와 비교)   가 있다.

 

3. 화이트 박스 테스트와 블랙 박스 테스트

- 화이트 박스 테스트

 - 모든 경로와 분기점들을 테스트하는 기법이다. 내부의 논리가 다보여서 화이트 박스라는 이름을 갖는다.

 - 기초경로를 검사하거나 코드의 논리적 조건, 반복구조, 변수의 사용에 따라 테스트하는 종류가 있다.

 - 문장 검증기준, 분기검증 기준, 조건 검증 기준 등의 검증기준이 있다. 

- 블랙박스 테스트

 -  내부의 논리경로는 가린채로 실제 기능이 동작하는지를 중점으로 테스트하는 기법이다.

 - 사용자의 요구사항 명세를 보면서 테스트하며 입출력되는 인터페이스에서 실시된다.

 - 분할검사, 경계값 분석, 원인-효과 그래프 검사, 오류 예측 검사, 비교 검사 가 있다. 

 

4. 개발 단계에 따른 테스트

애플리케이션의 구현까지 끝나면 단계적으로 테스트를 진행한다.

1. 단위 테스트 -> 모듈이나 컴포넌트 단위로 하는 테스트. 구조기반과 명세기반 테스트가 있다.

2. 통합 테스트 -> 단위 테스트 완료 후 하나의 시스템으로 완성시키는 테스트

3. 시스템 테스트 -> 소프트웨어가 실제로 구동될 환경에서 하는 테스트 

4. 인수 테스트 -> 사용자가 직접하는 테스트.

 - 알파테스트 : 사용자가 개발자 앞에서 하는 테스트로 개발자가 통제한 환경에서 진행

 - 베타테스트 :  최종 사용자가 여러 사용자앞에서 하는 테스트. 통제되지 않은 환경에서 진행

 

5. 통합 테스트

통합 테스트는 빅뱅통합테스트, 하향식 통합 테스트, 상향식 통합 테스트가 있다.

- 하향식 통합 테스트

 위에서 아래로 모듈을 통합해가며 하는 테스트이며 테스트 초기부터 전체 구조를 볼 수 있다. 깊이우선통합법과 너비우선통합법이 있으며 만약 하위 모듈의 부재시 주요기능수행만 하는 STUB으로 대체 하여 테스트한다. 또한 마지막에 회귀테스를 실행해야 한다.

- 상향식 통합 테스트

 아래에서 위로 모듈을 통합하는 테스트이며 하위 모듈들을 클러스터로 결합한 후 입출력 확인을 위해 테스트 드라이버를 작성한다. 클러스터 단위로 테스트 후 드라이버를 실제 모듈로 대체 한다.

 

6. 테스트 오라클

테스트 결과가 올바른지 판단하기 위해 미리 정의된 참값을 대입해서 빅하는 기법

- 특징 : 모든 테스트에 적용할 수 없고 수학적 기법으로 구할 수 있으며 자동화 가능하다.

- 종류

 - 참 오라클 : 모든 테스트 케이스 입력값에 기대하는 결과를 제공

 - 샘플링 오라클 : 특정 입력값들에 대해서 기대하는 결과 제공

 - 추정 오라클 : 샘플링 오라클을 개선한것으로 특정 입력값 외엔 추정으로 처리한 오라클

 - 일관성 검사 오라클 : 애플리케이션의 변경이 있을때 테스트 케이스의 수행 전과 후의 결과 값이 동일한지 확인하는 오라클

 

7. 테스트 하네스

하네스는 벨트같은 뜻으로 테스트 하네스는 테스트에 필요한 도구를 뜻한다.

구성요소로는 테스트 드라이버, 테스트 스텁, 테스트 슈트(테스트 케이스 집합), 테스트 케이스, 테스트 스크립트, 목 오브젝트(사용조가 선정한 조건에 따라 수행하는 객체)가 있다.