2. 소프트웨어 개발

 2.4 애플리케이션테스트 관리

 2.4.1 애플리케이션테스트 관리 능력 단위 정의

 2.4.2 애플리케이션 테스트케이스 설계


- 애플리케이션테스트 관리 능력 단위 정의

애플리케이션 테스트 관리란 요구사항대로 응용소프트웨어가 구현되었는지를 검증하기 위해서 테스트케이스를 작성하고 개발자 통합 테스트를 수행하여 애플리케이션의 성능을 개선하는 능력이다.

 

- 애플리케이션 테스트케이스 설계

 

1. 소프트웨어 테스트 개요

 

1.1 소프트웨어 테스트의 개념

 

1. 소프트웨어 테스팅이란?

소프트웨어 테스트랑 구현된 응용 애플리케이션이나 시스템이 사용자가 요구하는 기능의 동작과 성능, 사용성, 안정성 등을 만족하는지 확인하기 위하여 소프트웨어의 결함을 찾아내는 활동이다.

소프트웨어 테스트는 검사 혹은 확인 활동이라고도 한다.

검사 활동은 개발 결과가 원래의 요구사항을 만족하는지를 점검하는 활동을 의미한다.

 

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

테스트 프로세스 유형은 다양하다. 테스트 계획 수립 단계와 수행 단계, 그리고 결과 보고 단계에 따라 테스트 프로세스 유형은 달라진다.

계획 수립 단계에서는 테스트 계획 수립 프로세스와 테스트 시나리오 및 케이스 관리 프로세스가 있다.

테스트 수행 단계의 대표적인 프로세스는 테스트 환경 관리, 테스트 수행관리, 코드 커버리지 관리, 형상 및 배포 관리 프로세스가 있다.

테스트 결과 단계에서는 테스트 결과 검토  프로세스가 있다.

 

1.2 소프트웨어 테스트의 기본 원칙

 

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

테스팅은 소프트웨어의 잠재적인 결함을 줄일 수 있지만, 결함이 발견되지 않아도 결함이 없다고 증명할 수 없음을 나타낸다.

 

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

무한경로, 무한입력 값, 무한 시간이 소요되어 완벽하게 테스트할 수 없으므로 리스크 분석과 우선순위를 토대로 테스트에 집중할 것을 의미한다.

 

3. 테스팅은 개발 초기에 시작해야 한다.

애플리케이션 개발 단계에 테스트를 계획하고 SDLC의 각 단계에 맞춰 전략적으로 접근하는 것을 고려하라는 뜻이다.

 

4. 결합 집중

애플리케이션 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재한다는 의미이다.

 

5. 살충제 패러독스

동일한 테스트 케이스로 반복 실행하면 결함을 발견할 수 없으므로 주기적으로 테스트 케이스를 리뷰하고 개선해야 한다.

 

6. 테스팅은 정황에 의존한다.

정황과 비즈니스 도메인에 따라 테스트를 다르게 수행하여야 한다.

 

7. 오류-부재의 궤변

이 세상에 어떠한 소프트웨어도 오류가 완벽하게 해소된 제품을 만들어 낼 수 없음을 의미한다. 테스트는 오류를 100

% 없애는 것이 목적이 아니라 일정수준이하로 줄이는 것이 목표이다.

 

2. 테스트 케이스

 

2.1 테스트 케이스의 개념

특정한 프로그램의 일부분 또는 경로에 따라 수행하거나, 특정한 요구사항을 준수하는지 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과로 구성된 테스트 항목의 명세서를 말한다.

 

2.2 테스트 케이스의 작성 절차

테스트 케이스의 정확성, 재사용성, 간결성 보장을 위해 아래의 절차에 따라 작성한다.

 

1. 테스트 계획 검토 및 자료 확보

테스트 대상 프로젝트 범위와 접근 방법 이해를 위하여 테스트 계획을 재검토한다.

테스트 대상 시스템 자료와 정보를 확보하여, 시스템 요구사항과 기능 명세서를 검토한다.

 

 

2. 위험 평가 및 우선순위 결정

결함 해결에 있어 상대적 중요성을 지니며 테스트의 초점을 결정한다.

 

3. 테스트 요구사항 정의

시스템의 요구사항, 테스트 대상 재검토, 테스트할 특성,조건, 기능을 식별 및 분석한다.

 

4. 테스트 구조 설계 및 테스트 방법 결정

테스트 케이스의 일반적 형식을 결정하고, 테스트 케이스 분류 방법을 결정한다.

