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

StackOverflow https://stackoverflow.com/questions/7440

Вопрос

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

Это было полезно?

Решение

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

Другие советы

Я большой поклонник Selenium.Сказать «модульное тестирование вашего веб-интерфейса» не совсем точно, как упоминалось в некоторых комментариях.Тем не менее, я считаю, что Selenium невероятно полезен для проведения такого рода приемочных и работоспособных тестов пользовательского интерфейса.

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

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

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

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

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

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

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

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

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

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

Перехватывает вызовы Ajax

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

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

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

Минусы:

VS2008 Tester Edition — это отдельный SKU от обычной версии Developer Edition, что означает дополнительную плату.

У вас может быть аллергия на Microsoft ;-)

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

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

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

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

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

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

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

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

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

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

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

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

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

я использовал ВАТИР, что весьма неплохо.Мне он понравился, потому что это Ruby и позволяет тестировать интерактивность, доступные элементы и анализировать исходный код.Давно им не пользовался, но думаю, стало лучше.

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

Проверить Веб-тест Каноо.Он имеет открытый исходный код и построен на основе ANT.

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

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

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

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

Посмотрите повнимательнее здесь: cubtest.openqa.org

-Эрленд

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top