В чем разница между интеграционным тестированием и функциональным тестированием?

Являются ли тестирование функционального тестирования и интеграции одинаковым?

Вы начинаете тестирование с помощью модульного тестирования, а затем после завершения модульного тестирования вы отправляетесь на интеграционное тестирование, где вы тестируете систему в целом. Является ли функциональное тестирование таким же, как интеграционное тестирование? Вы все еще принимаете систему в целом и проверяете ее на соответствие функциональности.

Ответ 1

Интеграционное тестирование - это когда вы тестируете несколько компонентов и как они работают вместе. Например, как другая система взаимодействует с вашей системой или база данных взаимодействует с уровнем абстракции данных. Обычно для этого требуется полностью установленная система, хотя в ее чистых формах она не работает.

Функциональное тестирование - это когда вы тестируете систему в соответствии с функциональными требованиями продукта. Управление продуктами/проектами обычно записывает эти данные, и QA формализует процесс того, что пользователь должен видеть и испытывать, и каков конечный результат этих процессов. В зависимости от продукта это может быть автоматизировано или нет.

Ответ 2

Функциональное тестирование: Да, мы тестируем продукт или программное обеспечение в целом функционально независимо от того, работает ли он функционально или нет (кнопки тестирования, ссылки и т.д.)

Например: Страница входа

вы указываете имя пользователя и пароль, вы проверяете, ведет ли он вас на домашнюю страницу или нет.

Тестирование интеграции: Да, вы тестируете только интегрированное программное обеспечение, но вы проверяете, где происходит поток данных, и происходят ли какие-либо изменения в базе данных.

Например: Отправка электронной почты

Вы отправляете кому-то одно сообщение, есть поток данных, а также изменение в базе данных (отправленная таблица увеличивает значение на 1)

Помните - ссылки и изображения не являются интеграционными. Надеюсь, вы поняли, почему, потому что в базе данных нет изменений, просто нажав на ссылку.

Надеюсь, это помогло вам.

Ответ 3

Функциональное тестирование: это процесс тестирования, в котором тестируются каждый компонент модуля. Например: если веб-страница содержит текстовое поле, необходимо проверить флажки радиобота, кнопок и выпадающих и т.д.

Тестирование интеграции: процесс, в котором проверяется поток данных между двумя модулями.

Ответ 4

Это важное различие, но, к сожалению, вы никогда не найдете согласия. Проблема в том, что большинство разработчиков определяют их с их собственной точки зрения. Это очень похоже на дебаты о Плутоне. (Если бы это было ближе к Солнцу, это была бы планета?)

Единичное тестирование легко определить. Он тестирует CUT (Code Under Test) и ничего больше. (Ну, как можно меньше.) Это значит, что это издевательства, подделки и светильники.

На другом конце спектра есть то, что многие люди называют тестированием системной интеграции. Это тестирование как можно больше, но все еще ищет ошибки в вашем собственном CUT.

Но как насчет обширного пространства между?

  • Например, что, если вы проверите немного больше, чем CUT? Что делать, если вы включили функцию Фибоначчи вместо использования приспособления, которое вы ввели? Я бы назвал это функциональное тестирование, но мир не согласен со мной.
  • Что делать, если вы включили time() или rand()? Или что, если вы вызываете http://google.com? Я бы назвал это тестирование системы, но опять же, я один.

Почему это имеет значение? Потому что системные тесты ненадежны. Они необходимы, но иногда они могут потерпеть неудачу по причинам, не зависящим от вас. С другой стороны, функциональные тесты всегда должны проходить, а не случайным образом; если они бывают быстрыми, их можно также использовать с самого начала, чтобы использовать Test-Driven Development без написания слишком большого количества тестов для вашей внутренней реализации. Другими словами, я думаю, что модульные тесты могут быть более сложными, чем они того стоят, и у меня хорошая компания.

Я поставил тесты на 3 оси, со всеми их нулями при модульном тестировании:

  • Функциональное тестирование: использование реального кода глубже и глубже в вашем стеке вызовов.
  • Интеграция-тестирование: выше и выше ваш стек вызовов; другими словами, тестирование вашего CUT путем запуска кода, который будет использовать его.
  • Системное тестирование: все больше и больше неповторимых операций (планировщик O/S, часы, сеть и т.д.).

Тест может легко быть все 3 в разной степени.

Ответ 5

Интеграционное тестирование. Тестирование интеграции - это не что иное, как тестирование различных модулей. Вы должны проверить взаимосвязь между модулями. Например, вы открываете facebook, после чего вы видите страницу входа в систему после ввода идентификатора входа и пароля, вы можете видеть домашнюю страницу facebook, поэтому страница входа - это один модуль, а домашняя страница - это еще один модуль. вы должны проверять только связь между ними, когда вы вошли в систему, тогда только домашняя страница должна быть открыта, а не поле сообщения или что-то еще. Существует два основных типа интеграционного тестирования: подход TOP-DOWN и подход BOTTOM UP.

