Какой смысл селена?

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

Я не получаю его...

28
задан some_other_guy 17 August 2012 в 06:40
поделиться

15 ответов

Это позволяет Вам писать функциональные испытания в своей среде тестирования "единицы" (проблемой является именование позже).

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

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

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

Обновление 1: Уведомление, что тесты также запустят JavaScript на страницах, который помогает тестирующим очень динамическим страницам. Также обратите внимание, что можно выполнить его с различными браузерами, таким образом, можно проверить проблемы перекрестного браузера (по крайней мере, на функциональной стороне, как все еще необходимо проверить визуальное).

Также примечание, что, поскольку сумма страниц, покрытых тестами, растет, можно создать тесты с полными циклами взаимодействий быстро. Используя шаблон Объекта страницы они похожи:

   LastPage aPage = somePage
      .SomeAction()
      .AnotherActionWithParams("somevalue")
      //... other actions
      .AnotherOneThatKeepsYouOnthePage(); 
  // add some asserts using methods that give you info
  // on LastPage (or that check the info is there).
  // you can of course break the statements to add additional 
  // asserts on the multi-steps story.

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

44
ответ дан n00begon 28 November 2019 в 02:19
поделиться

Я использую его для тестирования много форм страницы, поскольку это вынимает нагрузку из ввода того же самого много раз. И наличие способности проверить, присутствуют ли определенные элементы, является большим. Снова, с помощью формы в качестве примера заключительный тест селена мог проверить, нравится ли чему-то, говорят, "Благодарен за то, что г-н Rogers заказывает...", появляется в конце процесса упорядочивания.

0
ответ дан Jan Gorman 28 November 2019 в 02:19
поделиться

Для приложений с богатыми веб-интерфейсами (как много проектов GWT) Selenium/Windmill/WebDriver/etc является способом создать приемочные испытания. В случае GWT/GXT заключительный код пользовательского интерфейса находится в JavaScript, настолько создающие приемочные испытания с помощью нормальных junit тестовых сценариев в основном исключены. С Селеном можно создать сценарии тестирования, соответствующие действиям реального пользователя и ожидаемым результатам.

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

0
ответ дан Petteri Hietavirta 28 November 2019 в 02:19
поделиться

Если Вам не нравится подход Селена, можно попробовать HtmlUnit, я нахожу это более полезным и легким интегрироваться в существующие модульные тесты.

0
ответ дан Jonas Klemming 28 November 2019 в 02:19
поделиться

Точка является способностью автоматизировать то, что было перед ручным и трудоемким тестом. Да, это занимает время для записи тестов, но когда-то записанный, они могут выполняться так же часто, как команда желает. Каждый раз, когда они выполняются, они проверяют, что поведение веб-приложения последовательно. Селен не является идеальным продуктом, но это очень хорошо в автоматизации реалистического взаимодействия с пользователем с браузером.

0
ответ дан Benjamin Lee 28 November 2019 в 02:19
поделиться

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

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

1
ответ дан 28 November 2019 в 02:19
поделиться

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

1
ответ дан Ben S 28 November 2019 в 02:19
поделиться

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

1
ответ дан duffymo 28 November 2019 в 02:19
поделиться

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

существуют другие способы включить целую стопку Вашего приложения путем рассмотрения сгенерированного HTML вместо того, чтобы запустить браузер для рендеринга его, такой как , Webrat и Механизирует . Большинство из них не имеет способа взаимодействовать с тяжелым JavaScript UIs; Селену покрыли Вас несколько здесь.

2
ответ дан undees 28 November 2019 в 02:19
поделиться

Суть та же, что и для любого вида автоматического тестирования: написание кода может занять больше времени, чем «просто щелкать мышью и визуально проверять, что работает», может быть, в 10 или даже в 50 раз больше.

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

3
ответ дан Michael Borgwardt 28 November 2019 в 02:19
поделиться

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

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

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

На любом достойном размере веб-сайта, тесты должны быть автоматизированы.

5
ответ дан Lee B 28 November 2019 в 02:19
поделиться

Если ваше приложение содержит более 50 страниц, и вам нужно делать частые сборки и тестировать его на X основных браузеров, это имеет большой смысл.

9
ответ дан Hawk Kroeger 28 November 2019 в 02:19
поделиться

Поскольку можно повториться ТОТ ЖЕ тест много раз.

15
ответ дан Luke 28 November 2019 в 02:19
поделиться

Это - общая вещь, которая сказана о поблочном тестировании в целом. "Я должен написать вдвое больше кода для тестирования?" Те же принципы применяются здесь. Выплата является способностью изменить Ваш код и знать, что Вы ничего не повреждаете.

21
ответ дан EBGreen 28 November 2019 в 02:19
поделиться

Селен запишет и повторно выполнит все ручное нажатие, и ввод Вас делают для тестирования веб-приложения. Много раз.

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

Селен вместо этого возьмет каждый тест, выполнит его, если он не возвратит то, что Вы ожидаете это, он может сообщить.

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

2
ответ дан Jas Panesar 28 November 2019 в 02:19
поделиться
Другие вопросы по тегам:

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