블랙박스 테스트2018. 11. 24. 00:00

Smoke 및 Sanity 테스트는 Software Testing에서 가장 오해가되는 주제입니다. 이 주제에 관해서는 엄청난 양의 문헌이 있지만 대부분 혼란 스럽습니다. 다음 기사는 혼란을 해결하기위한 시도입니다.

Smoke 와 Sanity  테스트의 주요 차이점은 다음 다이어그램을 통해 알 수 있습니다.

 

위생 테스트와 연기 테스트 : 소개 및 차이점

 

 

위의 다이어그램을 이해하기 위해 먼저 다음을 이해하십시오.


소프트웨어 빌드 란 무엇입니까?

단 하나의 소스 코드 파일로 구성된 간단한 컴퓨터 프로그램을 개발하는 경우이 하나의 파일을 컴파일하고 링크하여 실행 파일을 생성하면됩니다. 이 과정은 매우 간단합니다. 
일반적으로 그렇지 않습니다. 일반적인 소프트웨어 프로젝트는 수백 또는 수천 개의 소스 코드 파일로 구성됩니다. 이러한 원본 파일에서 실행 프로그램을 만드는 것은 복잡하고 시간이 많이 소요되는 작업입니다. 
실행 가능한 프로그램을 작성하려면 "빌드"소프트웨어를 사용해야하며이 프로세스를 " 소프트웨어 빌드 "라고합니다.

스모크 테스트 란 무엇입니까?

스모크 테스트 는 프로그램의 중요한 기능이 잘 작동하는지 확인하기 위해 소프트웨어 빌드 후에 수행되는 일종의 소프트웨어 테스팅입니다. "이전에"실행되어 상세한 기능 또는 회귀 테스트가 소프트웨어 빌드에서 실행됩니다. 목적은 심하게 손상된 응용 프로그램을 거부하여 QA 팀이 소프트웨어 응용 프로그램을 설치하고 테스트하는 데 시간을 낭비하지 않도록합니다.

Smoke Testing에서 선택한 테스트 케이스는 시스템의 가장 중요한 기능 또는 구성 요소를 포괄합니다. 목표는 철저한 테스트를 수행하는 것이 아니라 시스템의 중요한 기능이 제대로 작동하는지 확인하는 것입니다. 
예를 들어 일반적인 스모크 테스트는 다음과 같습니다. - 응용 프로그램이 성공적으로 시작되었는지 확인하고 GUI가 반응하는지 확인합니다.

새너티 테스트 란 무엇입니까?

새너티 테스트는 버그가 수정되었고 이러한 변경으로 인해 추가로 문제가 발생하지 않는지 확인하기 위해 코드 또는 기능의 사소한 변경으로 소프트웨어 빌드를받은 후 수행되는 일종의 소프트웨어 테스팅입니다. 목표는 제안 된 기능이 대략 예상대로 작동하는지 확인하는 것입니다. 온 전성 테스트가 실패하면 빌드가 거부되어보다 엄격한 테스트에 소요되는 시간과 비용이 절약됩니다.

새로운 기능을 철저히 검증하는 것이 아니라 소프트웨어를 생산하는 동안 개발자가 합리성 (정당성)을 적용했는지 판단하는 것이 "아닙니다"입니다. 예를 들어 과학 계산기가 2 + 2 = 5의 결과를 제공한다면! 그런 다음 sin 30 + cos 50와 같은 고급 기능을 테스트 할 필요가 없습니다.

스모크 테스트 대 새너티 테스트 - 주요 차이점

스모크 테스트새너티 테스트

스모크 테스트는 프로그램의 중요한 기능이 잘 작동하는지 확인하기 위해 수행됩니다

새로운 기능 / 버그가 수정되었는지 확인하기 위해 새너티 테스트가 수행됩니다.
이 테스트의 목적은보다 엄격한 테스트를 진행하기 위해 시스템의 "안정성"을 검증하는 것입니다테스트의 목적은보다 엄격한 테스트를 진행하기 위해 시스템의 "합리성"을 검증하는 것입니다
이 테스트는 개발자 또는 테스터가 수행합니다.새너티 테스트는 대개 테스터가 수행합니다.
스모크 테스트는 대개 문서화되거나 스크립팅됩니다.새너티 테스트는 일반적으로 문서화되지 않고 스크립트되지 않습니다.
스모크 테스트는 수용 테스트의 하위 집합입니다.새너티 테스트는 회귀 테스트 의 하위 집합입니다.
스모크 테스트는 전체 시스템을 끝에서 끝까지 연습합니다.새너티 테스트는 전체 시스템의 특정 구성 요소 만 실행합니다.
스모크 테스트는 일반 건강 검진과 같습니다.새너티 테스트는 전문 건강 검진과 같습니다.