Функциональное тестирование. В функциональном тестировании вы должны думать только о вводе и выводе. В этом случае вы должны думать, как настоящий пользователь. Тестирование того, что вы дали и какой результат вы получили, - это функциональное тестирование. вам нужно только наблюдать за выходом. При функциональном тестировании вам не нужно тестировать кодирование приложения или программного обеспечения.

Ответ 6

В ореховой раковине...

Функциональное тестирование в основном фокусировалось на функции модуля или потока модуля, где в качестве интеграционного тестирования основное внимание уделялось интеграции модулей нашего приложения

Ответ 7

В тесте функционального тестирования основное внимание уделяется функциональности и вспомогательной функциональности приложения. Функциональность приложения должна работать правильно или нет.

В тесте тестирования интеграции необходимо проверить зависимость между модулями или подмодулями. Пример для записей модулей должен быть корректно отображен и отображен в другом модуле.

Ответ 8

Интеграционный тест: - Когда выполняется тестирование модуля и устранены проблемы с соответствующими компонентами, тогда все необходимые компоненты должны интегрироваться в одну систему, чтобы она могла выполнять операцию. После объединения компонентов системы Чтобы проверить, работает ли система правильно или нет, этот тип тестирования называется интеграционным тестированием.

Функциональное тестирование: - Тестирование в основном разделено на две категории: 1.Функциональное тестирование 2. Нефункциональное тестирование  ** Функциональное тестирование: - Проверить, работает ли программное обеспечение в соответствии с требованиями пользователя или нет. ** Нефункциональное тестирование: - Чтобы проверить, соответствует ли программное обеспечение критериям качества, таким как стресс-тест, тест безопасности и т.д.

Обычно Клиент предоставляет требования только для функционального теста и для не-функционального теста, требования не должны упоминаться, но приложение обязательно выполняет эти действия.

Ответ 9

Я бы сказал, что оба они тесно связаны друг с другом и очень сложно различать их. На мой взгляд, тестирование интеграции - это подмножество функционального тестирования.

Проверка функциональности основана на исходных требованиях, которые вы получаете. Вы будете тестировать поведение приложения, как и ожидалось, с требованиями.

Когда дело доходит до интеграционного тестирования, это взаимодействие между модулями. Если модуль отправляет вход, модуль B может обрабатывать его или нет.

Ответ 10

Тестирование интеграции

Можно видеть, как разные модули системы работают вместе. Мы в основном ссылаемся на интегрированную функциональность различных модулей, а не на разные компоненты системы. Для эффективной работы любой системы или программного продукта каждый компонент должен синхронизироваться друг с другом. В большинстве случаев инструмент, который мы использовали для тестирования интеграции, будет выбран, который мы использовали для модульного тестирования. Он используется в сложных ситуациях, когда модульное тестирование оказывается недостаточным для тестирования системы.

Функциональное тестирование

Его можно определить как тестирование отдельных функциональных возможностей модулей. Это относится к тестированию программного продукта на индивидуальном уровне, чтобы проверить его функциональность. Для проверки программного обеспечения для ожидаемых и неожиданных результатов разработаны тестовые примеры. Этот тип тестирования выполняется больше с точки зрения пользователя. То есть, он учитывает ожидание пользователя для ввода типа. Он также называется тестированием черного ящика, а также тестом с закрытым ящиком

Ответ 11

Проверка функциональности приложения обычно известна как функциональное тестирование, где, поскольку интеграционное тестирование - проверка потока данных с одного модуля на другой. Давайте возьмем пример приложения денежных переводов. Предположим, у нас есть страница, в которой мы вводим все учетные данные, и если мы нажимаем кнопку передачи, а после этого, если мы получим какой-либо успех, тогда это функциональное тестирование. Но в том же примере, если мы проверим перевод суммы, это будет тестирование интеграции.

Ответ 12

Авторы сильно расходятся. Я не верю, что для этого существует "правильная интерпретация". Это действительно зависит.

Например: большинство разработчиков Rails рассматривают модульные тесты как модельные тесты, функциональные тесты как тесты контроллера и интеграционные тесты, так как те, которые используют что-то вроде Capybara для изучения приложения с конечной точки зрения пользователя, то есть навигации по HTML-странице, используя DOM для проверки ожиданий.

Существуют также приемочные тесты, которые, в свою очередь, представляют собой "живую" документацию системы (обычно они используют Gherkin, чтобы они могли писать их на естественном языке), описывая все функции приложения через несколько сценариев, которые в свою очередь, автоматизированный разработчиком. Те, IMHO, можно было бы также рассматривать как функциональные тесты, так и интеграционные тесты.

Как только вы поймете ключевую концепцию, лежащую за каждым из них, вы становитесь более гибкими в отношении правильного или неправильного. Итак, снова IMHO, функциональный тест можно было бы также рассмотреть как интеграционный тест. Для теста интеграции, в зависимости от того, какой тип интеграции он осуществляет, он не может считаться функциональным тестом - но у вас, как правило, есть некоторые требования, когда вы пишете интеграционный тест, поэтому большую часть времени он может быть также рассмотрен как функциональный тест.