Thief of Wealth
article thumbnail
Published 2020. 7. 8. 17:42
10. 테스트 실행 개발/QA

테스트 실행

- 테스트 케이스 명세서에 명시된 테스트 환경을 준비하고 실제 테스트를 수행하여 결과를 획득하는 활동

- 테스트 수행에 앞서 테스트에 사용될 테스트 데이터 준비

- 테스트 대상이 구동될 테스트 환경 준비

- 테스트 환경을 실 운영 환경과 최대한 동일하게 구축하면 좋다.

- 테스트 실행 결과는 테스트 로그, 테스트 결함 보고서, 테스트 요약 보고서 형태로 기록한다.

 

테스트 실행 산출물

- 테스트 로그

: 수행된 테스트의 반복이 가능하도록 테스트 과정을 기록

- 테스트 결함 보고서 (테스트 사건 보고서)

: 태스트 실행과정 중에서 발생한 오류를 기록

: 오류 발생시간, 테스트 절차, 예상결과 및 실제결과, 영향도를 기록

- 테스트 요약 보고서

: 테스트 종료 시 테스트 활동에 대한 전반에 대한내용을 요약 기록

 

즉,

테스트 계획 : 테스트 계획서

테스트 분석 및 설계 : 테스트 설계 명세서, 테스트 케이스 명세서, 테스트 절차서

테스트 실행: 테스트로그, 테스트 사건 보고서,  테스트 요약보고서

가 작성된다.

 

테스트 실행절차

1. 테스트 케이스 선택

2. 테스트 케이스 실행

3. 결함 분석

4. 결함 추적 및 기록

5. 테스트 결과 및 활동 요약.

 

1. 테스트 케이스 선택

: 회귀테스트 케이스 선택 : 테스트 대상이 영향 받을 수 있는 부분이 큰 TC부터 실행

: 스모크 테스트 케이스 선택 : 시스템 주요 단위 모듈이나 시스템 모듈의 주요 기능테스트, 테스트를 할만한지 체크하는 테스트

: 위험성 분석 기반 테스트 케이스 선택 : 발생가능성, 심각성, 긴급성을 기준으로 높은 위험성을 갖는 TC부터 실행

: 테스트 완료 기준에 따른 테스트 케이스 선택 : 테스트는 완료기준이 만족할때까지 계속 진행.

 

ex) 테스트 완료 기준에 따른 선택에 대한예제

테스트완료기준 테스트케이스 선택
90%이상의 모듈이 통과되어야 한다. 아직 통과되지 않은 모듈에 대한 테스트케이스를 선택
tc-10, tc-20 테스트 케이스는 통과되어야 한다. TC-10, TC-20 번을 선택한다.
95%의 문장 커버리지가 충족되어야 한다. 문장 커버리지를 증가시킬 수 있는 테스트 케이스 선택한다.
심각한 오류가 존재하지 않아야 한다. 심각한 오류와 관련된 테스트 케이스를 선택한다.

 

 

2. 테스트 케이스 실행

: 테스트 수행 주체가 테스트 케이스 선택 방법에 따라 테스트케이스를 선택하고 사전에 정의된 테스트 환경을 구축하여 주어진 테스트 절차에 따라 테스트 케이스를 실행한다.

ex) 테스트 수준별 테스트 수행 주체

 

수준 개발자 테스터 사용자
단위 테스트  
통합 테스트  
시스템 테스트
인수 테스트  

 

* 테스트 로그

: 테스트 실행시에 실제로 수행한 작업과 발생한 오류들을 시간대 별로 시록한 문서.

: 필요시 테스트를 동일하게 재연할 수 있도록 작성한다.

 

3. 결함 분석 (예상과 일치하지 않는 경우)

: 테스트 케이스를 실행한 후 발견된 결함을 분석하여 테스트 결함 보고서 (테스트 사건 보고서)를 작성한다.

: 결함의 발생 상황이 구체적으로 명확히 정의되어야만 결함이 개발자에게 통보되었을때 효율적으로 수정가능

 

* 결함 분석 방법

1) 구체화 (Specification)

: 결함의 원인을 찾기 위해 결함을 발생시킨 입력값, 테스트 절차, 테스트 환경을 명확히 파악하는 것.

2) 고립화 (Isolcation)

: 입력값, 테스트 절차, 테스트 환경 중에 어떤 요소가 결함 발생에 영향을 미치는지 분석하는 것.

