테스트케이스란?
테스트케이스는 소프트웨어가 제대로 동작하는지 확인하기 위해 구체적인 테스트 절차를 작성한 문서
테스트케이스의 목적:
- 기능 검증: 소프트웨어의 기능이 요구사항대로 작동하는지 확인합니다.
- 오류 발견: 예상하지 못한 오류나 문제를 찾아냅니다.
- 자동화 준비: 테스트케이스는 나중에 자동화 테스트로도 활용할 수 있습니다.
테스트케이스 기본 구성 요소
1) 테스트 ID
- 테스트케이스를 식별할 수 있는 고유한 번호입니다. 이를 통해 각 테스트케이스를 구분하고 관리할 수 있습니다.
예시: TC001, LOGIN_TC002
2) 테스트 제목 (Test Title)
- 테스트의 목적을 간단하고 명확하게 설명합니다. 제목만 보고도 테스트가 무엇을 검증하는지 알 수 있어야 합니다.
예시: 정확한 자격 증명으로 로그인 성공 확인
3) 사전 조건 (Pre-Conditions)
- 테스트를 수행하기 전에 필요한 상태나 조건을 작성합니다. 이로써 테스트가 일관되게 진행될 수 있습니다.
예시: 사용자는 로그인 페이지에 접근할 수 있어야 한다.
4) 테스트 단계 (Test Steps)
- 테스트를 수행하는 구체적인 절차를 순서대로 나열합니다.모든 단계는 명확하고 상세하게 작성하여, 다른 사람도 동일하게 테스트를 수행할 수 있도록 합니다.
예시:
- 로그인 페이지로 이동한다.
- 이메일 필드에 'user@example.com'을 입력한다.
- 비밀번호 필드에 'password123'을 입력한다.
- '로그인' 버튼을 클릭한다.
5) 예상 결과 (Expected Result)
- 테스트를 실행한 후 기대되는 결과를 작성합니다. 예상 결과는 구체적이어야 하며, 시스템이 어떻게 반응해야 하는지 설명합니다.
예시: 로그인에 성공하고 대시보드로 이동해야 한다.
6) 실제 결과 (Actual Result)
- 테스트 실행 후 실제로 발생한 결과를 기록합니다. 예상 결과와 다르면, 발생한 문제나 오류를 상세하게 적습니다.
예시: 로그인에 성공하고 대시보드로 이동함.
7) 테스트 상태 (Status)
- 테스트 결과가 예상과 일치하는지 여부를 평가하여 Pass 또는 Fail로 표시합니다.
예시: Pass, Fail
이런 느낌으로 작성이 된다고 보면 될 것 같습니다.
테스트케이스 설계기법
동등 분할 기법 (Equivalence Partitioning)
비슷한 특성을 가진 입력값을 그룹으로 나누고, 각 그룹에서 대표값 하나를 선택해 테스트하는 방법입니다.
비밀번호 길이가 8자 이상 20자 이하로 제한된다고 가정해 봅시다. 비밀번호 길이를 3개의 그룹으로 나눌 수 있습니다:
- 정상 그룹: 8~20자 → 대표 값: 10자리 비밀번호
- 짧은 그룹: 7자 이하 → 대표 값: 7자리 비밀번호
- 긴 그룹: 21자 이상 → 대표 값: 21자리 비밀번호
이렇게 범위가 오류<정상<오류의 범위에서 대표값을 정해서 테스트하는 방법입니다.
경계값 분석 기법 (Boundary Value Analysis)
최소값과 최대값 근처에서 시스템이 어떻게 동작하는지를 집중적으로 테스트하는 방법입니다.
비밀번호 길이가 8자 이상 20자 이하일 때, 경계값은 8자와 20자입니다.
경계값 바로 위와 아래도 테스트해야 합니다.
이걸로 봤을 때는 동등분할기법이랑 비슷한 느낌이 들기도 합니다.
결정 테이블 기법 (Decision Table Testing)
여러 조건이 조합될 때 발생하는 결과를 체계적으로 테스트하는 기법입니다.
로그인 시스템에서 이메일과 비밀번호 입력에 따라 결과가 달라지는 경우를 표로 정리해 보겠습니다.
조건이 많아진다면 결정 테이블 기법을 사용하는 것이 유용합니다.
상태 전이 기법 (State Transition Testing)
시스템이 특정 상태에서 다른 상태로 변환될 때, 그 과정이 제대로 이루어지는지를 테스트하는 기법입니다.
ATM 기기에서 카드를 삽입하고 PIN을 입력한 후, 계좌 잔액을 확인하는 시나리오를 테스트합니다.
이렇게 상태가 이어져서 진행이 될 때에 표시하는 방법이라고 볼 수 있을 것 같습니다.
사용 사례 기반 기법 (Use Case Testing)
사용자가 실제로 시스템을 사용하는 방식에 맞춰 테스트케이스를 작성하는 방법입니다.
전자상거래 사이트에서 사용자가 상품을 검색하고, 장바구니에 추가한 후 결제하는 과정을 테스트합니다.
하나 하나의 기능을 하나의 시나리오에서 동작을 했을때 잘 진행이 되는지 확인하는 기법인것 같습니다.
오류 추정 기법 (Error Guessing)
경험에 기반해 시스템에서 오류가 발생할 가능성이 있는 부분을 예측하고 테스트하는 기법입니다.
회원가입 폼에서 특수 문자를 입력했을 때, 시스템이 오류를 발생시킬 가능성을 예측하고 테스트합니다.
좋은 테스트케이스 작성 팁
1) 간결하고 명확하게 작성
테스트케이스는 간단하고 명확하게 작성해야 합니다. 다른 사람이 읽어도 이해할 수 있도록 단계별로 상세히 기술해야 합니다.
2) 중복을 피하라
비슷한 기능에 대해 중복된 테스트는 피해야 합니다.
테스트케이스가 너무 많아지면 관리가 어려워질 수 있으므로 필요한 경우에만 테스트합니다.
3) 예외 상황도 고려
정상적인 시나리오뿐만 아니라, 예외적인 상황도 반드시 테스트해야 합니다. 예를 들어, 잘못된 입력, 누락된 필드, 오류 메시지 등이 올바르게 처리되는지 확인합니다.
4) 테스트케이스를 지속적으로 업데이트
소프트웨어가 업데이트되거나 기능이 추가되면 기존 테스트케이스도 최신 상태로 유지해야 합니다.
정기적으로 테스트케이스를 검토하고, 필요한 부분을 수정하거나 추가합니다.