테스트 케이스(Test Case)

박세현·2024년 10월 13일
0

추가공부

목록 보기
9/12
post-thumbnail

테스트 케이스(Test Case)

테스트 케이스(Test Case)는 소프트웨어 테스트에서 가장 기본적인 요소로, 특정 조건에서 소프트웨어의 기능이 제대로 동작하는지 확인하기 위해 설계된 테스트 시나리오입니다. 테스트 케이스는 각 기능이 어떻게 작동해야 하는지를 명확하게 정의하고, 이를 검증할 수 있는 방법을 제시합니다.

테스트 케이스는 다양한 측면에서 설계될 수 있으며, 일반적으로 입력 값(input), 테스트 조건(condition), 예상 결과(expected output)를 포함합니다.

1. 테스트 케이스의 구성 요소

1) 테스트 케이스 ID

  • 각 테스트 케이스를 식별하기 위한 고유한 ID입니다.

예를 들어, TC-001, TC-002와 같은 방식으로 번호를 매겨 관리할 수 있습니다.

2) 테스트 케이스 설명

  • 테스트하려는 기능이나 목적을 간단하게 설명하는 항목입니다.

예: "회원가입 시 이메일 형식이 올바르지 않으면 오류 메시지가 출력된다."

3) 전제 조건(Precondition)

  • 테스트가 실행되기 전에 충족되어야 할 조건이나 상황입니다.
  • 예를 들어, 특정 페이지에 접속한 상태, 사용자가 로그인한 상태 등입니다.

예: "회원가입 폼에 접근한 상태여야 한다."

4) 입력 데이터(Input Data)

  • 테스트에 필요한 실제 입력 값입니다.

예: "이메일 필드에 'userexample.com'을 입력."

5) 테스트 절차(Test Procedure)

  • 테스트를 수행하는 단계별 절차를 기록한 것입니다. 이는 테스터가 어떤 순서로 테스트를 진행해야 하는지를 명확히 제시합니다.

예:
회원가입 페이지에 접속한다.
이메일 필드에 'userexample.com'을 입력한다.
가입 버튼을 누른다.

6) 예상 결과(Expected Result)

  • 입력 데이터에 따른 소프트웨어의 예상 동작입니다. 소프트웨어가 정상적으로 작동하는 경우의 결과를 기록합니다.

예: "올바르지 않은 이메일 형식입니다."라는 오류 메시지가 나타나야 한다.

7) 실제 결과(Actual Result)

  • 테스트를 실행했을 때 실제로 나타난 결과입니다. 예상 결과와 일치하면 테스트는 통과하고, 그렇지 않으면 실패로 기록됩니다.

8) 테스트 결과(Pass/Fail)

  • 테스트가 예상대로 작동했는지를 기록하는 부분으로, 테스트 케이스가 통과했는지(Pass) 또는 실패했는지(Fail)를 명시합니다.

2. 테스트 케이스의 예시

1) 테스트 케이스: 회원가입 기능에서 이메일 검증

3. 테스트 케이스 작성 시 고려사항

1) 명확하고 간결해야 함

  • 테스트 케이스는 명확하고 이해하기 쉬워야 합니다. 여러 명의 테스터가 테스트 케이스를 사용해도 동일한 결과를 도출할 수 있도록 해야 합니다.

2) 포괄적인 범위 설정

  • 단순한 긍정적 시나리오뿐만 아니라, 경계 값(Boundary value), 예외 처리(Exception handling)와 같은 부정적 시나리오도 테스트할 수 있어야 합니다. 즉, 다양한 입력과 상황을 고려해 테스트 범위를 설정하는 것이 중요합니다.

3) 반복 가능성

  • 테스트 케이스는 반복해서 실행할 수 있어야 하며, 동일한 결과를 일관되게 얻을 수 있어야 합니다.

4) 자동화 가능성

  • 자동화 테스트를 염두에 두고 테스트 케이스를 설계하는 것이 좋습니다. 특히 반복적으로 수행해야 하는 테스트는 자동화하기에 적합한 형식으로 작성하면 효율적입니다.

5) 우선순위 지정

  • 모든 테스트 케이스가 동일하게 중요한 것은 아닙니다. 기능의 중요성이나 리스크에 따라 우선순위를 지정하여 관리해야 합니다. 예를 들어, 로그인, 결제 기능은 더 우선적으로 테스트해야 할 것입니다.

4. 테스트 케이스의 유형

1) 기능 테스트 케이스 (Functional Test Case)

  • 소프트웨어가 요구 사항에 맞게 동작하는지 확인하는 테스트 케이스입니다.

예: 로그인 기능, 데이터 입력 처리 등

2) 비기능 테스트 케이스 (Non-functional Test Case)

  • 성능, 보안, 사용자 경험과 같은 비기능적 요구 사항을 테스트하는 케이스입니다.

예: 페이지 로드 속도, 응답 시간, 부하 처리 능력 등

3) 경계 값 분석 테스트 케이스 (Boundary Value Test Case)

  • 입력 데이터의 경계 값이나 한계 값에서 시스템이 제대로 작동하는지를 확인하는 테스트입니다.

예: 입력 필드에서 최대 100자를 입력할 수 있다면, 99자, 100자, 101자를 입력해 테스트합니다.

4) 예외 처리 테스트 케이스 (Exception Handling Test Case)

  • 잘못된 입력이나 비정상적인 상황에서 시스템이 예외 처리를 제대로 하는지 확인하는 테스트입니다.

예: 필수 입력 필드를 공백으로 남겨두거나, 비정상적인 데이터 입력

5. 테스트 케이스의 중요성

  • 결함 발견: 잘 설계된 테스트 케이스는 소프트웨어에서 숨겨진 결함을 발견할 수 있습니다.
  • 일관성: 동일한 테스트 케이스로 일관된 테스트를 반복할 수 있어, 코드 수정 후에도 테스트 신뢰성을 유지할 수 있습니다.
  • 문서화: 테스트 케이스는 소프트웨어의 기능 및 동작에 대한 문서 역할을 하며, 팀 내에서 테스트 프로세스를 공유하고 협력하는 데 유용합니다.
profile
귤귤

0개의 댓글