Подтвердить что ты не робот

Что вы используете для модульного тестирования вашего веб-интерфейса?

Компания, в которой я сейчас работаю, использует Selenium для Uniting-Testing нашего пользовательского интерфейса. Что вы используете для Unit-Test вашего веб-интерфейса и насколько он эффективен?

4b9b3361

Ответ 1

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

Ответ 2

Я большой поклонник Селена. Высказывание "unit-testing your web ui" не совсем точно, как упоминалось в некоторых комментариях. Тем не менее, я считаю, что Selenium невероятно полезен для проведения подобных тестов и тестов на работоспособность в пользовательском интерфейсе.

Хороший способ начать использовать Selenium IDE как часть вашей разработки. То есть, только что среда IDE открыта, когда вы разрабатываете и пишете свой тест, когда идете сокращать время вашего dev. (Вместо того, чтобы вручную пройти через интерфейс, чтобы добраться до точки, где вы можете проверить все, над чем работаете, просто нажмите кнопку, и Selenium IDE позаботится об этом для вас. Это потрясающая экономия времени!)

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

Я думаю, что, как и все остальное, если вы приложите усилия для правильного изучения тестового инструмента (например, Selenium), ваши усилия будут окупиться лопатами. Вы отмечаете, что ваша компания уже использует Selenium для тестирования пользовательского интерфейса. Отлично. Работайте с ним. Если вы обнаружите, что Selenium трудно использовать или запутывать, придерживайтесь его. Кривая обучения действительно не так крута, как только вы немного изучите API.

Если я работаю над веб-приложением, мне редко приходится писать значительный объем кода без тестов Selenium RC для его резервного копирования. Насколько я могу найти Селен.:) (Надеюсь, это ответит на ваш вопрос..)

Ответ 3

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

Если вы это сделаете, то единственным кодом в пользовательском интерфейсе будет код, вызывающий бэкэнд, поэтому достаточно просто проверить бэкэнд.

Я использовал NUnit ASP в прошлом (на моей работе), и если вы настаиваете на модульном тестировании своего пользовательского интерфейса, я настоятельно рекомендую вам использовать НИЧЕГО, но NUnit ASP. Это боль для работы, и тесты, как правило, недействительны (нуждаются в пересмотре) после даже самых незначительных изменений пользовательского интерфейса (даже если испытуемые не изменяются).

Ответ 4

Мы используем QuickTestPro. Пока это эффективно, но выбор браузера ограничен. Самое приятное - это возможность записывать активность вашего браузера и преобразовывать его в набор шагов с возможностью сценариев. Также есть хороший .Net addin, поэтому, если у вас есть какой-либо код проверки, который вам нужно выполнить для разных этапов теста, вы можете писать методы в сборке и вызывать их из script.

Ответ 5

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

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

Я не думаю, что он заменяет Selenium, но он хорошо его дополняет.

Ответ 6

Мы используем Visual Studio 2008 Tester Edition.

Плюсы: Очень хорошо при захвате взаимодействия с пользователем

Захватывает вызовы Ajax

Очень легко сопоставить вход пользователя с базой данных, XML или CSV файлом.

Захваченный тест можно преобразовать в С# для большего контроля

Те же тесты могут использоваться для тестирования нагрузки и покрытия кода

Минусы:

VS2008 Tester Edition представляет собой отдельный SKU от обычного выпуска разработчика, что означает дополнительную стоимость

Вы можете быть в силе для Microsoft; -)

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

Мы склонны держать тесты короткими и резкими, сделать одно и выйти, вместо того, чтобы записывать 10-минутную попытку щелчка в одном тесте.

У нас есть несколько стандартных типов пользовательского интерфейса:

Тест меню: Войдите в систему как конкретный пользователь (или тип пользователя/роль) и убедитесь, что доступны все необходимые пункты меню

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

Тест поиска: Поиск с использованием данных из вашей базы данных или файла данных и обеспечение правильности данных, возвращаемых поиском

Тест ввода данных: Создайте новые recrords из файла данных, очистите базу данных, чтобы тесты могли выполняться несколько раз

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

Ответ 7

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

Одна вещь, которую вы обнаружите, это то, что Selenium, похоже, перезапускает браузер для каждого теста (вы можете установить его не для этого, но у нас были проблемы с памятью, когда мы это сделали). Это может быть медленным в Firefox, но не так уж плохо в IE (однажды я благодарен за интеграцию ОС Билла Гейтса).

Ответ 8

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

Предполагается, что он портирован в Firefox и Safari, но это происходит какое-то время.

Ответ 9

Отъезд Canoo Web Test. Он с открытым исходным кодом и построен на основе ANT.

Я потратил некоторое время на работу с ним для обучения выпускников программы QA Software, и это, кажется, довольно мощный инструмент тестирования.

Ответ 10

Selenium Grid может запускать ваши веб-тесты на нескольких компьютерах параллельно, что может ускорить процесс веб-тестирования

Ответ 11

В основном я использую CubicTest, который является плагином eclipse, который позволяет графически определять тесты. Он может экспортировать/запускать тесты через несколько библиотек, включая watir и selenium. Большинство людей просто используют бегуна Selenium, хотя.

Полное раскрытие: я один из разработчиков, поэтому я немного предвзято:)

Присмотритесь сюда: cubictest.openqa.org

-Erlend

Ответ 12

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

Идея состоит в том, что вы тестируете, чтобы вся система работала вместе перед развертыванием, а не обнаружила, что ваш сайт поврежден.

Ответ 13

В настоящее время мы используем Silk4J - ориентированный на Java подход к тестированию веб-интерфейса. Он может тестировать Flash, Flex, AIR, Silver Light, Win32, HTML и несколько других приложений.

Так как Silk4J может управлять приложениями Win32, он может напрямую управлять диалоговыми окнами браузера, что на шаг выше того, что Selenium может контролировать и особенно полезно для подсказок загрузки.

Ответ 14

Мы используем WatiN для тестирования системы и QUnit для тестирования модуля JavaScript.

Ответ 15

Молибден построен над Selenium и имеет некоторые дополнительные функции.