В этом быстро развивающемся мире наличие веб-сайта уже не опционально, а обязательно для любого бизнеса. При этом важно отметить, что сайт организации должен быть информативным, удобным и легкодоступным. Для того чтобы веб-сайт был успешным, его необходимо тщательно протестировать и устранить все дефекты.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Что такое веб-тестирование?
Веб-тестирование — это практика, в ходе которой проводится сквозное тестирование ПО с целью выявления потенциальных дефектов и обеспечения работоспособности программы/приложения для реальных пользователей до того, как приложение будет запущено в эксплуатацию. Пользовательский интерфейс и функциональность являются наиболее важными частями веб-приложения.
Существуют различные чек-листы для веб-тестирования, включающие:
- Функциональное тестирование
- Тестирование удобства использования
- Тестирование интерфейсов
- Тестирование на совместимость
- Тестирование производительности
- Тестирование безопасности
Функциональное тестирование
Функциональное тестирование охватывает все, что работает внутри веб-сайта, это могут быть различные поля ввода, ссылки, работа с базами данных (логин, регистрация и списки), тестирование куки и т.д.
Проверка работы ссылок:
- Проверьте, перенаправляют ли ссылки сайта на нужную страницу
- Проверьте, нет ли у вас битых ссылок (для этого вы можете установить расширение “Broken Link Checker” для Chrome и других ведущих браузеров)
- Проверьте все внутренние ссылки
- Проверьте, правильно ли отображаются ссылки, ведущие из электронных писем на страницу браузера
Проверка работы форм ввода:
- Во-первых, протестируйте все позитивные сценарии, чтобы убедиться, что приложение работает так, как ожидалось
- Проверьте валидацию всех полей
- Проверьте другие сценарии валидации полей (оставив одно поле не заполненным, заполните другие поля)
- Проверьте, правильно ли формы сопоставлены с полями
Тестирование куки:
Файлы куки — это небольшие фрагменты данных, которые сохраняются в браузере при входе пользователя в приложение.
- Протестируйте куки, включив/выключив их, и проверьте, как это отразится на работе приложения (существует расширение “Edit this Cookie”, где вы можете поэкспериментировать)
- Попробуйте очистить кэш с помощью простых сочетаний клавиш (Ctrl + Shift + R) и посмотрите, как поведет себя приложение
- Проверьте, правильно ли зашифрованы файлы куки
- Если в приложении применяются тайм-ауты сеансов, обратите внимание на влияние куки на приложение
Валидация HTML/ CSS-тестирования:
- Обратите внимание на ошибки HTML / JS, появляющиеся в консоли разработчика, для этого используйте Ctrl + Shift + I
- Для Chrome существует расширение под названием “Pesticide“, позволяющее определить и проанализировать позиционирование элементов на веб-странице, что делает его ценным инструментом для отладки и устранения ошибок
- Проверьте, доступен ли сайт для других сайтов с точки зрения SEO
Тестирование базы данных:
Целостность и согласованность данных являются неотъемлемой частью приложения. Всегда изучайте язык управления базой данных, используемый на вашем проекте, и получайте доступ к базам данных от разработчиков. Если чувствительность данных высока и существует риск их раскрытия, можно протестировать базу данных через UI, а ответственность за исправление дефектов возложить на разработчиков.
- Проведите все виды тестирования базы данных на сайте, такие как добавление, обновление, удаление информации, и проверьте, правильно ли и последовательно ли ведет себя приложение
- Проверьте, правильно ли выполняются скрипты базы данных, а также то, как распределяется нагрузка на базу данных и её влияние на работу приложения
Подытожив, можно сказать, что функциональное тестирование должно охватывать:
- Валидацию полей ввода (необязательные и обязательные поля)
- Тестирование файлов куки
- Тестирование базы данных (вход в систему, регистрация и т.д.)
- Проверку ссылок (внутренние ссылки, внешние ссылки, почтовые ссылки, битые ссылки)
Тестирование удобства использования
Тестирование юзабилити затрагивает те области, где происходит взаимодействие человека и компьютера, чтобы выявить слабые места и раскрыть характеристики системы.
Эти слабые места затем фиксируются для выявления первопричины и внесения исправлений для обеспечения надежности приложения.
Тестирование юзабилити в основном касается следующих областей:
- Навигация
- Удобство для пользователя, например, удобство чтения
- Общий вид
- Простота использования и обучения
Тестирование навигации
Навигация – это не только перенаправления, но и изменение внешнего вида или поведения одной страницы. Она включает в себя кнопки, перенаправляющие ссылки, боксы и все, что ведет на определенные веб-страницы.
Проверка содержимого
Проверка содержимого включает в себя проверку того, является ли общее содержимое, включающее цвета, привлекательным для пользователей, обращающихся к приложению.
- Предпочтение всегда отдается второстепенным цветам для любых веб-страниц (фон, шрифты, рамки и т.д.). Любое использование ярко-красного или желтого цвета отвлекает пользователя и оставляет у него плохое впечатление.
- Размер шрифта и границ должен быть единым для всей страницы в зависимости от важности текста.
- Всегда ищите грамматические ошибки, составляйте осмысленные предложения, формулировки, привлекательные для конечных пользователей.
- Проверьте, правильно ли отображаются и работают ссылки.
Проверка карты сайта
Согласно Википедии, карта сайта — это список страниц, содержащихся внутри домена. Внедрение карты сайта поможет пользователям эффективно находить желаемый контент. При тестировании юзабилити следует обратить внимание, есть ли на сайте “Поисковая строка”, и проверить, как в ней осуществляется поиск.
В двух словах, тестирование юзабилити должно проверять, что:
- Веб-сайт удобен для пользователя, на нем легко ориентироваться.
- Инструкции, представленные на сайтах, понятны.
- На каждой странице имеется главное меню.
- Цвета и шрифты пользовательского интерфейса использованы профессионально и эффективно.
Тестирование интерфейса
Интерфейс — это система или физическое устройство, обеспечивающее взаимодействия между не связанными друг с другом объектами.
Во время тестирования интерфейсов проводится проверка любых модулей, связанных с сервером. Она включает в себя оценку совместимости между аппаратным и программным обеспечением, базой данных и сетью.
Существует 2 основных вида тестирования интерфейсов.
- Тестирование веб-серверов и серверов приложений
- Тестирование серверов приложений и баз данных
Эти два пункта не требуют пояснений. Проверьте, взаимодействуют ли эти два сервера, и обрабатываются ли ошибки должным образом.
Во время выполнения транзакции попробуйте сбросить или отключить серверы и обратите внимание на поведение приложения — это позволит вам обнаружить исключение на более ранней стадии жизненного цикла.
Тестирование на совместимость
Одна из распространенных ошибок разработчиков — это создание программного обеспечения только для одного браузера (наиболее часто — для Chrome). При этом команда QA довольно часто забывает тестировать ПО в разных браузерах (Safary, Edge, FireFox) и на разных операционных системах (Windows, Linus, Mac, Solaris), чтобы проверить, работает ли весь функционал так, как нужно.
Библиотеки, используемые разработчиками, поддерживаются лишь некоторыми браузерами, поэтому всегда важно проверить, работает ли приложение на разных платформах. То же самое касается и операционных систем.
Когда речь идет о тестировании на совместимость, нам нужно обратить внимание на следующие пункты:
- Совместимость с браузерами
- Совместимость с операционными системами
- Совместимость с мобильными устройствами
- Параметры печати
Совместимость с мобильными устройствами
Совместимость с мобильными устройствами вовсе не подразумевает наличие мобильных приложений. Речь идет о браузере в мобильном телефоне и о том, как приложение ведет себя в этих браузерах.
Мы живем в быстро меняющемся мире, и все тоже двигаются в ногу со временем. Люди более склонны входить в приложения через мобильные браузеры, и независимо от того, какое доменное приложение вы используете, у нас есть браузеры инкогнито и в мобильных устройствах.
Параметры печати
Если на сайте есть опция “Печать”, проверьте выравнивание, поля страницы, печать графики в соответствии со спецификациями.
Тестирование производительности
Всегда рекомендуется тестировать приложение при пиковых нагрузках, например, как ведет себя приложение при наличии 20-30, 100, 1000 пользователей.
Приложение должно быть протестировано таким образом, чтобы обеспечить работу с достаточным количеством пользователей, работающих с приложением в любой момент времени.
Когда речь идет о тестировании производительности, необходимо обратить внимание на два аспекта:
- Нагрузочное тестирование
- Стресс-тестирование
Нагрузочное веб-тестирование подразумевает проверку производительности программного обеспечения при заданной нагрузке, чтобы понять, как оно ведет себя при ожидаемом или интенсивном использовании.
- Веб-нагрузка включает в себя тестирование ввода большого количества данных от пользователя, одновременных запросов пользователей, соединений с базой данных и т.д.
Также стоит отметить, что тестирование производительности как правило автоматизируется. Для этого используют различные инструменты, как, например, JMeter.
Перевод статьи «Web Application Testing».