프로세스 및 기법 관련
Smoke Testing(스모크 테스트)는 소프트웨어 테스팅의 “빠른 건강 검진”과 같은 역할을 합니다.
완전히 새로운 시스템이거나 중요한 변경 사항이 적용된 후, “이 시스템이 기본적으로 작동하는지”를 빠르게 확인하는 테스트입니다.
소프트웨어 테스팅의 정밀 단계를 진행하기 전에, 기본 상태를 점검하여 “이 시스템이 테스트를 받을 준비가 되었는지”를 확인하는 것이 목표입니다.
스모크 테스트는 소프트웨어의 핵심 기능이 제대로 작동하는지 확인하는 테스트로, 복잡하고 세부적인 테스트를 시작하기 전에 진행됩니다.
• 목표는 “당장 눈에 띄는 치명적 오류가 없는지”를 빠르게 확인하는 것입니다.
• 소프트웨어가 심각한 결함 없이 실행 가능하다는 것이 확인되면, 이후 단계의 테스트를 진행합니다.
예를 들어,
• 로그인 기능이 정상적으로 작동하는지.
• 결제 버튼을 클릭했을 때 오류 없이 결제 페이지로 이동하는지.
• 데이터 저장 기능이 제대로 작동하는지 확인합니다.
스모크 테스트라는 이름은 전자기기 테스트에서 유래되었습니다.
새로 조립된 전자기기를 처음 전원에 연결했을 때, “연기가 나지 않으면 기본적으로 문제없다”고 판단하던 간단한 점검 과정에서 비롯되었습니다.
소프트웨어에서도 같은 개념이 적용됩니다.
• “이 시스템을 켜봤을 때, 정상적으로 작동하는가?”
1. 빠르고 간단함
• 복잡한 테스트를 생략하고, 소프트웨어의 주요 기능만 빠르게 점검합니다.
2. 핵심 기능 중심
• 시스템의 기본적인 핵심 기능(Critical Path)만 테스트합니다.
• 예: 로그인, 데이터 입력, 결제 등.
3. 테스트 자격 확인
• 시스템이 제대로 작동하지 않는다면, 더 깊은 테스트를 진행할 이유가 없습니다.
4. 빠른 피드백 제공
• 개발팀이 즉시 문제를 인지하고 수정할 수 있도록 빠르게 결과를 제공합니다.
스모크 테스트는 자동차 점검 시, 시동을 걸어보는 것과 같습니다.
• “차가 시동이 걸리고, 바퀴가 움직이는가?”
• 브레이크, 엔진 상태 등 세부적인 점검은 이후에 진행됩니다.
자동차가 기본적으로 움직이지 않으면, 세부 점검을 시작할 필요조차 없습니다.
소프트웨어에서도 마찬가지로, 스모크 테스트는 기본적인 실행 가능성을 확인하는 첫 단계입니다.
사례 1: 전자상거래 웹사이트
• 목표: 주요 사용자 흐름을 확인
• 테스트 항목:
(1) 홈페이지가 정상적으로 로드되는지 확인
(2) 상품 검색이 동작하는지 확인
(3) 장바구니에 상품 추가가 가능한지 확인
(4) 결제 버튼이 작동하는지 확인
사례 2: 모바일 뱅킹 앱
• 목표: 주요 금융 기능 점검
• 테스트 항목:
(1) 로그인 기능 확인
(2) 잔액 조회 화면이 제대로 표시되는지 확인
(3) 송금 버튼 클릭 시 오류가 없는지 확인
1. 시간 절약
• 스모크 테스트는 빠르게 실행되며, 시스템의 기본 상태를 점검하여 시간을 절약합니다.
2. 빠른 피드백 제공
• 심각한 결함을 초기에 발견하여, 이후 단계에서의 시간 낭비를 줄입니다.
3. 시스템 준비 상태 확인
• 시스템이 더 깊은 테스트를 받을 준비가 되었는지 확인합니다.
4. 비용 절감
• 초기 단계에서 심각한 문제를 발견하면, 수정 비용을 줄일 수 있습니다.
1. 깊이 있는 검증은 아님
• 스모크 테스트는 시스템의 기본적인 작동 여부만 확인하므로, 심층적인 결함은 발견하지 못할 수 있습니다.
2. 테스트 커버리지가 제한적
• 핵심 기능에만 초점을 맞추며, 비핵심 기능은 다루지 않습니다.
3. 시나리오 선정의 중요성
• 올바른 테스트 시나리오를 선택하지 않으면, 중요한 결함을 놓칠 가능성이 있습니다.
1. Manual Smoke Testing (수동 스모크 테스트)
• QA 엔지니어가 직접 주요 기능을 실행하여 시스템의 상태를 확인
2. Automated Smoke Testing (자동화 스모크 테스트)
• Selenium, Appium 등 자동화 도구를 사용하여 주요 기능을 빠르게 점검
• 반복적인 작업을 줄이고, 효율성을 높일 수 있습니다.
1. 빠르게 시스템 전반을 이해
• 주니어 QA 엔지니어는 스모크 테스트를 통해 시스템의 핵심 기능을 빠르게 파악할 수 있습니다.
2. 테스트 프로세스 학습
• 스모크 테스트는 테스트 프로세스의 시작점으로, QA 엔지니어가 테스트를 단계적으로 학습하는 데 도움을 줍니다.
3. 효율적인 문제 보고
• 스모크 테스트에서 발견된 결함을 정확히 보고하며, QA 업무의 기본기를 다질 수 있습니다.
Smoke Testing은 소프트웨어 테스팅의 첫 단계로, 시스템의 기본 상태를 빠르게 점검합니다.
스모크 테스트는 깊이 있는 검증보다는, “이 시스템이 제대로 작동하고 있는가?”라는 단순한 질문에 답을 찾는 과정입니다.
주니어 QA 엔지니어에게 스모크 테스트는 테스팅 프로세스의 출발점이자, 시스템 이해와 테스트 기본기를 익히는 중요한 기회입니다.