Гибкий Путь: Интеграционное тестирование по сравнению с Функциональным тестированием или обоими? [закрытый]

Это значение можно установить в / admin / config / content / clone

35
задан Christian Treppo 14 November 2012 в 20:30
поделиться

9 ответов

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

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

Вы не упомянули, есть ли у Вас непрерывное выполнение сервера интеграции. Я настоятельно рекомендовал бы настроить один (, Гудзон легко настроить). Затем у Вас могут быть свои интеграционные тесты и функциональные тесты, запущенные против каждой регистрации кода.

24
ответ дан Lambda 27 November 2019 в 07:18
поделиться

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

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

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

5
ответ дан krosenvold 27 November 2019 в 07:18
поделиться

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

4
ответ дан Andrew Grant 27 November 2019 в 07:18
поделиться

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

Это кажется, что у Вас есть достойное системное движение. Сохраните все это, если Вам нечего терять.

4
ответ дан Ali Afshar 27 November 2019 в 07:18
поделиться

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

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

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

"Быстрые" тесты, больше похожи на модульные тесты, где Вы можете довольно изолированный состояние отдельного объекта и поведение для теста.

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

я соглашаюсь, что Вы не должны становиться слишком одержимыми "разновидностью" теста, который Вы используете в качестве части разработки (выражение критериев допустимости, поскольку тесты являются исключением, конечно). Отдельный разработчик должен использовать их решение в решении, какие тесты лучше всего удовлетворяют своему коду. Настаивание на модульных тестах на предприятие не могло бы показать отказы, тест CRUD будет и так далее...

3
ответ дан Hans Løken 27 November 2019 в 07:18
поделиться

Я склонен не разделять различные ароматы тестирования в TDD. Для меня TDD является Разработка через тестирование, не Разработка через тестирование Единицы. Таким образом, моя практика TDD комбинирует модульные тесты, интеграционные тесты, функциональные и приемочные испытания. Это приводит к некоторым компонентам, покрываемым определенными типами тестов и компонентов других, покрываемых другими типами тестов очень прагматическим способом.

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

1
ответ дан Community 27 November 2019 в 07:18
поделиться

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

1
ответ дан danswain 27 November 2019 в 07:18
поделиться

Мне действительно нравится понятие Gojko Adzic, "сталкиваются с испытанием сохранения" как со способом определить то, что Вы тестируете через UI: http://gojko.net/2007/09/25/effective-user-interface-testing/

1
ответ дан Jeffrey Fredrick 27 November 2019 в 07:18
поделиться

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

0
ответ дан lapinferoce 27 November 2019 в 07:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: