Study_Note

sanity test , smoke test , regression test 본문

QA_study

sanity test , smoke test , regression test

12월7일생 2024. 2. 26. 13:53
728x90
반응형

sanity test

Sanity Test 는 소프트웨어 개발 과정의 초기 단계에서 수행되는 테스트로, 주로 소프트웨어의 기본적인 기능이나 설정이 제대로 작동하는지를 확인하는 데 중점을 둡니다.

이 테스트는 소프트웨어가 최소한의 기능을 갖추고 있는지, 기본 기능이 작동하는지를 빠르게 평가하여 소프트웨어가 사용 가능한지 여부를 판단하는 데 사용됩니다. 이는 개발 과정의 초기 단계에서 중요한 역할을 합니다.

예를 들어, 웹 응용 프로그램을 개발하는 경우, Sanity Test는 다음과 같은 것들을 포함할 수 있습니다.

  • 웹 페이지에 로그인 폼이 제대로 표시되는지 확인
  • 로그인 기능이 작동하여 사용자가 인증을 수행할 수 있는지 확인
  • 메인 페이지에서 필수적인 메뉴나 버튼이 존재하고 클릭 가능한지 확인
  • 데이터베이스와의 연결이 설정되어 데이터가 올바르게 로드되는지 확인

이러한 확인 사항들은 주로 소프트웨어의 초기 버전이나 초기 빌드에 적용됩니다. Sanity Test를 통과하는 것은 소프트웨어가 최소한의 기능을 가지고 있으며, 사용자가 기본적인 작업을 수행할 수 있는 수준의 안정성을 갖추고 있다는 것을 의미합니다.

요약하면, Sanity Test는 소프트웨어의 초기 버전이나 초기 빌드가 사용 가능한지 여부를 신속하게 평가하기 위한 간단하고 효과적인 방법으로, 개발 과정의 초기 단계에서 중요한 역할을 합니다.


smoke test

Smoke Test 는 새로운 소프트웨어 빌드나 업데이트 이후에 전반적인 소프트웨어의 안정성을 빠르게 확인하기 위한 간단한 테스트입니다. 이는 소프트웨어의 주요 기능이나 핵심 기능이 예상대로 작동하는지를 검증하는 것에 중점을 둡니다.

이 테스트는 "스모크 테스트"라는 이름이 붙은 이유로, 과거에 전자제품을 처음 가동시킬 때 나오는 연기(스모크)가 나오지 않는지 확인하는 테스트에서 유래되었습니다. 따라서 Smoke Test는 소프트웨어가 "불붙지 않는다"는 즉, 기본적인 기능이나 안정성이 보장된다는 것을 확인하는 데 사용됩니다.

이 테스트는 보통 다음과 같은 단계로 수행됩니다:

  1. 준비 작업
    새로운 빌드나 업데이트를 받고, 테스트 환경을 설정합니다.
  2. 주요 기능 테스트
    주요 기능이나 핵심 기능을 실행하여 예상대로 작동하는지 확인합니다. 예를 들어, 로그인, 검색, 주문 등의 기능을 테스트합니다.
  3. 테스트 결과 확인
    각 테스트 케이스의 실행 결과를 확인하고, 문제가 발견되면 해당 문제를 기록하고 보고합니다.
  4. 결과 분석
    테스트 결과를 분석하여 소프트웨어의 전반적인 안정성을 판단합니다. 모든 테스트 케이스가 통과되면 소프트웨어가 Smoke Test를 통과한 것으로 간주됩니다.

Smoke Test는 전체적인 시간과 비용을 절약하는 데 도움이 되며, 초기 단계에서 소프트웨어의 중요한 결함을 신속하게 발견할 수 있는 장점이 있습니다. 또한, 개발자와 QA 팀 간의 소통을 원활하게 하고 개발 프로세스를 가속화하는 데 도움이 됩니다.

요약하면, Smoke Test는 새로운 빌드나 업데이트 이후에 전반적인 소프트웨어의 안정성을 확인하기 위한 간단하고 빠른 테스트로, 소프트웨어의 핵심 기능이 예상대로 작동하는지를 검증합니다.


regression test

Regression Test 는 소프트웨어의 변경 사항을 적용한 후에 기존의 기능이 여전히 올바르게 작동하는지를 확인하는 테스트입니다. 즉, 소프트웨어의 변경이나 업데이트 이후에 이전에 동작하던 기능이나 시스템이 여전히 예상대로 작동하는지를 검증하는 것이 목적입니다.

Regression Testing의 주요 특징은 다음과 같습니다

  1. 변경 사항 확인
    소프트웨어에 적용된 변경 사항을 확인하여 이전에 동작하던 기능에 어떤 영향을 미칠 수 있는지를 파악합니다.
  2. 이전 동작 확인
    변경 사항 적용 이전에 소프트웨어의 기존 동작을 기록하고 저장하여, 변경 사항 적용 후에 이전 동작이 여전히 유지되는지를 확인합니다.
  3. 전체적인 안정성 평가
    Regression Testing을 통해 소프트웨어의 전반적인 안정성을 평가합니다. 이를 통해 새로운 기능 추가나 버그 수정 등으로 인해 기존의 기능에 영향을 주는지를 확인할 수 있습니다.
  4. 자동화
    반복적이고 광범위한 테스트를 수행하기 위해 자동화된 도구를 사용하여 Regression Testing을 수행할 수 있습니다.