테스트 절차, 장비, 도구, 테스트 문서화 방법을 결정한다.

 

5. 테스트 케이스 정의

각 요구사항에 대해 테스트 케이스를 작성하고, 입력값, 실행조건, 예상 결과를 기술한다.

 

6. 테스트 케이스 타당성 확인 및 유지보수

기능 또는 환경 변화에 따라 테스트케이스를 갱신하고, 테스트 케이스의 유용성을 검토한다.

 

3. 테스트 오라클

 

3.1 테스트 오라클의 개념

테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법 및 활동을 말한다.

 

3.2 테스트 오라클의 유형

 

1. 참 오라클

모든 입력값에 대하여 기대하는 결과를 생성함으로써 발생된 오류를 모두 검출할 수 있는 오라클이다.

 

2. 샘플링 오라클

특정한 몇 개의 입력 값에 대해서만 기대하는 결과를 제공해주는 오라클이다.

 

3. 휴리스틱 오라클

샘플링 오라클을 개선한 오라클로, 특정 입력값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 휴리스틱으로 처리하는 오라클이다.

 

4. 일관성 검사 오라클

애플리케이션 변경이 있을 때 수행 전과 후의 결과 값이 동일한지를 확인하는 오라클이다.

 

3.3 테스트 오라클 적용 방안

참 오라클은 주로 항공기, 임베디드 발전소 소프트웨어 등 미션 크리티컬한 업무에 적용하고, 샘플링/추정 오라클은 일반, 업무용, 게임, 오락 등의 일반적인 업무에 적용한다.

 

4. 테스트 레벨

 

4.1 단위 테스트

구현된 단위 모듈의 기능 수행 여부를 판정하고 내부에 존재하는 논리적 오류를 검출한다.

 

4.2 통합 테스트

모듈 간의 인터페이스 연계를 검증하고 오류를 확인, 모듈 간의 상호 작용 및 연계동작이 제대로 기능하는지 점검한다.

 

4.3 시스템 테스트

단위, 통합 테스트 후 전체 시스템이 정상적으로 작동하는지 판정하는 기능을 점검한다.

 

4.4 인수 테스트

사용자 요구분석 명세서에 명시된 사항을 모두 충족하는지 판정하고 시스템이예성대로 동작하고 있는지 점검한다.

 

1. 알파 테스트

개발자의 장소에서 사용자가 개발자 앞에서 행해지며, 오류와 사용상의 문제점을 사용자와 개발자가 함께 확인하면서 검사하는 기법 즉 개발자 환경에서 테스트하는 기법

 

2. 베타 테스트

다수의 사용자를 제한하지 않은 환경에서 프로그램을 사용하게 하고 오류가 발견되면 개발자에게 통보하는 방식

즉 사용자 환경에서 테스트하는 기법

 

5. 테스트 시나리오

 

5.1 테스트 시나리오 개요

 

1. 테스트 시나리오란?

테스트 수행을 위한 여러 테스트 케이스의 집합으로서, 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서이다.

 

2. 테스트 시나리오 작성 시 유의점

테스트 항목을 하나의 시나리오에 모두 작성하지 않고, 시스템별, 모듈별, 항목별 테스트 시나리오를 분석하여 작성한다.

고객의 요구사항과 설계 문서 등을 토대로 테스트 시나리오를 작성한다.

각 테스트 항목은 식별자 번호, 순서 번호, 테스트 데이터, 테스트 케이스, 예상 결과, 확인등의 항목을 포함하여 작성한다.

 

5.2 테스트 시나리오 프로세스

 

1. 테스트 시나리오 관리 프로세스

테스트 실행을 하기 위해서는 테스트 시나리오를 만들어야 한다.

 

2. 테스트 시나리오 도출

테스트 시나리오는 업무 기반으로 도출하기 때문에 설계자는 업무 전문가가 많다.

테스트 시나리오는 업무 기반으로 도출한다.

업무 흐름에 따라서 시나리오를 스토리리텔링 하듯이 도출한다.

 

3. 테스트 케이스 도출

테스트 시나리오가 만들어 지면 이를 가지고 테스트 케이스를 도출한다.

테스트 케이스는 테스트 시나리오를 짧은 문장으로 나누어서 쉽게 테스트 할 수 있도록 만들 수행절차이다.

 

4. 테스트 케이스 검토 및 보완

테스트 케이스가 만들어 지면 품질관리자와 테스트 리더가 검토를 한다.

 

5. 테스트 케이스 피어리뷰

테스트 케이스 피어 리뷰는 테스트 케이스가 시나리오에 맞게 작성이 되었는지 검토한다.

