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

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

Существуют ли разные имена для этих тестов? Как некоторые люди, которые называют функциональные тесты модульных тестов и т. Д.?

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

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

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

На самом деле «интеграционный тест» используется для самых разных вещей: от полнофункциональных системных тестов от среды, сделанной так, чтобы она напоминала производство, для любого теста, который использует ресурс (например, базу данных или очередь), который не издевается.

Единичный тест не должен иметь никаких зависимостей от кода вне тестируемого устройства. Вы решаете, что такое блок, ища самую маленькую тестируемую часть. Там, где есть зависимости, их следует заменить ложными объектами. Mocks, stubs. Строка выполнения тестов начинается и заканчивается в самом маленьком тестируемом блоке.

Когда ложные объекты заменяются реальными объектами и выполнение тестов, stream пересекает другие тестируемые единицы. у вас есть интеграционный тест

Единичный тест выполняется (по возможности) общей изоляцией.

Тест интеграции выполняется, когда тестируемый объект или модуль работают так, как должно быть, с другими битами кода.

Единичный тест проверяет код, который у вас есть полный контроль, в то время как интеграционный тест проверяет, как ваш код использует или «интегрируется» с каким-то другим кодом.

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

Функциональные тесты связаны с интеграционными тестами, но более конкретно относятся к тестам, которые тестируют всю систему или приложение со всем кодом, работающим вместе, почти суперинтеграционным тестом.

Единичный тест обычно выполняется для одной функциональности, реализованной в программном модуле. Объем тестирования полностью находится в этом модуле SW. Единичный тест никогда не удовлетворяет конечным функциональным требованиям. Он подпадает под методологию тестирования whitebox.

В то время как тест интеграции выполняется для обеспечения реализации различных модhive SW. Тестирование обычно выполняется после интеграции уровня модуля в разработку ПО. Этот тест будет охватывать функциональные требования, но недостаточно для обеспечения проверки системы.

Давайте будем гением компьютера.