4.4. 경험 기반 테스트 기법

hsk·2024년 6월 19일

ISTQB - CTFL (정리) 

목록 보기
17/25

4.4.1 오류 추정

테스터의 지식을 기반으로 오류, 결함, 장애 발생을 예측하는 기법이다.

테스터의 지식에 포함되는 요소

  • 애플리케이션의 과거 동작: 애플리케이션이 과거에 어떻게 작동했는지에 대한 지식
  • 개발자가 범하기 쉬운 오류 유형: 개발자가 자주 저지르는 오류 및 그로 인해 발생하는 결함 유형
  • 유사 애플리케이션에서 발생한 장애 유형: 다른 비슷한 애플리케이션에서 발견된 장애 유형

오류, 결함, 장애와 관련된 요소

  • 입력: 올바른 입력을 인식하지 못함, 매개변수 오류 또는 누락
  • 출력: 잘못된 형식, 잘못된 결과
  • 논리: 사례 누락, 잘못된 연산자
  • 계산: 잘못된 피연산자, 잘못된 계산
  • 인터페이스: 매개변수 불일치, 호환되지 않는 유형
  • 데이터: 잘못된 초기화, 잘못된 유형

결함 공격
오류 추정을 체계적으로 구현한 접근법이다. 테스터가 예상 가능한 오류, 결함, 장애 목록을 작성하거나 획득하여, 오류와 관련된 결함을 식별하고 노출하거나 장애를 유발하는 테스트를 설계한다.

이러한 목록은 다음을 기반으로 작성할 수 있다

  • 경험
  • 결함 및 장애 데이터
  • 소프트웨어에 문제가 생기는 원인에 관한 일반적인 지식

4.4.2 탐색적 테스팅

탐색적 테스팅은 테스터가 테스트 대상에 대해 학습하면서 테스트의 설계, 실행, 평가를 동시에 수행하는 기법이다. 이 기법은 테스트 대상에 대한 이해를 깊게 하고, 테스트되지 않은 영역을 탐색하는 데 사용된다.

세션 기반 테스팅 : 탐색적 테스팅을 체계적으로 수행하기 위해 세션 기반 테스팅을 사용할 수 있다.

  • 테스트 차터 : 테스터는 정의된 테스트 목적을 갖춘 차터(charter)를 사용하여 테스트를 수행한다.
  • 테스트 세션 : 정해진 시간 동안 집중적으로 테스트를 수행하며, 세션 종료 후 결과를 보고하고 이해관계자와 논의한다.
  • 테스트 목적 : 상위 수준의 테스트 조건으로 취급되며, 커버리지 항목은 세션 중에 식별 및 실행된다.
  • 기록 : 테스터는 수행 절차와 발견 내용을 기록하기 위해 테스트 세션 시트를 사용할 수 있다.

탐색적 테스팅은 다음과 같은 상황에서 유용하다

  • 명세가 부족하거나 부적합할 경우
  • 테스트에 시간적 압박이 심할 경우
  • 공식 테스트 기법을 보완할 경우

효과적인 수행
탐색적 테스팅은 테스터가 풍부한 경험과 도메인 지식을 가지고 있으며, 높은 수준의 분석 기술, 호기심, 창의성을 갖춘 경우 더욱 효과적이다.

4.4.3 체크리스트 기반 테스팅

체크리스트 기반 테스팅은 테스터가 체크리스트를 활용해 테스트 컨디션을 확인하는 테스트를 설계, 구현, 실행하는 기법이다. 체크리스트는 경험, 사용자에게 중요한 사항, 또는 소프트웨어의 실패 원인과 방법에 대한 이해를 바탕으로 작성될 수 있다.

체크리스트 기반 테스팅 특징

  • 자동으로 점검할 수 있는 항목, 시작/종료 조건에 더 적합한 항목, 너무 일반적인 항목은 체크리스트에 포함해서는 안 된다
  • 체크리스트 항목은 질문 형식으로 표현되며, 각 항목은 개별적이고 직접적으로 확인할 수 있어야 한다. 요구사항, 그래픽 인터페이스 속성, 품질 특성 또는 기타 유형의 테스트 컨디션이 포함될 수 있다
  • 체크리스트는 기능 및 비기능 테스트를 포함한 다양한 테스트 유형을 지원하기 위해 작성될 수 있다

유지 및 업데이트

  • 시간이 지남에 따라 개발자가 같은 오류를 반복하지 않게 되므로 일부 체크리스트 항목의 효과가 떨어질 수 있다.
  • 새로 발견된 심각도가 높은 결함으로 인해 새로운 항목을 추가해야 할 수도 있다.
  • 체크리스트는 결함 분석을 기반으로 정기적으로 업데이트해야 하지만, 너무 길어지지 않도록 주의해야 한다.

유용성

  • 구체적인 테스트 케이스가 없는 경우 체크리스트 기반 테스팅은 테스트를 위한 지침과 일정 수준의 일관성을 제공할 수 있다.
  • 체크리스트가 상위 수준으로 작성된 경우 실제 테스트는 조금씩 달라질 수 있으며, 결과적으로 커버리지는 높아지지만 재현 가능성은 떨어질 수 있다

예상문제