주의 사항.

  • 새너티 테스트 및 스모크 테스트는 애플리케이션이 엄격한 테스트를 수행하기에는 너무 결함이 있는지 여부를 신속하게 판단하여 시간과 노력을 낭비하지 않도록하는 방법입니다. 
  • 새너티 테스트는 테스터 수락 테스트라고도합니다.
  • 특정 빌드에서 수행 된 스모크 테스트는 빌드 확인 테스트 라고도 합니다.
  • 최고의 업계 관행 중 하나는 소프트웨어 프로젝트에서 Daily 빌드 및 연기 테스트를 수행하는 것입니다.
  • 스모크 및 새너티 테스트 는 수동으로 또는 자동화 도구를 사용하여 실행할 수 있습니다 . 자동화 된 도구가 사용되면 테스트는 종종 빌드 자체를 생성하는 동일한 프로세스에 의해 시작됩니다.
  • 테스트 요구에 따라 소프트웨어 빌드에 대해 정상 테스트와 스모크 테스트를 모두 실행해야 할 수도 있습니다. 업계에서는 정상 테스트를위한 테스트 케이스가 일반적으로 테스트 수행 속도를 높이기 위해 스모크 테스트의 테스트 케이스와 결합됩니다. 따라서 용어가 종종 혼동되고 상호 교환 가능하게 사용되는 것이 일반적입니다.


1. 사전 적합성 검토 테스트, Sanity Test의 개요

 가. Sanity Test의 정의

    - 새로운 SW version이 주요 테스팅 업무를 수행하기에 충분히 적합한가를 판단하기 위해 수행하는 테스트

 

 나. Sanity Test의 관점

   - 일부 제한된 기능에 대한 자세한 테스트를 좁고 깊은 접근 방식을 따름

   - 일반적으로 non-scripted 형식 임

   - 최종 사용자의 요구사항을 만족 여부를 증명하는데 사용 됨

   - Regression Test의 하위 집합임

 

 * Regression Test: 오류를 제거하거나 수정한 시스템이 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지를 확인하는 시험

 

 

2. Sanity Test와 Cursory test, Smoke test의 비교

  가. Cursory, Sanity, Smoke test 개념도

    - 본격적인 테스팅 업무를 수행하기 전, 테스트 케이스 없이 Cursory test

     -> Sanity test -> Smoke test 순서로 테스트가 진행됨

 

   나. Cursory, Sanity, Smoke test 비교

종류

내 용

Cursory

Test

개발자가 테스트 주체가 되어 테스트 케이스 없이 주요한 단위 모듈이나 시스템 모듈을 즉흥적으로 여기저기 테스트하는 기법

Sanity

Test

개발팀 혹은 개발자가 테스트 주체가 되어 테스트 케이스 없이 주요한 단위 모듈이나 시스템 모듈을 테스트하는 기법

Smoke

Test

- 개발팀이 제작한 주요 단위 모듈이나 시스템 모듈을 제3자 테스트팀 또는 개발팀 내의 테스트팀이 주체가 되어 테스트 케이스 없이 시행

- 본격적인 테스트의 수행에 앞서, 시스템, 컴포넌트, 소프트웨어 프로그램 등 테스트 대상이나 제품의 빌드가 구축된 테스트 환경에서 테스트가 가능한지 여부를 판단하기 위해 주요 모듈이나 시스템을 간단하게 테스트 하는 것.

- 테스트 환경을 처음 구축할 때 끝단(end-to-end)까지 점검하여 테스트 환경 자체에 문제가 없는지 확인한 다음 이상이 없을 때 실시

- 만일 테스트 대상이나 제품의 빌드가 테스트를 수행하기에 완성도가 낮다면 개발 조직이 제품 완성도를 높이는 작업을 하도록 테스트 분석 정보를 제공

 


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터