3) 일반화 (Generalization)

: 결함 발생에 영향을 주는 요소를 최대한 일반화 시키는 것.

 

다음 사진은 시험에 나왔던 사진이므로 숙지할것

 

4. 결함 추적 및 기록

1) 개발자는 sw를 개발 후 테스터에게 전달

2) 테스터는 테스트 계획 분석 및 설계방법에 따라 테스트 케이스를 생성하고 실행

3) 테스트 케이스 실행 중 결함을 검출하고 검출된 결함을 개발자에게 전달 및 수정 요청

4) 개발자는 결함을 수정하고 다시 테스터에게 전달.

 

* 결함 처리 유형

Fixed : 요청된 결함을 수정완료

Duplicated : 기존의 다른 결함과 중복되는 경우

Won't fix : 수정이 필요할 정도로 중요하거나 긴급한 것이 아니라서 수정을 원하지 않는 경우

Invalid : 테스트 케이스에 문제가 있는 경우

 

- 테스트 결함 보고서

: 테스트 수행 시 발생한 사건을 기록한 문서

: 입력 데이터, 예상결과, 실제결과와 적용한테스트 케이스 절차 및 테스트 환경등을 기술

: 오류 이해 및 재현이 가능하도록 상세히 기록

: 해당 오류가 테스트 활동에 미칠 수 있는 영향을 기록

: 오류 발생 가능성, 심각성, 긴급성 등을 바탕으로 오류의 위험도 기록

 

- 테스트 종료 판단.

: 테스트 수행결과, 잔여 결함 수주느 고객의 승인 여부 등으로 결정.

* 테스트 케이스 기반 방법

: 특정 테스트 케이스의 통과 및 테스트 케이스의 통과 비율로 종료여부 한다.

* 커버리지 기반 방법

: 요구사항 커버리지를 통해 전체 요구사항중에 테스트를 통해 확인된 요구사항의 비율을 따져서 종료여부를 판단한다.

* 결함 기반 방법

: 발견된 결함의 수, 발견된 결함의 유형에 따라서 종료여부를 판단한다.

 

 

- 테스트 수준별 종료기준 예시

단계 종료 기준
단위 테스트 * 단위 테스트 수행 결과 합격률 90%이상이면
* 잔여 결함의 수준 중 1,2 결함이 모두 수정이면
* 고객이 종료 승인하면
통합 테스트 * 통합 테스트 수행 결과 합격률 90%이상이면
* 잔여 결함의 수준 중 1,2,3 결함이 모두 수정이면
* 고객이 종료 승인하면
시스템 테스트 * 기능 테스트 수행결과 합격률 95%이상이면
* 성능 기준 미달 시 원인 파악 및 조치 후 성능 테스트 기준통과하면
* 보안 테스트 결과 보안 취약성 100% 수정되면
* 고객이 종료 승인하면
인수 테스트 * 인수 테스트 수행 결과 합격률이 100%이면
* 고객이 종료 승인하면

 

- 기준 유형별 테스트 종료 기준 예시

기준 유형 예시
테스트 케이스 기반 기준 * 90% TC가 통과되어야 한다.
* TC1번과 2번은 반드시 통과되어야 한다.
테스트 적합성 커버리지 기반 기준 * 95%의 문장 커버리지를 충족시켜야 한다.
* 90%의 분기 커버리지를 충족시켜야 한다.
결함 기반 기준 * 발견된 결함중 'A'결함은 반드시 없어져야 한다.
* 신뢰성 결함은 반드시 없어야 한다.

 

 

 

5) 테스트 결과 및 활동 요약

- 테스트 요약 보고서

: 테스트 수행에 대한 종합적인 결과를 기록하는 문서

: 일반적으로 테스트 계획서 별로 작성한다.

=> 인수테스트하면 인수테스트 요약보고서가 나오고 시스템테스트를 하면 시스템 테스트 요약 보고서가 나와야한다는 뜻

 

* 테스트에 대한 전반적인 결과 요약, 테스트 환경, 대상, 관련 테스트 문서를 기술해야함.

* 테스트 계획 대비 변동사항 기술

* 수행된 테스트가 계획된 적합성 기준을 충족했는지 평가 내용 기술.

* 테스트 케이스 실행결과 요약 기술

* 테스트 대상에 대한 테스트 통과 여부 기술