문제 1: 오류 추정 기법에 대한 설명으로 옳지 않은 것은 무엇인가?
A) 테스터의 지식을 바탕으로 오류, 결함, 장애 발생을 예측하는 기법이다.
B) 테스트 케이스는 과거 애플리케이션의 동작과 유사한 방식으로 작성된다.
C) 오류 추정은 개발자가 범하기 쉬운 오류 유형과 관련이 있다.
D) 오류 추정은 자동화된 도구를 사용하는 것을 원칙으로 한다.

정답(드래그)
 D 
해설(드래그)
오류 추정은 자동화된 도구를 사용하는 것을 원칙으로 하지 않는다. 테스터의 경험과 지식을 기반으로 예측하는 기법이다.

문제 2: 오류 추정 기법의 주요 요소가 아닌 것은 무엇인가?
A) 애플리케이션의 과거 동작
B) 매개변수 불일치
C) 다른 유사 애플리케이션에서 발생한 장애 유형
D) 개발자가 범하기 쉬운 오류 유형

정답(드래그)
 B 
해설(드래그)
매개변수 불일치는 오류, 결함, 장애의 예시일 뿐, 주요 요소는 아니다. 주요 요소는 애플리케이션의 과거 동작, 유사 애플리케이션에서 발생한 장애 유형, 개발자가 범하기 쉬운 오류 유형이다.

문제 3: 결함 공격에 대한 설명으로 옳은 것은 무엇인가?
A) 체계적인 오류 추정 구현 방법이다.
B) 테스터는 발생 가능한 오류, 결함, 장애 목록을 작성하지 않는다.
C) 결함 공격은 테스트 도구의 사용을 피하는 방법이다.
D) 테스트 설계와는 무관하다.

정답(드래그)
 A 
해설(드래그)
결함 공격은 오류 추정을 체계적으로 구현하는 방법이다. 테스터는 발생 가능한 오류, 결함, 장애 목록을 작성하여 테스트 설계를 수행한다.

문제 4: 탐색적 테스팅에 대한 설명으로 옳지 않은 것은 무엇인가?

A) 테스트의 설계, 실행, 평가를 동시에 수행한다.
B) 테스트 차터를 사용하여 테스트를 수행한다.
C) 명세가 부족하거나 테스트에 시간적 압박이 있을 때 유용하다.
D) 테스트는 사전 정의된 절차에 따라 수행된다.

정답(드래그)
 D 
해설(드래그)
탐색적 테스팅은 사전 정의된 절차에 따르지 않고, 테스트 설계, 실행, 평가를 동시에 수행하면서 즉흥적으로 테스트를 진행한다.

문제 5: 탐색적 테스팅에서 세션 기반 접근법의 특징이 아닌 것은 무엇인가?

A) 정해진 시간 동안 테스트를 집중적으로 수행한다.
B) 테스트 세션 종료 후 결과를 보고하고 논의한다.
C) 테스트 목적이 상위 수준의 테스트 컨디션으로 취급된다.
D) 사전에 모든 테스트 케이스를 작성한다.

정답(드래그)
 D 
해설(드래그)
세션 기반 접근법에서는 사전에 모든 테스트 케이스를 작성하지 않는다. 정해진 시간 동안 집중적으로 테스트를 수행하고, 테스트 차터를 기반으로 테스트를 진행한다.

문제 6: 체크리스트 기반 테스팅에 대한 설명으로 옳은 것은 무엇인가?

A) 체크리스트는 자동으로 점검할 수 있는 항목을 포함해야 한다.
B) 각 항목은 개별적이고 직접적으로 확인할 수 있어야 한다.
C) 체크리스트는 시간이 지나도 업데이트할 필요가 없다.
D) 모든 테스트는 체크리스트의 항목에 따라 수행된다.

정답(드래그)
 B 
해설(드래그)
체크리스트의 각 항목은 개별적이고 직접적으로 확인할 수 있어야 한다. 자동으로 점검할 수 있는 항목은 포함해서는 안 되며, 체크리스트는 정기적으로 업데이트가 필요하다.

문제 7: 체크리스트 기반 테스팅의 항목 작성 시 고려해야 할 사항이 아닌 것은 무엇인가?

A) 경험을 바탕으로 작성된다.
B) 사용자가 중요한 것을 반영한다.
C) 소프트웨어 실패 원인과 방법에 대한 이해를 기반으로 한다.
D) 너무 일반적인 항목도 포함한다.

정답(드래그)
 D 
해설(드래그)
너무 일반적인 항목은 체크리스트에 포함해서는 안 된다. 체크리스트 항목은 경험, 사용자 중요 사항, 소프트웨어 실패 원인과 방법을 바탕으로 작성되어야 한다.

문제 8: 체크리스트 기반 테스팅이 유용한 상황은 무엇인가?

A) 구체적인 테스트 케이스가 없는 경우
B) 모든 테스트가 자동화된 경우
C) 테스트 시간이 충분한 경우
D) 명세가 충분히 상세한 경우

정답(드래그)
 A 
해설(드래그)
구체적인 테스트 케이스가 없는 경우, 체크리스트 기반 테스팅은 테스트를 위한 지침과 일정 수준의 일관성을 제공할 수 있다.

profile
Test Automation QA Engineer

0개의 댓글