기능 테스트와 통합 테스트가 동일합니까?
단위 테스트를 통해 테스트를 시작한 다음 단위 테스트를 완료 한 후 시스템 전체를 테스트하는 통합 테스트를 진행합니다. 기능 테스트는 통합 테스트와 동일합니까? 여전히 시스템 전체를 사용하여 기능 적합성을 테스트합니다.
기능 테스트와 통합 테스트가 동일합니까?
단위 테스트를 통해 테스트를 시작한 다음 단위 테스트를 완료 한 후 시스템 전체를 테스트하는 통합 테스트를 진행합니다. 기능 테스트는 통합 테스트와 동일합니까? 여전히 시스템 전체를 사용하여 기능 적합성을 테스트합니다.
답변:
통합 테스트는 둘 이상의 구성 요소를 테스트하고 함께 작동하는 방식입니다. 예를 들어 다른 시스템이 시스템과 상호 작용하거나 데이터베이스가 데이터 추상화 계층과 상호 작용하는 방식을 예로들 수 있습니다. 가장 순수한 형태는 아니지만 일반적으로 이것은 완전히 설치된 시스템을 필요로합니다.
기능 테스트는 제품의 기능 요구 사항에 대해 시스템을 테스트하는 것입니다. 제품 / 프로젝트 관리는 일반적으로이를 작성하고 QA는 사용자가보고 경험해야하는 프로세스와 해당 프로세스의 최종 결과를 공식화합니다. 제품에 따라 자동화 될 수 있습니다.
기능 테스트 :
예, 우리는 기능적으로 제대로 작동하는지 여부에 관계없이 제품 또는 소프트웨어 전체를 기능적으로 테스트하고 있습니다 (테스트 버튼, 링크 등).
예를 들면 다음과 같습니다. 로그인 페이지.
사용자 이름과 비밀번호를 제공하면 홈 페이지로 이동하는지 여부를 테스트합니다.
통합 테스트 :
예, 통합 소프트웨어 만 테스트하지만 데이터 흐름이 발생하는 위치와 데이터베이스에서 발생하는 변경 사항이 있는지 테스트합니다.
예를 들면 : 이메일 보내기
메일 하나를 다른 사람에게 보내면 데이터 흐름이 있고 데이터베이스도 변경됩니다 (보낸 테이블의 값이 1 씩 증가 함)
링크와 이미지를 클릭하는 것은 통합 테스트가 아닙니다. 링크를 클릭하기 만해도 데이터베이스에 변화가 없기 때문에 이유를 이해했으면합니다.
이것이 도움이 되었기를 바랍니다.
이것은 중요한 차이점이지만 불행히도 결코 합의를 찾지 못할 것입니다. 문제는 대부분의 개발자가 자신의 관점에서이를 정의한다는 것입니다. 명왕성에 대한 토론과 매우 유사합니다. (태양에 더 가까우면 행성일까요?)
단위 테스트 는 쉽게 정의 할 수 있습니다. CUT ( Code Under Test )를 테스트 하고 다른 것은 없습니다. (가능한 한 적은 다른 것) 그것은 모의, 가짜 및 비품을 의미합니다.
스펙트럼의 다른 쪽 끝에는 많은 사람들이 시스템 통합 테스트 라고 부릅니다 . 가능한 한 많이 테스트하고 있지만 여전히 CUT에서 버그를 찾고 있습니다.
그러나 광대 한 창공은 어떻습니까?
time()
또는 rand()
? 아니면 전화하면 http://google.com
어떻습니까? 나는 그 시스템 테스트 라고 부를 것이다 . 그러나 다시, 나는 혼자이다.이것이 왜 중요한가? 시스템 테스트는 신뢰할 수 없기 때문입니다. 그것들은 필요하지만 때로는 통제 할 수없는 이유로 실패 할 수도 있습니다. 반면에 기능 테스트는 항상 통과해야하며 무작위로 실패하지 않아야합니다. 빠르면 내부 구현에 너무 많은 테스트를 작성하지 않고 테스트 주도 개발을 사용하기 위해 처음부터 사용할 수도 있습니다. 즉, 그 단위 테스트가 가치보다 더 많은 문제가 될 수 있다고 생각하고, 내가 가진 좋은 회사를 .
단위 테스트 에서 모든 0을 사용하여 3 축에 테스트를했습니다 .
시험은 3도에서 다양한 정도로 쉽게 될 수 있습니다.
나는 둘 다 서로 밀접하게 연결되어 있으며 서로를 구별하기가 매우 어렵다고 말합니다. 내 생각에 통합 테스트는 기능 테스트의 하위 집합입니다.
기능 테스트는 귀하가받는 초기 요구 사항을 기반으로합니다. 요구 사항에 따라 응용 프로그램 동작이 예상대로 테스트됩니다.
통합 테스트와 관련해서는 모듈 간의 상호 작용입니다. A 모듈이 입력을 보내면 B 모듈이이를 처리 할 수 있습니다.
통합 테스트-통합 테스트는 다른 모듈의 테스트 일뿐입니다. 모듈 간의 관계를 테스트해야합니다. 예를 들어 페이스 북을 열면 로그인 ID와 비밀번호를 입력 한 후 로그인 페이지가 표시됩니다. 페이스 북의 홈 페이지를 볼 수 있으므로 로그인 페이지는 하나의 모듈이고 홈 페이지는 다른 모듈입니다. 그들 사이의 관계 만 확인하면 로그인 할 때 메시지 상자 나 다른 것이 아닌 홈페이지 만 열어야 함을 의미합니다. TOP-DOWN 접근법과 BOTTOM UP 접근법의 2 가지 주요 통합 테스트 유형이 있습니다.
기능 테스트-기능 테스트에서는 입력 및 출력에 대해서만 생각하면됩니다. 이 경우 실제 사용자처럼 생각해야합니다. 어떤 입력을 받았으며 어떤 출력을 받았는지 테스트하는 것은 기능 테스트입니다. 출력 만 관찰하면됩니다. 기능 테스트에서는 응용 프로그램 또는 소프트웨어의 코딩을 테스트 할 필요가 없습니다.
통합 테스트 :-단위 테스트가 완료되고 관련 구성 요소에 대한 문제가 해결되면 필요한 모든 구성 요소가 하나의 시스템에서 통합되어 작업을 수행 할 수 있습니다. 시스템 구성 요소를 결합한 후 시스템이 올바르게 작동하는지 여부를 테스트하기 위해 이러한 종류의 테스트를 통합 테스트라고합니다.
기능 테스트 :-테스트는 주로 두 가지 범주로 나뉩니다. 1. 기능 테스트 2. 비 기능 테스트 ** 기능 테스트 :-소프트웨어가 사용자의 요구 사항에 따라 작동하는지 테스트합니다. ** 비 기능 테스트 :-소프트웨어가 스트레스 테스트, 보안 테스트 등과 같은 품질 기준을 충족하는지 테스트합니다.
일반적으로 고객은 기능 테스트 및 비 기능 테스트에 대한 요구 사항 만 제공하며 요구 사항은 언급하지 않아도되지만 응용 프로그램은 반드시 해당 활동을 수행해야합니다.
통합 테스트
기능 테스트
저자들은 이것에 대해 많은 의견을 나누고 있습니다. 나는 이것에 대한 "올바른"해석이 없다고 생각합니다. 정말 달려 있습니다.
예를 들어, 대부분의 Rails 개발자는 단위 테스트를 모델 테스트로, 기능 테스트를 컨트롤러 테스트로, 통합 테스트를 Capybara와 같은 것으로 최종 사용자의 관점에서 애플리케이션을 탐색합니다 (즉, DOM을 사용하여 페이지에서 생성 된 HTML 탐색) 기대를 확인합니다.
또한 승인 테스트가 있으며 시스템에 대한 "실시간"문서화 (일반적으로 Gherkin을 사용하여 자연어로 작성 가능), 여러 시나리오를 통해 응용 프로그램의 모든 기능을 설명하는 자동화 테스트 개발자에 의해. IMHO는 기능 테스트와 통합 테스트로도 간주 될 수 있습니다.
각각의 핵심 개념을 이해하면 옳고 그름에 대해보다 유연 해집니다. 따라서 다시 IMHO 기능 테스트는 통합 테스트로 간주 될 수 있습니다. 통합 테스트의 경우, 실행중인 통합 유형에 따라 기능 테스트를 고려하지 않을 수 있지만 일반적으로 통합 테스트를 작성할 때 몇 가지 요구 사항을 염두에 두어야합니다. 기능 테스트.