Модульный тест?Интеграционный тест?Регрессионный тест?Вступительный тест? - PullRequest
68 голосов
/ 06 октября 2011

Есть ли кто-нибудь, кто может четко определить эти уровни тестирования, так как мне трудно их различать при выполнении TDD или модульного тестирования.Пожалуйста, если кто-нибудь может уточнить, как, когда это осуществить?

Ответы [ 5 ]

90 голосов
/ 06 октября 2011

Кратко:

Юнит-тестирование - Вы юнит-тестирование каждого отдельного куска кода.Подумайте о каждом файле или классе.

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

Регрессионное тестирование - после интеграции (и, возможно, исправления) вы должны снова запустить свои модульные тесты.Это регрессионное тестирование, чтобы убедиться, что дальнейшие изменения не сломали уже протестированные блоки.Модульное тестирование, которое вы уже провели, произвело модульные тесты, которые можно запускать снова и снова для регрессионного тестирования.

Приемочные тесты - когда пользователь / клиент / предприятие получают функциональность, которую они (иливаш отдел тестирования) проведет приемочные испытания, чтобы убедиться, что функциональность соответствует их требованиям.

Вы также можете исследовать тестирование белого и черного ящиков.Есть также тестирование производительности и нагрузки, а также тестирование «способностей».

87 голосов
/ 07 октября 2011

Модульный тест: когда он терпит неудачу, он говорит вам, какой фрагмент вашего кода необходимо исправить.

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

Приемочный тест: когда он терпит неудачу, он сообщает вам, что приложение не выполняет то, что от него ожидает клиент.

Регрессионный тест: при неудаче он сообщает, что приложение больше не ведет себя так, как раньше.

11 голосов
/ 06 октября 2011

Вот простое объяснение для каждого из упомянутых тестов и когда они применимы:

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

Это означает, что он запускается всякий раз, когда вы пишете класс / метод, исправляете ошибку, меняете функциональность ...

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

Это означает, что он запускается всякий раз, когда недавно написанный блок интегрируется в остальную часть системы.или всякий раз, когда юнит, который взаимодействует с другими системами, обновлялся (и успешно завершил свои юнит-тесты).

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

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

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

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

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

11 голосов
/ 06 октября 2011

Я попробую:

  1. Юнит-тест: разработчик напишет его для тестирования отдельного компонента или класса.
  2. Интеграционный тест: более обширный тест, который будет включать несколькокомпоненты или пакеты, которые должны сотрудничать
  3. Регрессивный тест: внесение одного изменения в приложение вынуждает вас повторно выполнить ВСЕ тесты и проверить ВСЕ функциональные возможности.
  4. Приемочный тест: конечные пользователиили QA сделать это до подписания, чтобы принять доставку приложения.Он говорит: «Приложение соответствует моим требованиям».
8 голосов
/ 20 августа 2016

Юнит-тест: мой единственный метод работает правильно?(НИКАКИЕ зависимости или поддельные зависимости)

Интеграционный тест: работают ли два моих отдельно разработанных модуля, когда соединены вместе?

Регрессионный тест: Я что-то сломал, изменив / написав новый код?(выполнение модульных / интеграционных тестов с каждым коммитом является технически (автоматизированным) регрессионным тестированием).Чаще используется в контексте контроля качества - вручную или автоматически.

Приемочный тест : тестирование, выполненное клиентом на предмет того, что он «принимает» поставленное ПО

...