[unit-testing] 단위 테스트, 통합 테스트, 연기 테스트 및 회귀 테스트 란 무엇입니까?

단위 테스트, 통합 테스트, 연기 테스트 및 회귀 테스트 란 무엇입니까? 그들 사이의 차이점과 각 도구에 사용할 수있는 도구는 무엇입니까?

예를 들어, 단위 테스트통합 테스트에 JUnitNUnit 을 사용 합니다. 마지막 두 가지, 연기 테스트 또는 회귀 테스트를 위한 도구가 있습니까?



답변

  • 단위 테스트 : 클래스의 단일 방법 계약의 한 지점을 지정하고 테스트합니다. 이것은 매우 좁고 잘 정의 된 범위를 가져야합니다. 외부 세계와의 복잡한 의존성과 상호 작용은 스터 빙되거나 조롱 됩니다.

  • 통합 테스트 : 여러 하위 시스템의 올바른 상호 운용성을 테스트합니다. 두 클래스 간의 통합 테스트에서 프로덕션 환경과의 통합 테스트에 이르기까지 전체 스펙트럼이 있습니다.

  • 스모크 테스트 (일명 위생 검사) : 테스트중인 시스템이 호출 될 때 정상적으로 돌아가고 터지지 않는지 확인하는 간단한 통합 테스트입니다.

    • 연기 테스트는 전자 장치와 유사하며 회로를 켤 때 첫 번째 테스트가 발생합니다 (흡연하면 나쁩니다!) …
    • … 그리고 명백하게배관 파이프 시스템이 그대로 연기에 의해 채워진 후 육안된다. 연기가 나면 시스템이 누출 된 것입니다.
  • 회귀 테스트 : 버그가 수정되었을 때 작성된 테스트입니다. 이 특정 버그가 다시 발생하지 않도록합니다. 전체 이름은 “비 회귀 테스트”입니다. 응용 프로그램을 변경하기 전에 응용 프로그램이 동일한 결과를 제공하는지 확인하기위한 테스트 일 수도 있습니다.

여기에 다음을 추가합니다.

  • 승인 테스트 : 기능 또는 사용 사례가 올바르게 구현되었는지 테스트합니다. 통합 테스트와 비슷하지만 관련된 구성 요소가 아닌 제공 사례에 중점을 둡니다.

  • 시스템 테스트 : 시스템을 블랙 박스로 테스트합니다. 다른 시스템에 대한 종속성은 종종 테스트 중에 모의되거나 스터 빙됩니다 (그렇지 않으면 통합 테스트에 가깝습니다).

  • 비행 전 점검 : 프로덕션 환경에서 반복되는 테스트로 ‘내 기계의 빌드’증후군을 완화합니다. 이것은 종종 환경과 같은 프로덕션에서 수락 또는 연기 테스트를 수행하여 실현됩니다.


답변

  • 단위 테스트 : 수업의 내부 작업을 테스트하는 자동 테스트. 다른 리소스와 관련이없는 독립형 테스트 여야합니다.
  • 통합 테스트 : 환경에서 수행되는 자동 테스트로 단위 테스트와 유사하지만 외부 리소스 (db, 디스크 액세스)
  • 회귀 테스트 : 새로운 기능이나 버그 수정을 구현 한 후 과거에 작동했던 시나리오를 다시 테스트합니다. 여기에서는 새로운 기능이 기존 기능을 손상시킬 가능성을 다룹니다.
  • 연기 테스트 : 테스터가 테스트를 계속할 것인지 결론을 내릴 수있는 첫 번째 테스트.

답변

모든 사람은 약간 다른 정의를 갖게되며 종종 회색 영역이 있습니다. 하나:

  • 단위 테스트 :이 작은 부분 (가능한 한 고립 된)이 작동합니까?
  • 통합 테스트 :이 두 개 이상의 구성 요소가 함께 작동합니까?
  • 연기 테스트 :이 전체 시스템 (가능한 한 생산 시스템에 가깝습니다)이 합리적으로 잘 연결되어 있습니까? (즉, 블랙홀을 만들지 않을 것이라고 확신합니까?)
  • 회귀 테스트 : 이전에 수정 한 버그를 실수로 다시 도입 했습니까?

