매거진 QA의 시작

Functional Testing

기초 테스팅 관련

by 제임스

Functional Testing(기능 테스트)는 소프트웨어 테스팅의 기본 중의 기본입니다.

소프트웨어의 각 기능이 “설계한 대로”, “사용자가 기대한 대로” 제대로 작동하는지 확인하는 과정입니다.

말하자면, 기능 테스트는 소프트웨어가 약속한 일을 정확히 수행하는지 점검하는 신뢰의 첫 걸음이라고 할 수 있습니다.


Functional Testing이란?


Functional Testing은 소프트웨어가 명세서(Requirements Specification)에 정의된 기능을 정확히 수행하는지 확인하는 과정입니다.

이 테스트는 사용자의 관점에서 소프트웨어의 동작을 검증합니다.

기능 테스트는 다음 질문에 답을 찾습니다:

• “버튼을 누르면 원하는 페이지로 이동하는가?”

• “결제 시스템이 정확히 작동하는가?”

• “사용자가 입력한 데이터가 올바르게 처리되는가?”


Functional Testing의 실제 사례


1. 전자상거래 웹사이트

• 사용자가 장바구니에 상품을 추가하고 결제하는 과정을 점검합니다.

• 테스트 시나리오

(1) 상품을 장바구니에 추가 → 장바구니에 상품이 추가되었는지 확인

(2) 결제 버튼 클릭 → 결제 화면으로 이동했는지 확인

(3) 결제 완료 후 주문 내역이 저장되었는지 확인


2. 모바일 뱅킹 앱

• 송금 기능을 점검합니다.

테스트 시나리오

(1) 로그인 후 계좌 선택 → 잔액이 정확히 표시되는지 확인

(2) 송금 버튼 클릭 → 수취인의 계좌 번호와 금액 입력

(3) “확인” 버튼 클릭 → 송금이 성공적으로 완료되었는지 확인


3. 채팅 애플리케이션

• 새로운 메시지가 제대로 전송되고 표시되는지 확인합니다.

테스트 시나리오

(1) “안녕하세요!” 메시지 입력 → 상대방에게 메시지가 전달되었는지 확인

(2) 상대방의 응답이 실시간으로 표시되는지 확인


Functional Testing은 마치...


기능 테스트는 레시피대로 요리를 만들어 보는 과정과 같습니다.

• 요리사가 레시피에 따라 재료를 준비하고, 단계별로 요리를 완성한 뒤, 맛을 보고 “제대로 만들어졌는지” 확인하는 것처럼,

• QA 엔지니어는 소프트웨어의 요구사항 문서를 기준으로, 소프트웨어가 “제대로 작동하는지”를 확인합니다.


Functional Testing의 유형


1. Smoke Testing (스모크 테스트)

• 가장 기본적인 기능들이 작동하는지 빠르게 점검

• 예: 로그인, 회원가입, 검색 등 주요 기능이 정상적으로 동작하는지 확인

2. Sanity Testing

• 최근 변경된 기능이 예상대로 작동하는지 간단히 점검

• 예: 결제 시스템에 새로운 할인 기능이 추가되었을 때, 변경된 부분만 검증

3. Regression Testing (회귀 테스트)

• 새로운 기능이 추가되었거나 결함이 수정된 후, 기존 기능에 영향을 미치지 않았는지 확인

• 예: “장바구니 기능 수정 이후, 결제 버튼도 정상 작동하는지 확인”

4. End-to-End Testing

• 사용자의 관점에서 시스템의 시작부터 끝까지 모든 단계를 점검

• 예: “회원가입 → 상품 검색 → 장바구니 추가 → 결제 → 주문 확인”까지의 흐름 검증


Functional Testing의 중요성


1. 기본이자 필수적인 테스트

• 기능 테스트는 소프트웨어 테스팅의 첫걸음입니다. 소프트웨어가 “제대로 작동하는지” 확인하지 않고는 품질을 논할 수 없습니다.

2. 사용자 경험 보장

• 사용자는 기능이 제대로 작동하지 않으면 즉시 불편을 느낍니다. 기능 테스트는 이런 불만을 방지합니다.

3. 소프트웨어 신뢰성 확보

• 기능이 명확하고 정확히 동작한다면, 사용자와 클라이언트는 소프트웨어를 신뢰할 수 있습니다.

4. 개발과 QA 간의 협업 강화

• 기능 테스트를 통해 QA와 개발자가 요구사항을 명확히 이해하고 소통할 수 있습니다.



Functional Testing은 소프트웨어 품질 보증의 핵심이며, 모든 QA 엔지니어가 가장 먼저 배우고 수행해야 할 기본적인 테스트입니다.

이 테스트는 “소프트웨어가 약속한 기능을 제대로 제공하는지”를 묻습니다.

주니어 QA 엔지니어로서 기능 테스트를 철저히 이해하고 수행하면, 소프트웨어 품질 관리의 가장 중요한 첫 단계를 탄탄히 다질 수 있습니다.

keyword
매거진의 이전글Non-functional Testing