Советы по веб-тестированию

Рекомендации по веб-тестированию

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

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

Кроме того, веб-приложения в большей степени подвержены атакам безопасности, таким как DDos и SQL Injection.

Тестирование веб-сервисов

Другие веб-сайты создаются с использованием веб-сервисов. Они предоставляют возможность тестировщикам тестировать веб-приложение в изолированных компонентах, а не в полномасштабном интегрированном веб-приложении.

Преимущества тестирования веб-служб в изоляции:

  1. Нет вовлеченного браузера. Мы можем напрямую взаимодействовать с веб-сервером, если мы знаем его конечную точку и какие параметры отправлять.
  2. Гораздо быстрее. Поскольку мы ориентируемся на изолированный веб-сервис, для загрузки нет изображений, javascript или css, поэтому ответ приходит намного быстрее.
  3. Упрощенная отладка - при тестировании веб-сервиса, если мы сталкиваемся с проблемой, гораздо легче найти причину проблемы, и поэтому отладка становится менее болезненной.
  4. Больше контроля - у нас есть прямой контроль над тем, какой запрос мы передаем веб-сервису, поэтому мы можем использовать всевозможные данные для негативного тестирования веб-сервисов.
  5. Мы можем использовать инструмент SopaUI для тестирования веб-сервиса или плагина для браузера, такого как REST Client для Firefox или Advanced REST Client для Chrome

Тестирование производительности

Тестирование производительности особенно важно в веб-тестировании, поскольку веб-приложение подвержено потенциально большому количеству аудитории.

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

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

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

Jmeter - популярный инструмент для тестирования нагрузки с открытым исходным кодом, который можно использовать для проверки производительности сайта. Он также может быть интегрирован в сервер CI.

Кроссбраузерное веб-тестирование

Поскольку существует несколько разных браузеров, мы должны обеспечить непрерывную работу нашего веб-приложения на всех из них (по крайней мере основных, то есть Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

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

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

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

Автоматизация тестирования

Большинство компаний, разрабатывающих веб-приложения, работают в Agile с частыми релизами, следовательно, здесь необходимо частое тестирование. В веб-тестировании автоматизация тестирования может принести большую пользу, поскольку она снимает бремя повторяющихся работ.

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

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

Анализ трафика HTTP

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

В веб-тестировании анализ HTTP-трафика особенно полезен при тестировании сторонних тегов отслеживания, таких как теги Google Analytics или теги omniture на веб-страницах.

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

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

Вот некоторые из наиболее популярных инструментов, которые мы можем использовать для анализа HTTP-трафика:

Wireshark, если вы хотите видеть все происходящее в сети.

Fiddler, если вы хотите просто отслеживать HTTP / s трафик.

Live HTTP Headers, если вы в Firefox и хотите быстро подключиться для отслеживания заголовков.

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

BrowserMob Proxy также очень приятный инструмент, который можно подключить к Selenium WebDriver при выполнении автоматических тестов.

Адаптивные веб-сайты и мобильные испытания

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

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

Оба типа требуют тестирования на мобильных устройствах и / или тренажерах.

Другие важные элементы в веб-тестировании

Во время веб-тестирования, а также функционального тестирования нам также необходимо проверить:

  • Javascript
  • CSS
  • Cookies
  • Доступность
  • UX и макет
  • Действительность HTML
  • Безопасность
  • Обновление браузера
  • Изменение размера окна