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

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

11.08.2008 00:05:36
15 ОТВЕТОВ
РЕШЕНИЕ

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

10
28.06.2018 11:10:56

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

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

3
11.08.2008 01:11:07

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

4
11.08.2008 01:12:54

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

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

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

6
11.08.2008 02:52:41

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

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

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

4
8.06.2013 13:50:40

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

Предположительно он переносится на Firefox и Safari, но это уже давно происходит.

3
23.08.2008 19:55:38

Проверьте Canoo Web Test . Это открытый исходный код и построен на основе ANT.

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

3
29.08.2008 21:54:08

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

3
6.09.2008 12:48:59

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

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

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

-Erlend

3
6.09.2008 13:02:50

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

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

2
16.09.2008 14:10:27

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

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

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

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

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

17
18.09.2008 12:54:04

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

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

Захватывает Ajax звонки

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

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

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

Минусы:

VS2008 Tester Edition - это отдельный SKU от обычного Developer Edition, что означает дополнительные расходы

Вы можете быть настороже с Microsoft ;-)

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

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

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

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

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

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

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

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

4
19.09.2008 12:15:47

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

0
11.01.2009 23:28:19

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

0
21.07.2010 04:38:30

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

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

1
30.05.2012 04:32:46