* 테스트 주요 작업 및 작업에 소요된 노력을 기술.

 

- 테스트 모니터링 및 통제

: 테스트 설계와 실행이 진행되는 동안 수립된 테스트 계획에 준하여 테스트가 수행되고 있는지 모니터링.

: 필요한 경우, 테스트 수행에 대한 통제가 필요하다.

: 테스트 관리자는 정기적으로 테스트 활동 진행을 점검하기 위해 검토회의를 개최하고 테스트 진행상태를 확인한다.

: 검토회의에서는 수립된 일정 계획과 실제 테스트 상태 및 테스트 진행사항을 비교한다.

: 실제 테스트 진행 사항이 계획과 다를 시 원인 및 파급효과를 분석한다.

: 테스트 관리자는 원인 분석 결과에 따라 테스트 계획 수정 및 테스트 활동보완등을 통해 테스트 진행을 통제한다.

 

- 테스트 진척관리

: 테스트 일정 및 결함관리를 통해 테스트 계획 대비 활동이 정상적으로 수행되는지 모니터링 및 조정

: 진척관리 결과에 대한 주기적인 보고일정 수립

 

관리 항목 내용 측정 방법
테스트 수행 시간 및 진행현황 테스트 계획대비 진행의 지연 및 단축 정도를 시간단위로 측정한다. 테스트 활동 시간의 합
결함 수정률 발견된 결함 개수 대비 수정된 결함이 개수 수정된결함/발견된결함 *  100
테스트 케이스 실행율 설계된 테스트 케이스의 실행 비율 실행된테스트/설계된테스트 * 100
요구사항 커버리지 전체 요구사항 중 테스트를 통해 확인된 요구사항 비율 테스트를통해확인된요구사항/전체요구사항 * 100
유형별 결함발견 현황 유형별 발견된 결함의 개수 유형별 개수
심각도별 결함상태 현황 심깍도별 발견된 결함의 조치 상태 및 개수 심각도별 개수

 

 

- 테스트 결함관리

결함판단기준: 발생 결함에 대한 결함의 심각도 수준을 판단.

우선순위기준: 결함발생시 결함 수정에 대한 우선순위를 선정하기 위한 기준.

 

 

 

- 테스트 평가 및 개선

: 테스트 수행 종료 후 진행된 테스트 활동의 효과성과 효율성에 대한 평가를 진행하고 그 결과를 바탕으로 테스트 프로세스를 개선

: 테스트 평가 보고서에는 현재 운영되고 있는 테스트 프로세스의 문제점을 평가 후 적절한 개선방향을 기록

 

참고) 살충제 패러독스

* 같은 테스트 케이스를 가지고 테스트를 계속해서 반복하면 결국은 버그가 발견되지 않을 것이다.

* 이러한 "살충제 패러독스" 현상을 방지하기 위해서는 지속적으로 테스트케이스를 검토하고 개정해야한다.

* 소프트웨어의 다른 부분을 테스트할 때에는 잠재적인 결함을 발견하기 위해 새롭고 다른 테스트 케이스를 작성해야 한다.

 

 

- 테스트 활동 평가

: 테스트 활동에 대한 효과성 및 효율성평가

효과성(effectiveness) : 테스트를 통하여 얼마나 많은 오류를 검출하였는가

효율성(efficiency) : 테스트 효과를 달성하는데 소요된 비용이 얼마인가

ex) 개별 모듈의 기능적 오류가 많을 경우 단위 테스트에 사용된 테스트 기법이 효율적이지 않다고 판단.

ex) 성능, 신뢰도 측면의 오류가 많을 경우 시스템 테스트를 효과적으로 수행 되지 않은 것으로 판단.

 

 

- 테스트 효과성 평가 메트릭

구분 메트릭 종류 설명
테스트케이스 기반 테스트 케이스 실패율 결함을 검출한 테스트 케이스의 비율
테스트 케이스 효율성 하나의 결함을 검출하기 위해 사용된 테스트케이스 수
결함 기반 검출 결함 수 검출된 결함의 수
검출 결함 밀도 테스트 대상의 크기 당 검출된 결함의 수
결함 검출 비율 존재하는 모든 결함 중 검출도니 결함의 비율
해당 단계 결함 검출 비율 개발 단계에서 생성된 결함을 해당 단계에서 검출하는 비율
커버리지 기반 요구사항 커버리지 요구사항이 테스트된 비율
설계 커버리지 설계가 테스트된 비율
코드 커버리지 소스코드로 테스트된 비율

 

