통합 테스트와 기능 테스트의 차이점은 무엇입니까? [닫은]
기능 테스트와 통합 테스트가 동일합니까?
단위 테스트를 통해 테스트를 시작한 다음 단위 테스트를 완료 한 후 시스템 전체를 테스트하는 통합 테스트를 진행합니다. 기능 테스트는 통합 테스트와 동일합니까? 여전히 시스템을 전체적으로 사용하고 기능 적합성을 테스트합니다.
통합 테스트는 둘 이상의 구성 요소를 테스트하고 함께 작동하는 방식입니다. 예를 들어 다른 시스템이 시스템과 상호 작용하거나 데이터베이스가 데이터 추상화 계층과 상호 작용하는 방식을 예로들 수 있습니다. 가장 순수한 형태는 아니지만 일반적으로 이것은 완전히 설치된 시스템을 필요로합니다.
기능 테스트는 제품의 기능 요구 사항에 대해 시스템을 테스트하는 것입니다. 제품 / 프로젝트 관리는 일반적으로이를 작성하고 QA는 사용자가보고 경험해야하는 프로세스와 해당 프로세스의 최종 결과를 공식화합니다. 제품에 따라 자동화 될 수 있습니다.
기능 테스트 :
예, 우리는 기능적으로 제대로 작동하는지 여부에 관계없이 제품 또는 소프트웨어 전체를 기능적으로 테스트하고 있습니다 (테스트 버튼, 링크 등).
예를 들면 다음과 같습니다. 로그인 페이지.
사용자 이름과 비밀번호를 제공하면 홈 페이지로 이동하는지 여부를 테스트합니다.
통합 테스트 :
예, 통합 소프트웨어 만 테스트하지만 데이터 흐름이 발생하는 위치와 데이터베이스에서 발생하는 변경 사항이 있는지 테스트합니다.
예를 들면 : 이메일 보내기
메일 하나를 다른 사람에게 보내면 데이터 흐름이 있고 데이터베이스도 변경됩니다 (보낸 테이블의 값이 1 씩 증가 함)
링크와 이미지를 클릭하는 것은 통합 테스트가 아닙니다. 링크를 클릭하여 데이터베이스에 변화가 없기 때문에 이유를 이해했으면합니다.
이것이 도움이 되었기를 바랍니다.
기능 테스트 : 모듈의 모든 구성 요소를 테스트하는 테스트 프로세스입니다. 예 : 웹 페이지에 텍스트 필드, 라디오 버튼, 버튼 및 드롭 다운 등의 구성 요소가 포함 된 경우 확인해야합니다.
통합 테스트 : 두 모듈 간의 데이터 흐름을 확인하는 프로세스입니다.
이것은 중요한 차이점이지만 불행히도 결코 합의를 찾지 못할 것입니다. 문제는 대부분의 개발자가 자신의 관점에서이를 정의한다는 것입니다. 명왕성에 대한 토론과 매우 유사합니다. (태양에 더 가까우면 행성일까요?)
단위 테스트 는 쉽게 정의 할 수 있습니다. CUT ( Code Under Test )를 테스트 하고 다른 것은 없습니다. (가능한 한 적은 다른 것) 그것은 모의, 가짜 및 비품을 의미합니다.
스펙트럼의 다른 쪽 끝에는 많은 사람들이 시스템 통합 테스트 라고 부릅니다 . 가능한 한 많이 테스트하고 있지만 여전히 자체 CUT에서 버그를 찾고 있습니다.
그러나 광대 한 창공은 어떻습니까?
- 예를 들어, CUT보다 조금만 테스트하면 어떨까요? 주입 한 픽스쳐를 사용하는 대신 피보나치 함수를 포함 시키면 어떻게 될까요? 나는 그 기능 테스트 라고 부를 것이지만 세상은 나와 동의하지 않습니다.
- 당신이 포함하는 경우
time()
또는rand()
? 아니면 전화하면http://google.com
어떻습니까? 나는 그 시스템 테스트 라고 부를 것이다 . 그러나 다시, 나는 혼자이다.
이것이 왜 중요한가? 시스템 테스트는 신뢰할 수 없기 때문입니다. 그것들은 필요하지만 때로는 통제 할 수없는 이유로 실패 할 수도 있습니다. 반면에 기능 테스트는 항상 통과해야하며 무작위로 실패하지 않아야합니다. 빠르면 내부 구현에 대해 너무 많은 테스트를 작성하지 않고 테스트 주도 개발을 사용하기 위해 처음부터 사용할 수도 있습니다. 다시 말해, 단위 테스트는 가치가있는 것보다 더 어려울 수 있다고 생각하며 좋은 회사가 있습니다.
단위 테스트 에서 모든 0을 사용하여 3 축에 테스트를했습니다 .
- 기능 테스트 : 실제 코드를 더 깊이 사용하고 콜 스택을 더 깊이 사용합니다.
- 통합 테스트 : 더 높은 최대 사용자의 통화 스택; 즉, 사용하는 코드를 실행하여 CUT을 테스트하십시오.
- 시스템 테스트 : 점점 더 많은 반복 가능한 작업 (O / S 스케줄러, 시계, 네트워크 등 )
시험은 3도에서 다양한 정도로 쉽게 될 수 있습니다.
통합 테스트-통합 테스트는 다른 모듈의 테스트 일뿐입니다. 모듈 간의 관계를 테스트해야합니다. 예를 들어 페이스 북을 열면 로그인 ID와 비밀번호를 입력 한 후 로그인 페이지가 표시됩니다. 페이스 북의 홈 페이지를 볼 수 있으므로 로그인 페이지는 하나의 모듈이고 홈 페이지는 다른 모듈입니다. 그들 사이의 관계 만 확인하면 로그인 할 때 메시지 상자 나 다른 것이 아닌 홈페이지 만 열어야 함을 의미합니다. TOP-DOWN 접근법과 BOTTOM UP 접근법의 두 가지 주요 통합 테스트 유형이 있습니다.
기능 테스트-기능 테스트에서는 입력 및 출력에 대해서만 생각하면됩니다. 이 경우 실제 사용자처럼 생각해야합니다. 어떤 입력을 받았으며 어떤 출력을 받았는지 테스트하는 것은 기능 테스트입니다. 출력 만 관찰하면됩니다. 기능 테스트에서는 응용 프로그램 또는 소프트웨어의 코딩을 테스트 할 필요가 없습니다.
나는 둘 다 서로 밀접하게 연결되어 있으며 서로를 구별하기가 매우 어렵다고 말합니다. 내 생각에 통합 테스트는 기능 테스트의 하위 집합입니다.
기능 테스트는 귀하가받는 초기 요구 사항을 기반으로합니다. 요구 사항에 따라 응용 프로그램 동작이 예상대로 테스트됩니다.
통합 테스트와 관련해서는 모듈 간의 상호 작용입니다. A 모듈이 입력을 보내면 B 모듈이이를 처리 할 수 있습니다.
기능 테스트 테스터는 애플리케이션의 기능 및 하위 기능에만 중점을 둡니다. 앱의 기능이 제대로 작동해야합니다.
통합 테스팅에서 테스터는 모듈 또는 하위 모듈 간의 종속성을 확인해야합니다. 모듈에 대한 예제는 다른 모듈에서 올바르게 가져 와서 표시되어야합니다.
통합 테스트 :-단위 테스트가 완료되고 관련 구성 요소에 대한 문제가 해결되면 필요한 모든 구성 요소가 하나의 시스템에서 통합되어 작업을 수행 할 수 있습니다. 시스템의 구성 요소를 결합한 후 시스템이 제대로 작동하는지 테스트하기 위해 이러한 종류의 테스트를 통합 테스트라고합니다.
기능 테스트 :-테스트는 주로 두 가지 범주로 나뉩니다. 1. 기능 테스트 2. 비 기능 테스트 ** 기능 테스트 :-소프트웨어가 사용자의 요구 사항에 따라 작동하는지 테스트합니다. ** 비 기능 테스트 :-소프트웨어가 스트레스 테스트, 보안 테스트 등과 같은 품질 기준을 충족하는지 테스트합니다.
일반적으로 고객은 기능 테스트 및 비 기능 테스트에 대한 요구 사항 만 제공하며 요구 사항은 언급하지 말아야하지만 응용 프로그램은 반드시 해당 활동을 수행해야합니다.
통합 테스트
Functional Testing
Checking the functionality of the application is generally known as functional testing, where as the integration testing is to check the flow of data from one module to other. Lets take example of money transfer app.Suppose we have page in which we enter all the credentials and if we press transfer button and after that if we getting any success, Then this is functional testing. But in same example if we verify the amount transfer then it is integration testing.
In a nutshell... Your question can be treated as apples and oranges. Because of the fact that there aren't similarities to compare.
Functional testing mainly focused on the function or flow of the module. Here the expectation is that we test out a way to find our functional aspect is working as expected.
Integration testing is focused on integrating the modules of our application and can also include functional tests, but when the modules are integrated.
Authors diverge a lot on this. I don't believe there is "the" correct interpretation for this. It really depends.
For example: most Rails developers consider unit tests as model tests, functional tests as controller tests and integration tests as those using something like Capybara to explore the application from a final user's perspective - that is, navigating through the page's generated HTML, using the DOM to check for expectations.
There is also acceptance tests, which in turn are a "live" documentation of the system (usually they use Gherkin to make it possible to write those in natural language), describing all of the application's features through multiple scenarios, which are in turn automated by a developer. Those, IMHO, could be also considered as both, functional tests and integration tests.
Once you understand the key concept behind each of those, you get to be more flexible regarding the right or wrong. So, again IMHO, a functional test could also be considered an integration test. For the integration test, depending on the kind of integration it's exercising, it may not be considerate a functional test - but you generally have some requirements in mind when you are writing an integration test, so most of the time it can be also considerate as a functional test.
'Programming' 카테고리의 다른 글
보호 된 메모리를 읽거나 쓰려고했습니다. (0) | 2020.07.10 |
---|---|
** kwargs를 사용하여 ** kwargs 인수를 다른 함수에 전달 (0) | 2020.07.10 |
지옥을 보호-참조 클래스를 찾을 수 없습니다 (0) | 2020.07.10 |
C # : 추상 클래스는 인터페이스를 구현해야합니까? (0) | 2020.07.10 |
MySQL, MySQLi 및 PDO의 차이점은 무엇입니까? (0) | 2020.07.10 |