th42500의 TIL

테스트 케이스 (Test Case) 본문

Memo

테스트 케이스 (Test Case)

th42500 2021. 12. 22. 02:07

테스트 케이스

테스트 케이스에 대해서 잘 몰랐을 때에는 그저 평소 사용하는 체크리스트와 다른건가라는 생각을 했었다. 스케줄러에 할 일을 미리 적어놓고 해당 작업을 완료했을 때 체크를 하는 것과 같이 테스트 케이스도 개발에 있어서 내가 구현해야 할 기능들을 미리 적어놓고 해당 기능을 구현 완료했을 때 체크를 하는 것이라 생각했다. 그러나, 테스트 케이스는 내 생각보다 그리 단순한 문서가 아님을 알게되어 기록을 해보고자 한다.

 

 

✔ 체크리스트 VS 테스트 케이스

체크리스트 : 단순한 현상을 체크하기 위한 문서

👉 ex) 공지사항 게시판 좌측 상단에 검색창이 있다.

테스트 케이스 : 테스크 컨디션을 체크하기 위한 문서

👉 ex) 공지사항 게시판은 일반회원이라면 글쓰기 버튼이 보이지 않지만 관리자 회원으로 로그인하면 글쓰기 버튼이 보인다.

이처럼 테스트 케이스에는 테스트 컨디션 즉, 개발이 잘 되었는지 검증하기 위한 조건들이 있다는 점에서 체크리스트와 차이점이 있다고 할 수 있다.

 

 

✔ 테스트 베이시스 (Test Basis)

요구사항이 담겨있는 모든 문서 또는 산출물로, 테스트 케이스를 작성하기 위한 데이터(근거)라고 생각하면 된다.

1️⃣ 명세 기반 베이시스 : 글로 작성된 내용

     👉 ex) 기능 설명서, 사용자 스토리

2️⃣ 구조 기반 베이시스 : 코드, 제어 흐름도 등의 구조적 데이터로 이루어진 내용

     👉 ex) 단위 코드, 제어 흐름도

 

 

✔ 테스트 케이스 작성 과정

1️⃣ 명세서나 화면을 보고 제어 흐름도를 작성 (Test Condition 도출)

2️⃣ 1️⃣에서 도출된 Test Condition을 이용하여 결정 테이블을 제작

3️⃣ 2️⃣에서 작성된 결정 테이블을 참고하여 나올 수 있는 상황들을 예측해보고 테스트 케이스를 작성

 

❓ 제어 흐름도 (Flow Chart)

코드의 실행 순서를 도식으로 표현한 다이어그램으로, 이를 작성하는 데에는 정해진 규칙이 있다.

기호 이름 용도
단말 순서도의 시작과 끝
준비 사전 준비 과정
처리 처리 작업
판단 조건 명시
표준 입출력 데이터의 입력과 출력
흐름선 처리흐름과 기호연결
연결자 순서도의 다른 부분으로 연결
페이지 연결자 다른 페이지의 순서도로 연결
수동 입력 직접 입력
카드 파일 종이카드의 입출력
서류 서류를 매체로 하는 출력
디스크 디스크에 입출력

 

❓ 결정 테이블 (Decision Table)

조건과 결과로 이루어진 논리 분석을 위한 표로, Condition을 가지고 상황별 테이블을 만든다.

예시)

    TC1 TC2 TC3 TC4
조건
(Condition)
나이 = 60   Y Y ...
나이 > 60 Y Y Y ...
나이 < 60 Y   Y ...
기대결과   예상결과1 예상결과2 예상결과3 ...

 

 

✔ 테스트 케이스 작성 예시

TEST CASE ID TEST
SCENARIO (When)
TEST CASE PRE-CONDITION TEST STEPS TEST DATA EXPECITED
RESULT
ACTUAL
RESULT
STATUS
(PASS/FAIL)
케이스 ID 시나리오 테스트 케이스 전제조건 데스트 과정 입력 데이터 예상 결과 실제 결과 상태

 

오늘은 테스트 케이스에 대해 알아보았다. 테스트 케이스를 꼼꼼하게 작성하게 된다면, 개발 과정 중에 발생할 문제들을 미리 예측해보고 보완할 수 있을것 같다.

Comments