Нужны ли браузерные тесты? - PullRequest
0 голосов
/ 27 июня 2019

Зачем кому-то проводить браузерные тесты (используя такие инструменты, как laravel dusk), когда они уже проводят «Тесты функций» и «Модульные тесты»?

Нужны ли браузерные тесты для приложения? а почему?

1 Ответ

0 голосов
/ 27 июня 2019

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

Модульное тестирование

  • Они используются для тестирования очень маленьких частей вашего приложения.
  • «Единица» - это отдельный класс, а не комбинация классов.
  • При модульном тестировании любое взаимодействие с другими классами, как правило, проверяется, поэтому проверяется только сам «модуль»
  • Модульный тест выполняется очень быстро
  • Поскольку модульные тесты бывают быстрыми, они часто используются для тестирования всех путей (например, счастливый путь, альтернативный путь и пути исключений)
  • Обычно делается в phpunit
  • Нет взаимодействия с базой данных

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

  • Они используются для проверки взаимодействия между различными единицами
  • Должно быть проверено только несколько путей, так как количество путей значительно увеличивается при использовании большего количества модулей (например, класс A имеет 3 пути, класс B имеет 4 пути, поэтому 100% охват в интеграционных тестах должен охватывать 12 путей)
  • Все еще довольно быстро
  • Обычно делается в phpunit
  • Может иметь взаимодействие с базой данных

Тестирование функций

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

Тестирование браузера

  • Они используются для тестирования функции от начала до конца
  • Имитирует, как реальный пользователь будет посещать ваше приложение
  • Может использоваться для проверки работоспособности функции в разных браузерах
  • В зависимости от оснастки можно записывать видео реальных движений мыши / нажатий клавиш
  • Очень медленно
  • Следует использовать только несколько избранных
  • Обычно делается в сумерках (для Laravel)

Заключение

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

...