스모크 테스트란 무엇입니까?
⚡ 스마트 요약
스모크 테스트는 새로 빌드된 버전이 테스트하기에 충분히 안정적인지 여부를 판단하는 과정입니다. 이 페이지에서는 스모크 테스트를 언제 실행해야 하는지, 누가 실행하는지, 테스트 주기는 어떻게 되는지, 그리고 자동화된 테스트 도구가 최신 배포 파이프라인을 어떻게 관리하는지 설명합니다.

스모크 테스트란 무엇입니까?
연기 테스트 배포된 소프트웨어 빌드가 안정적인지 여부를 판별하는 소프트웨어 테스트 프로세스입니다. 스모크 테스트는 QA 팀이 추가 소프트웨어 테스트를 진행하도록 확인하는 것입니다. 소프트웨어 기능을 테스트하기 위해 각 빌드에서 실행되는 최소한의 테스트 세트로 구성됩니다. 스모크 테스트는 "빌드 검증 테스트" 또는 "신뢰 테스트"라고도 합니다.
간단히 말해, 스모크 테스트는 중요한 기능들이 제대로 작동하는지, 그리고 테스트 대상 빌드에 심각한 결함이 없는지 확인하는 과정입니다. 주요 기능에 대한 간략하고 빠른 회귀 테스트라고 할 수 있죠. 이를 통해 빌드에 결함이 있는지, 그리고 추가 테스트가 시간과 자원을 낭비하는 것인지 판단할 수 있습니다.
비교 자료 연기 대 정신 테스트
우리는 왜 스모크 테스트를 할까요?
스모크 테스트는 소프트웨어 개발 초기 단계에서 시스템의 정확성을 보장하는 데 중요한 역할을 합니다. 이를 통해 테스트에 소요되는 시간과 노력을 절약할 수 있습니다. 스모크 테스트를 완료한 후에야 기능 테스트를 시작할 수 있습니다.
- 연기 테스트를 통해 제작 과정에서 발생하는 모든 주요 문제점을 파악할 수 있습니다.
- 연기 테스트를 활용하면 대부분의 결함을 초기 단계에서 발견할 수 있습니다. 소프트웨어 개발.
- 연기 테스트를 통해 주요 결함의 감지 및 수정을 단순화합니다.
- 스모크 테스트를 통해 QA 팀은 새 코드로 인해 표면화되었을 수 있는 애플리케이션 기능의 결함을 찾을 수 있습니다.
- 스모크 테스트를 통해 주요 심각도 결함을 찾아냅니다.
예 1 : 로깅 창: 제출 버튼을 클릭하면 유효한 사용자 이름과 비밀번호를 사용하여 다음 창으로 이동할 수 있습니다.
예 2 : 사용자가 웹페이지에서 로그아웃할 수 없습니다.
연기 테스트는 언제 실시하나요?
이러한 이점은 적절한 시점에 테스트가 실행될 때만 실현됩니다. 스모크 테스트는 소프트웨어의 새로운 기능이 개발되어 QA/스테이징 환경에 배포된 기존 빌드에 통합될 때마다 수행됩니다. 이를 통해 모든 핵심 기능이 올바르게 작동하는지 확인할 수 있습니다. 아래 다이어그램은 스모크 테스트가 시작되기 전에 빌드가 QA 환경에 도달하는 과정을 보여줍니다.
이 테스트 방법에서는 개발팀이 빌드를 QA 환경에 배포합니다. 테스트 케이스 중 일부를 선택하여 테스터가 빌드의 핵심 기능에 대해 실행합니다. 이러한 테스트 케이스는 빌드에 존재하는 오류를 발견하도록 설계되었습니다. 이 테스트들이 모두 통과되면 QA팀은 다음 단계로 넘어갑니다. 기능 테스트.
오류가 발생하면 시스템을 개발 팀에 다시 처리해야 함을 나타냅니다. 빌드에 변화가 있을 때마다 스모크 테스트(Smoke Testing)를 실시하여 안정성을 확보합니다.
예시: - 로그인 창에 새로운 등록 버튼이 추가되고 빌드는 새로운 코드로 배포됩니다. 우리는 새로운 빌드에서 스모크 테스트를 수행합니다.
스모크 테스트는 빌드가 추가적인 공식 테스트를 받을 자격을 갖추었는지 확인하는 과정이며, 시스템 안정성과 요구사항 준수 여부를 입증하기 위해 설계되었습니다. 주요 목표는 심각한 문제를 조기에 발견하는 것입니다. 빌드에는 하나 이상의 제품 기능을 구현하는 데 필요한 모든 데이터 파일, 라이브러리, 재사용 가능한 모듈, 엔지니어링 구성 요소가 포함됩니다.
연기 테스트를 실시하지 않으면 어떻게 될까요?
초기 단계에서 연기 테스트를 실시하지 않으면 나중에 결함이 발견되어 비용이 많이 들 수 있습니다. 결함 후기 단계에서 발견되는 문제는 결과물 출시를 지연시키는 심각한 장애물이 될 수 있습니다.
누가 연기 테스트를 할 건가요?
QA 환경에 빌드를 출시한 후 QA 엔지니어/QA 리더가 연기 테스트를 수행합니다. 새로운 빌드가 있을 때마다 QA 팀은 연기 테스트를 수행하기 위해 애플리케이션의 주요 기능을 결정합니다. QA 팀은 테스트 중인 애플리케이션에서 문제가 있는지 확인합니다.
연기 테스트는 어떻게 진행하나요?
연기 테스트는 일반적으로 수동으로 수행되지만 자동화를 통해 동일한 작업을 수행할 수도 있습니다. 조직마다 다를 수 있습니다.
수동 연기 테스트
스모크 테스트는 핵심 경로의 진행 상황이 예상대로인지, 기능에 지장을 주지 않는지 확인하기 위해 수행됩니다. 우선순위가 높은 기능 테스트 케이스를 선택하여 시스템의 심각한 결함을 찾아냅니다. 테스트가 통과되면 기능 테스트를 계속 진행하고, 실패하면 빌드를 거부하고 개발팀에 수정을 요청합니다.
QA 팀은 새로운 빌드 버전을 사용하여 다시 스모크 테스트를 시작합니다. 스모크 테스트는 새 빌드에서 수행되며 시스템의 정확성을 유지하기 위해 이전 빌드와 통합됩니다. 스모크 테스트를 수행하기 전에 QA 팀은 올바른 빌드 버전을 확인해야 합니다.
자동화를 이용한 스모크 테스트
자동화 테스트 ~에 사용됩니다. Regression Testing하지만 스모크 테스트를 실행하기 위해 자동화된 테스트 케이스 세트를 사용할 수도 있습니다. 자동화 테스트를 활용하면 개발자는 배포 준비가 완료된 새 빌드가 있을 때마다 즉시 빌드를 확인할 수 있습니다.
새로운 소프트웨어 빌드가 배포될 때마다 수동으로 반복 테스트를 하는 대신, 기록된 스모크 테스트 케이스를 빌드에 대해 실행합니다. 주요 기능이 여전히 제대로 작동하는지 확인합니다. 테스트가 실패하면 빌드를 수정하고 즉시 빌드를 다시 배포할 수 있습니다. 이를 통해 시간을 절약하고 QA 환경에 대한 양질의 빌드를 보장할 수 있습니다.
테스트 엔지니어는 자동화된 도구를 사용하여 소프트웨어 빌드에서 수행되는 모든 수동 단계를 기록합니다.
연기 테스트 주기
아래 흐름도는 스모크 테스트 실행 과정을 보여줍니다. 빌드가 QA 환경에 배포되고 스모크 테스트가 통과되면 기능 테스트를 진행합니다. 스모크 테스트가 실패하면 해당 빌드의 문제가 수정될 때까지 테스트를 중단합니다.
연기 테스트 케이스 설계를 위한 최고의 사례
그 주기를 아는 것과,ping 신뢰성을 확보하는 데 필요한 소프트웨어 제품군은 별개의 문제입니다. 스모크 테스트 제품군은 간결하고 빠르며 반복 가능한 특성을 유지할 때 비로소 그 가치를 인정받습니다.
- 먼저 핵심 경로를 파악하십시오. 로그인, 검색, 데이터 입력, 결제, 로그아웃 등 제품을 상업적으로 사용할 수 있게 만드는 워크플로우를 나열하십시오. 이러한 워크플로우 중 하나라도 제대로 작동하지 않으면 해당 빌드는 테스터에게 아무런 가치가 없습니다.
- 스위트룸은 깊이는 얕되 폭은 넓게 유지하세요. 하나의 모듈을 심층적으로 탐구하는 대신, 모든 주요 모듈을 한 번씩 살펴보세요. 경계값, 부정 데이터, 오류 메시지 문구는 기능 테스트에서 다뤄야 할 부분이지, 여기서는 다룰 내용이 아닙니다.
- 실행 시간을 제한합니다. 대부분의 팀은 런닝 시간을 10분에서 15분 사이로 유지하고 스위트룸 인원을 20명에서 30명 정도로 제한합니다. 테스트 케이스한 시간 걸리는 달리기는 더 이상 관문이 아니라 병목 현상이 됩니다.
- 모든 빌드에서 동일한 테스트 케이스를 실행하세요: 일관성을 유지하면 테스트 선택 변경이 아닌 코드 자체에 오류의 원인을 귀속시킬 수 있습니다.
- 불안정하고 의존성이 높은 경우를 제거합니다. 코드 변경 없이 통과하거나 실패하는 경우는 게이트에 대한 신뢰를 무너뜨립니다. 불안정한 타사 서비스를 스텁 또는 모킹하는 것이 좋습니다. 테스트 자동화 프레임워크 있습니다.
- 명확한 판결 하나를 기록하십시오: 모든 경우에 대해 명확한 예상 결과가 하나만 있어야 논쟁 없이 빌드를 승인하거나 거부할 수 있습니다.
- 빌드를 사용하여 스위트 버전을 변경하세요. 테스트 대상 릴리스와 항상 일치하도록 테스트 케이스를 애플리케이션 코드와 동일한 저장소에 저장합니다.
Rev각 릴리스마다 제품군을 검토하여 더 이상 중요하지 않은 기능에 대한 케이스를 제거하고 새롭게 중요해진 워크플로를 추가하십시오.
CI/CD 파이프라인에서의 스모크 테스트
이렇게 설계된 도구 모음은 커밋할 때마다 실행할 수 있을 만큼 저렴하며, 이는 현대적인 배포 환경에서 요구되는 사항입니다. 지속적인 통합 서버와 같은 Jenkins 코드를 컴파일하고 스테이징 환경에 배포한 다음, 첫 번째 자동화 단계로 스모크 테스트를 실행합니다. 테스트가 성공적으로 완료되면 해당 아티팩트는 기능 및 회귀 테스트 단계로 넘어가고, 실패하면 파이프라인이 중단되고 커밋한 개발자에게 몇 분 내에 알림이 전송됩니다.
일반적으로 두 번의 실행이 이루어집니다. 첫 번째는 병합 전 실행으로 모든 풀 리퀘스트를 검증하여 메인 브랜치를 보호하고, 두 번째는 배포 후 실행으로 배포된 환경에 접근 가능하고 올바르게 구성되었는지 확인합니다. 지속적 배포를 실천하는 팀은 릴리스 직후 프로덕션 환경에서 간소화된 세 번째 실행을 추가하는 경우가 많습니다.
파이프라인은 하루에도 여러 번 테스트 스위트를 실행하므로, 테스트 케이스는 비대화형이고 자체적으로 정리되며 독립적이어야 합니다. 사람의 판단을 기다리거나 테스트 데이터를 남겨두는 케이스는 파이프라인 실행을 중단시킵니다.
연기 테스트의 장점
연기 테스트의 몇 가지 장점은 다음과 같습니다.
- 실행이 간편하고 속도가 빠릅니다.
- 중대한 오류와 결함은 초기 단계에서 쉽게 발견하고 수정할 수 있습니다.
- 시스템 품질을 향상시킵니다.
- 위험 감소
- 진행 상황을 평가하기가 더 쉽습니다.
- 테스트 노력과 시간 절약
- 통합 위험 최소화
⚠ 유의사항: 스모크 테스트 통과는 단지 빌드가 테스트 가능한 상태라는 것을 의미할 뿐입니다. 스모크 테스트는 주요 기능을 부분적으로만 건드리기 때문에 사소한 결함, 예외 상황, 그리고 거의 사용되지 않는 기능들은 기능 테스트 및 회귀 테스트가 실행될 때까지 드러나지 않습니다. 녹색 스모크 테스트 결과가 나왔다고 해서 빌드에 결함이 없다고 절대 생각해서는 안 됩니다.
스모크 테스트 vs 건전성 테스트 vs 회귀 테스트
세 가지 모두 코드 변경 후에 실행되므로 종종 혼동됩니다. 하지만 각 도구는 범위, 깊이, 그리고 각각이 답하는 질문에서 차이가 있습니다.
개발 환경에서 코드에 대해 수행하는 테스트를 QA 환경에 배포하기 전에 애플리케이션의 정확성을 확인하는 작업으로, 건전성 테스트(Sanity testing)라고 합니다. 이는 개발 중인 애플리케이션이 기본적인 기능 요구 사항을 충족하는지 검증하는 과정입니다.
온전성 테스트는 개발 단계의 완료를 결정하고 추가 테스트 단계를 위해 소프트웨어 제품을 통과할지 여부를 결정합니다.
| 기초 | 연기 테스트 | 건전성 검사 | 회귀 테스트 |
|---|---|---|---|
| 범위 | 넓고 얕은 | 좁고 깊다 | 넓고 깊은 |
| 질문에 대한 답변 | 이 빌드는 테스트하기에 충분히 안정적인가요? | 이 특정 해결 방법이 효과가 있나요? | 예전에 잘 작동하던 것 중에 고장난 게 있나요? |
| 순서 | 첫째, 모든 빌드에서 | 연기 테스트 통과 후 | 정상성 검사 후 |
| 일반적인 기간 | 10 - 15 분 | 30 - 60 분 | Hours 며칠 |
| 자동화 적합 | 매우 높은 | 난이도는 보통이며, 수동 작업이 많습니다. | 매우 높은 |
실제로 테스트는 순차적으로 진행됩니다. 빌드를 승인하기 위한 스모크 테스트, 전달된 변경 사항을 검증하기 위한 건전성 테스트, 그리고 일정이 허락하는 경우 회귀 테스트가 수행됩니다.
샘플 연기 테스트 사례 예
아래 표는 핵심 경로별로 한 행씩 구성된 간략한 모의 테스트를 보여줍니다.
| 티아이디 | 테스트 시나리오 | 기술 | 테스트 단계 | 예상 결과 | 실제 결과 | 지위 |
|---|---|---|---|---|---|---|
| 1 | 유효한 로그인 자격 증명 | 등록된 사용자가 사용자 이름과 비밀번호로 로그인할 수 있는지 확인하기 위해 웹 애플리케이션의 로그인 기능을 테스트합니다. | 1. 애플리케이션을 실행합니다 2. 로그인 페이지 탐색 3.유효한 사용자 이름을 입력하세요. 4.유효한 비밀번호를 입력하세요 5.로그인 버튼을 클릭하세요 |
로그인이 성공해야 합니다 | 예상대로 | 패스 |
| 2 | 아이템 기능 추가 | 장바구니에 상품 추가 가능 | 1.카테고리 목록 선택 2. 장바구니에 상품 추가 |
상품이 장바구니에 추가되어야 합니다. | 장바구니에 상품이 추가되지 않습니다. | 실패 |
| 3 | 로그아웃 기능 | 로그아웃 기능 확인 | 1. 로그아웃 버튼 선택 | 사용자가 로그아웃할 수 있어야 합니다. | 사용자가 로그아웃할 수 없습니다. | 실패 |