- 테스트 케이스 기반 메트릭

 

* 테스트케이스 실패율

: 사용된 전체 테스크 케이스 중에서 테스트 대상이 예상했던 결과와 다른 결과를 보인 테스트 케이스의 비율

: 테스트 분석 및 설계 활동에서 사용된 테스트 기법이 얼마나 효과적이었는지를 의미

 

* 테스트 케이스 실패율이 높은 경우

: 모든 테스트 케이스에 대해 테스트 대상이 기대와 다르게 동작한 것.

: 결함을 검출할 가능성이 높은 것으로 효과적인 테스트 수행 중인것.

 

* 테스트 케이스 실패율이 낮은 경우

: 결함을 검출하지 못하고 통과되는 테스트 케이스가 많은것.

특정 기능에 편중된 테스트케이스로 결함없는 상황만 테스트한것

예외처리 상황이 간과된 테스트케이스인것

체계적으로 생성된 테스트케이스가 아니라 사용자 실 데이터를 바탕으로 테스트한것.

 

: 결함 검출 가능성이 높은 테스트 케이스로 재정의 필요.

: 해당 모듈이 이미 높은 수준의 품질에 도달해 있을 수 있음.

 

- 테스트 케이스 기반 메트릭

* 테스트 케이스 효율성

: 하나의 결함을 검출하기 위해 사용된 테스트 케이스의 수를 고려한 것.

: 하나의 결함을 검출하기 위해 사용된 테스트 케이스의 수로 정의

: 전체 테스트 케이스 중에서 검출된 전체 결함의 비율.

 

* 테스트케이스 효율성이 낮은 경우

: 하나의 결함을 검출하는데에 많은 수의 테스트 케이스가 사용된것.

: 테스트 케이스 실패율이 낮지 않은 상황이라면 실패한 여러 테스트케이스들이 유사/동일한 오류가 검출된 것.

: 테스트 케이스들이 별개의 결함을 검출할 수 있도록 개선 필요. 테스트케이스 간의 독립성을 높이고 개선 시, 결함을 누락시키는 상황이 생길 수도 있으므로 주의~

: 테스트 대상이 적은 결함이 있을 수 있음. 낮은 테스트 케이스 효율성 원인이 낮은 테스트 케이스 실패율.

 

 

- 테스트 활동 개선

: 테스트 활동이 기대한 만큼 효과적이지 않은 경우, 그 원인을 분석하고 해결함으로써 테스트 활동의 효율성 개선

: 테스트 계획, 분석 및 설계, 테스트 실행은 모두 테스트 활동 평가에 영향을 미치므로 각각의 활동에 대한 세부적인 개선을 통해 테스트 활동개선

 

- 테스트 평가 보고서 작성

: 테스트 프로세스의 마지막 단계에서 작성되는 모든 테스트 활동과 결과를 요약한 문서

 

 

 

 

테스트

 

1. 효과적으로 효율적인 테스트 진행을 위해서 테스트 범위, 수행방법, 테스트 일정을 수립하는 활동은?

2. 테스트 분석 및 설계 활동에서 생성되는 테스트 산출물 3가지는?

3. 실제 시스템과 동일하게 테스트 환경을 구축하는 테스트 수준은?

4. 테스트 설계와 실행이 진행되는 동안 수립된 테스트 계획에 준수하여 테스트가 수행되고 있는지 (A)하고 필요한 경우 테스트 수행에 대한 (B)가 필요하다. A, B는?

5. 테스트 수행결과, 잔여결함수준, 고객의 승인 여부 등으로 결정할수있는것은?

 

 

 

 

 

 

 

 

 

 

1. 테스트 계획

2. 테스트케이스 명세서, 테스트케이스 절차서, 요구사항 명세서

3. 인수 테스트

4. 모니터링, 통제

5. 테스트 종료

'개발 > QA' 카테고리의 다른 글

12. 블랙박스 테스트  (0) 2020.07.09
11. 화이트박스 테스트  (0) 2020.07.08
9. 테스트 분석 및 설계  (0) 2020.07.08
8. 위험도 분석  (0) 2020.07.08
7. 테스트 전략  (0) 2020.07.08
profile on loading

Loading...