답변

내가 방금 알게 된 새로운 테스트 범주는 카나리아 테스트 입니다. 카나리아 테스트는 실제 환경 에서 정기적으로 실행 되는 자동화 된 비파괴 테스트로 , 실패하면 실제로 나쁜 일이 발생했습니다.

예를 들면 다음과 같습니다.

  • 출연 오직 개발 / 퉁명스러운에서 사용할 수 있어야 데이터를 가지고 라이브를 ?
  • 백그라운드 프로세스가 실행되지 않았습니까?
  • 사용자가 로그온 할 수 있습니까?

답변

소프트웨어 테스트 기술을위한 최고의 웹 사이트 중 하나에서 답변하십시오.

소프트웨어 테스트의 종류 – 전체 목록 여기를 클릭하십시오

여기에 이미지 설명을 입력하십시오

꽤 긴 설명이며 여기에 붙여 넣지 않을 것입니다. 그러나 모든 테스트 기술을 알고 싶은 사람에게는 도움이 될 수 있습니다.


답변

단위 테스트 : 특정 구성 요소 (예 : 클래스)가 설계된대로 기능을 작성 또는 수정했는지 확인 이 테스트는 수동 또는 자동화가 가능하지만 구성 요소의 경계를 넘어서는 것은 아닙니다.

통합 테스트 : 특정 구성 요소의 상호 작용이 설계된대로 작동하는지 확인 통합 테스트는 단위 레벨 또는 시스템 레벨에서 수행 할 수 있습니다. 이러한 테스트는 수동 또는 자동화 될 수 있습니다.

회귀 테스트 : 기존 코드에 새로운 결함이 없는지 확인합니다. 이러한 테스트는 수동 또는 자동화 될 수 있습니다.

당신에 따라 SDLC ( 폭포 , RUP , 민첩 등) 특히 테스트 ‘단계’에서 수행 될 수있다 또는 모두 수행 할 수있다, 더 많거나 적은, 같은 시간에. 예를 들어, 단위 테스트는 통합 및 회귀 테스트를 위해 코드를 테스터에게 넘기는 개발자로 제한 될 수 있습니다. 그러나 다른 접근 방식에는 개발자가 단위 테스트 및 일정 수준의 통합 및 회귀 테스트를 수행 할 수 있습니다 ( 연속 통합 및 자동화 된 단위 및 회귀 테스트와 함께 TDD 접근 방법 사용 ).

툴 세트는 코드베이스에 크게 의존하지만 단위 테스트 (JUnit)를위한 많은 오픈 소스 툴이 있습니다. HP의 (Mercury) QTP 또는 Borland의 Silk Test 는 모두 자동 통합 및 회귀 테스트를위한 도구입니다.


답변

단위 테스트 : 응용 프로그램에서 개별 모듈 또는 독립 구성 요소의 테스트는 단위 테스트 로 알려져 있습니다. 단위 테스트는 개발자가 수행합니다.

통합 테스트 : 모든 모듈을 결합하고 응용 프로그램을 테스트하여 모듈 간의 통신 및 데이터 흐름이 올바르게 작동하는지 확인합니다. 이 테스트는 개발자도 수행했습니다.

연기 테스트 연기 테스트 에서 응용 프로그램을 얕고 넓은 방식으로 확인합니다. 연기 테스트에서 응용 프로그램의 주요 기능을 확인합니다. 응용 프로그램에 차단 문제가있는 경우 개발자 팀에보고하고 개발 팀에서이를 해결하고 결함을 수정 한 후 테스트 팀에 다시 제공합니다. 이제 테스트 팀은 모든 모듈을 검사하여 한 모듈에서 변경 한 내용이 다른 모듈에 영향을 미치는지 확인합니다. 연기 테스트 에서는 테스트 사례가 스크립팅됩니다.

변경되지 않은 모듈이 결함을 일으키지 않도록 동일한 테스트 케이스를 반복적으로 실행하는 회귀 테스트 . 회귀 테스트 기능 테스트 수행