매거진 QA의 시작

Test Data

결함 및 관리 도구 관련

by 제임스

Test Data(테스트 데이터)는 소프트웨어 테스트를 수행하기 위한 가상의 연료입니다.

자동차가 주행하려면 연료가 필요하듯, 소프트웨어 테스트도 실행하려면 적절한 데이터가 필요합니다. Test Data는 테스트 케이스가 실행되고 예상 결과를 검증하는 데 필수적인 요소입니다.


Test Data란?


Test Data는 테스트를 실행하기 위해 사용하는 입력 데이터입니다.

소프트웨어가 다양한 조건과 시나리오에서 올바르게 동작하는지 확인하려면, 다양한 데이터를 사용해 테스트를 진행해야 합니다.


예를 들어,

• 회원가입 기능을 테스트하려면 가짜 이메일 주소와 이름이 필요합니다.

• 계산기를 테스트하려면 숫자와 연산 기호를 입력해야 합니다.

이처럼 Test Data는 소프트웨어가 다양한 상황에서 제대로 작동하는지 확인하기 위한 핵심 재료입니다.


Test Data의 주요 특징


1. 테스트 케이스와 밀접한 연결

• Test Data는 테스트 케이스의 요구사항에 따라 준비됩니다.

• 예: “사용자가 비밀번호를 잘못 입력했을 때”라는 테스트 케이스를 검증하려면 “잘못된 비밀번호”를 Test Data로 준비해야 합니다.

2. 다양한 시나리오를 검증 가능

• Test Data는 소프트웨어의 다양한 조건과 경계를 검증하기 위해 사용됩니다.

• 예: “최소 8자 이상이어야 하는 비밀번호” 테스트를 위해, 7자와 8자를 입력하는 데이터 준비.

3. 실제 데이터 또는 가상 데이터 활용

• 실제 사용자 데이터를 사용하는 경우, 민감한 정보를 보호하기 위해 익명화(Anonymization)나 마스킹(Masking)이 필요합니다.

• 가상 데이터를 사용하는 경우, 테스트 환경에 맞게 데이터가 준비됩니다.


Test Data의 종류


1. Valid Data (유효한 데이터)

• 시스템이 정상적으로 작동하도록 의도된 데이터

• 예:

- 이름: “김철수”

- 이메일: “test@example.com”


2. Invalid Data (유효하지 않은 데이터)

• 소프트웨어의 오류를 유발할 수 있는 잘못된 데이터

• 예:

- 이름: “” (빈 문자열)

- 이메일: “invalid-email-format”


3. Boundary Data (경계값 데이터)

• 입력값의 최소/최대 범위를 테스트하기 위해 사용

• 예:

- 비밀번호 최소 길이: 7자와 8자

- 나이 입력: -1, 0, 1 (유효 최소값 확인)


4. Large Data (대량 데이터)

• 시스템의 성능을 테스트하기 위해 사용하는 대량의 데이터

• 예: “100만 개의 상품 목록을 데이터베이스에 입력”


5. Special Characters Data (특수 문자 데이터)

• 시스템이 특수 문자나 비표준 입력값을 처리할 수 있는지 확인

• 예: “이름: !@#$%^”


Test Data의 실제 사례


사례 1: 회원가입 기능 테스트

테스트 케이스: “유효한 이메일과 비밀번호를 입력하면 계정이 생성되어야 한다.”

Test Data:

- 이름: “홍길동”

- 이메일: “test123@gmail.com”

- 비밀번호: “P@ssw0rd123”


사례 2: 계산기 앱 테스트

테스트 케이스: “두 숫자의 합이 올바르게 계산되어야 한다.”

Test Data:

- 입력값 1: 5

- 입력값 2: 10

- 연산: “+”


사례 3: 전자상거래 앱 검색 기능

테스트 케이스: “상품명에 특정 키워드를 입력하면 관련 상품이 표시되어야 한다.”

Test Data:

- 검색어: “노트북”

- 예상 결과: “노트북 A, 노트북 B, 노트북 C”


Test Data는 마치...


Test Data는 소프트웨어의 시험 답안지와 같습니다.

시험에서 다양한 문제를 풀기 위해 답안을 준비하듯, 소프트웨어도 다양한 상황에서 적절히 동작하는지 확인하기 위해 테스트 데이터를 사용합니다.

• 올바른 답안(Valid Data)이 있으면 시험이 순조롭게 진행됩니다.

• 틀린 답안(Invalid Data)으로 시스템의 반응을 테스트합니다.

• 극단적인 문제(Boundary Data)로 경계를 확인합니다.


Test Data의 생성 방법


1. 수동 생성

• QA 엔지니어가 테스트 요구사항에 따라 데이터를 직접 작성

장점: 단순하고 신속

단점: 대량 데이터나 복잡한 데이터 생성에는 비효율적


2. 자동 생성 도구 활용

• Faker, Mockaroo와 같은 도구를 사용해 가상 데이터를 자동으로 생성

장점: 대량 데이터 생성 가능, 시간 절약

단점: 설정이 복잡할 수 있음


3. 실제 데이터 활용

• 실제 사용자 데이터를 기반으로 테스트 수행

장점: 실제 환경과 유사한 결과 제공

단점: 개인정보 보호 및 익명화 필요


Test Data의 중요성


1. 테스트 결과의 신뢰성 확보

• 잘 설계된 Test Data는 테스트 결과의 정확성과 신뢰성을 보장합니다.

2. 다양한 시나리오 검증

• 다양한 Test Data를 통해 소프트웨어의 강점과 약점을 빠르게 파악할 수 있습니다.

3. 결함 발견과 예방

• Test Data를 활용하면 예상치 못한 결함을 미리 발견하여 수정할 수 있습니다.


Test Data와 주니어 QA의 연결점


1. 요구사항 이해

• Test Data를 설계하는 과정에서 QA 엔지니어는 소프트웨어의 요구사항을 깊이 이해하게 됩니다.

2. 창의적 사고 훈련

• 다양한 시나리오를 상상하며, 정상적인 데이터뿐 아니라 비정상적인 데이터를 설계하는 창의적 사고를 기르게 됩니다.

3. 도구 활용 능력 향상

• 자동화 도구를 사용해 Test Data를 생성하며 도구 활용 능력을 키울 수 있습니다.



Test Data는 소프트웨어 테스트의 핵심 요소입니다.

적절하고 풍부한 Test Data는 소프트웨어의 다양한 시나리오를 검증하고, 결함을 발견하며, 최종적으로 더 나은 품질을 보장하는 데 기여합니다.

주니어 QA 엔지니어에게 Test Data 설계는 소프트웨어 테스트의 근본적인 개념과 함께, 실질적인 테스트 수행 능력을 키울 수 있는 중요한 기회입니다.

keyword
매거진의 이전글Defect Life Cycle