Regression Testing의 활용 예는 다음과 같습니다

  1. 새로운 버전 배포
    소프트웨어의 새로운 버전이나 업데이트를 배포하기 전에 Regression Testing을 수행하여 새로운 기능 추가나 수정된 부분이 이전 버전과 호환되는지를 확인합니다.
  2. 버그 수정
    버그 수정이나 코드 변경 후에 Regression Testing을 수행하여 해당 변경이 다른 기능에 영향을 미치지 않는지를 확인합니다.
  3. 통합 테스트
    여러 개발자나 팀이 개발한 소프트웨어 모듈을 통합한 후에 Regression Testing을 수행하여 각 모듈이 제대로 상호 작용하는지를 확인합니다.
  4. 운영 환경 변경
    소프트웨어가 동작하는 운영 환경이 변경된 경우에는 Regression Testing을 수행하여 변경된 환경에서도 소프트웨어가 예상대로 동작하는지를 확인합니다.

이러한 방식으로 Regression Testing은 소프트웨어의 변경 사항이나 업데이트가 전체적인 시스템 안정성에 미치는 영향을 확인하여 소프트웨어 품질을 유지하고 개선하는 데 중요한 역할을 합니다.


아래는 Sanity Test, Smoke Test, 그리고 Regression Testing을 비교한 내용입니다:

  1. 목적
    1. Sanity Test : 초기에 개발된 소프트웨어의 최소한의 기능이나 기본 기능이 제대로 작동하는지를 확인합니다. 초기 버전의 소프트웨어가 사용 가능한지 여부를 신속하게 확인하는 것이 목적입니다
    2. Smoke Test : 새로운 빌드나 업데이트 이후에 전반적인 소프트웨어의 안정성을 확인합니다. 주요 기능이나 핵심 기능이 예상대로 작동하는지를 평가합니다.
    3. Regression Test : 변경 사항이나 업데이트 이후에 기존의 기능이 여전히 올바르게 작동하는지를 확인합니다. 이전 버전에서 동작하던 기능이 변경 사항으로 인해 손상되지 않았는지를 검증합니다.
  2. 실행 시기
    1. Sanity Test : 초기 개발 단계에서 수행됩니다.
    2. Smoke Test : 새로운 빌드나 업데이트 이후에 수행됩니다.
    3. Regression Test : 변경 사항이나 업데이트 이후에 수행됩니다.
  3.  범위
    1. Sanity Test : 주로 소프트웨어의 핵심 기능이나 초기 설정을 확인합니다.
    2. Smoke Test : 전반적인 소프트웨어의 안정성을 확인합니다.
    3. Regression Test : 변경된 부분과 해당 변경이 영향을 미칠 수 있는 부분을 대상으로 합니다.
  4. 특징
    1. Sanity Test : 간단하고 빠르게 실행되며, 초기 안정성을 빠르게 평가합니다.
    2. Smoke Test : 주요 기능의 작동 여부 확인에 중점을 두며, 기본 안정성을 확인합니다.
    3. Regression Test : 변경 사항에 대한 기존 기능의 영향을 확인하고, 안정성을 평가합니다.

요약하면, Sanity Test는 초기 안정성을 평가하기 위해 빠르게 실행되고, Smoke Test는 전반적인 안정성을 확인하며, Regression Testing은 변경 사항에 대한 기존 기능의 영향을 확인하고 안정성을 평가합니다.

 

비교와 각각의 특징을 요약

특징 Sanity Test Smoke Test  Regression Test
목적 소프트웨어의 최소한의 기능이나 기본 기능을 확인하여 초기 안정성을 평가 새로운 빌드나 업데이트 이후에 전반적인 안정성을 확인하여 기본 기능을 평가 변경 사항 적용 후에 기존의 기능이 여전히 올바르게 작동하는지 평가
실행시기 초기 개발 단계에서 수행 새로운 빌드나 업데이트 이후에 수행 변경 사항이나 업데이트 이후에 수행
범위 기본적인 기능이나 초기 설정을 확인 전체적인 소프트웨어의 안정성을 확인 변경된 부분과 해당 변경이 영향을 미칠 수 있는 부분을 대상으로 함
특징 빠르고 간단하게 수행됨 기본 기능의 작동 여부 확인에 중점을 둠 변경 사항에 대한 기존 기능의 영향을 확인
주요예시 로그인 기능, 주요 기능 접근 여부 확인 주요 기능 작동, 기본 안정성 확인 버그 수정 후 기존 기능 확인, 새로운 버전 배포 전 소프트웨어 검증

 

'QA_study' 카테고리의 다른 글

APFD(Average Percentage of Faults Detected)  (0) 2024.08.01
test bed, test driver, test stub  (0) 2024.07.26
why perfect testing is impossible  (0) 2023.12.18
requirements engineering  (1) 2023.12.08
software life cycle model  (2) 2023.12.06