사용자 요구사항을 테스트할 수 있게 작성이 되었는지 점검한다.

 

6. 테스트 케이스 업로드

테스트 케이스가 문제없이 만들어 졌으면 테스트 관리 시스템에 업로드한다.

 

6. 테스트 지식 체계

 

6.1 개념과 정의

전체 시리즈에 대한 가이드를 제공해주는 부분이다.

소프트웨어 테스팅 개념

조직과 프로젝트 관점에서의 소프트웨어 테스팅

소프트웨어 생명주기 모델에서의 일반적인 테스팅 프로세스

위험 기반 테스팅

테스트 서브 프로세스

 

6.2 테스트 프로세스

조직, 테스트 관리, 동적 테스트의 3가지 수준의 다계층 프로세스 모델을 설명한다.

다계층 프로세스 모델

조직의 테스트 프로세스

테스트 관리 프로세스

동적 테스트 프로세스

 

6.3 테스트 문서화

테스트 프로세스 단계별 산출물의 견본제스 및 작성방법을 설명한다.

조직의 테스트 프로세스 문서

테스트 관리 프로세스 문서

동적 테스트 프로세스 문서

 

6.4 테스트 기법

 

1. 화이트박스 실행 기법

소스코드를 보면서 소스코드의 실행을 변겨하면서 검사하는 기법

기본경로, 반복경로 검사, 제어구문 검사, 데이터 흐름 검사 등이 있음

 

2. 블랙박스 실행 기법

소스코드 참조없이 외부에 드러난 인터페이스만을 이용하여 검사하는 기법

동등분할, 경계값분석 기법, 원인효과 그래프 기법 및 결정트리 기법 등이 있음.

 

3. 동등분할 기법 

입력값의 범위를 유사한 특징을 갖는 동등 그룹으로 나누고, 각 그굷마다 대표 값을 선정하여 테스트케이스를 선정하는 기법

예를들어 100점 만점에 0~100점을 받을 수 있는 시험에 대해서 시험 점수를 입력하면 점수에 따라 A~F 까지 성적을 출력하는 테스트케이스를 선정한다고 가정한다.

즉 90점 이상 100점 이하면 A를 출력한다.

80~90 B

70~80 C

0~70 F 출력일때 동등분할 기법에 의해서 테스트 케이스를 선정한다면

4. 경계값분석 기법

경계값 분석은 등가 분할된 경계의 유효한 값과 경계에서 가장 가까운 유효하지않는 값을 테스트 데이터로 선택하여 컴포넌트나 시스템을 테스트하는 기법이다.

경계값 분석은 등가 분할 기법을 확장하여 등가 분할 내에 있는 임의의 값이 아닌 분할된 영역에 있는 값을 테스트 데이터로 이용하여 보다 많은 결함을 발견하는 테스트케이스를 작성하는 기법이다.

5. 원인 효과 그래프 기법

입력값을 원인으로, 효과를 출력값으로 정하고 이에 따른 원인 결과 그래프를 만들어서 테스트 케이스를 작성하는 기법

 

6. 결정트리 기법

입력값과 출력값을 트리형태로 만들어서 특정 입력값에 따라서 결정되는 출력 값이 정해지도록 만든 테스트 케이스 작성 기법 

 

7. 명세기반 기법

테스트 케이스를 프로그램 명세서를 기반으로 테스트 케이스를 선정하여 테스트하는 기법

동등 분할 기법, 경계값 분석, 결정 테이블 기법, 상태전이 테스트, 유즈케이스 테스트, 페어와이즈 테스트, 직교 배열 테스트 기법이 여기 속한다.

 

8. 경험기반 기법

프로그램 명세서와 같은 산출물 없이 테스터의 경험을 기반으로 테스트수행하는 기법

탐색적 테스트, 즉흥적 테스트, 분류 트리기법 등이 있다.

 

6.5 키워드 주도 테스팅

사전 정의된 키워드의 모음으로 테스트 케이스를 만드는 것이다.

테스트 단계에서 자연어 대신 키워드를 사용함으로써 테스트 케이스는 이해하기 쉽고 유지보수가 용이하다.

 

 

 

 

 

'자격증 > 정보처리기사' 카테고리의 다른 글

정보처리기사 22일차  (0) 2021.02.02
정보처리기사 21일차  (0) 2021.02.02
정보처리기사 19일차  (0) 2021.01.30
정보처리기사 18일차  (0) 2021.01.28
정보처리기사 17일차  (0) 2021.01.28

+ Recent posts