В тестировании сайтов действует та же закономерность, как и в любом другом тестировании. Чем сложнее сайт, тем больше времени требуется для его проверки и отладки. В зависимости от специфики проекта, до 50% от общего бюджета и временных ресурсов может быть выделено для процесса тестирования.
Давайте последовательно рассмотрим основные пункты чек-листа тестирования сайта.
Основные этапы тестирования сайта:
* Функциональное тестирование сайта
* Usability тестирование сайта (тестирование удобства использования)
* Тестирование UI (интерфейса пользователя)
* Тестирование совместимости (конфигурационное тестирование)
* Тестирование производительности
* Тестирование безопасности
* Тестирование, связанное с изменениями
* Тестирование мобильной версии сайта
* Бета-тестирование
Функциональное тестирование сайта
Функциональное тестирование направлено на то, чтобы каждая функция сайта работала в соответствии с требованиями спецификации. По сути тестирование функциональности сайта показывает «Что делает система».
Для тестирования функциональности достаточно убедиться, что работоспособны следущие элементы:
Ссылки
* Исходящие ссылки
* Корректность внутренних ссылок
* Отсутствие ссылок, ведущих к одной странице
* Ссылки, которые используются для отправки электронной почты админам сайта
* Есть ли страницы, на которые не указаны ссылки
* Отсутствие неработающих ссылок
Формы
* Действительность входных данных
* Допустимые значения для поля данных
* Недопустимые входные значения для поля данных
* Параметры форм, в которых возможно удаление или любая другая модификация данных.
Сookies
* Проверка сайта с отключенными cookies
* Проверка сайта с включенными cookies
* Убедитесь, что файлы cookies зашифрованы перед записью на компьютер пользователя
* Проверьте аспекты безопасности при удалении файлов cookies.
* Если cookies имеют продолжительность действия, то следует проверить, активны ли они в указанный период времени.
HTML / CSS валидация
* Синтаксические ошибки HTML
* Доступность сайта для поисковых роботов
* Наличие карты сайта в формате XML и HTML
Полезные инструменты для проведения функционального тестирования:
* Selenium https://www.seleniumhq.org/
* Linux Test Project https://linux-test-project.github.io/
* JUnit https://junit.org/junit4/
* Sprinter by Hewlett Packard Entreprise https://www.microfocus.com/ru-ru/products/sprinter-manual-software-testing/overview
* Browserstack https://www.browserstack.com/
* Usersnap https://usersnap.com/
Usability тестирование сайта
Данный вид тестирования предназначен для оценки сайта с точки зрения конечного пользователя. Это помогает определить соответствие продукта ожиданиям пользователей, выявляет проблемные места в интерфейсе. Делится на составляющие:
Навигационное тестирование сайта содержит следующие проверки:
* Все страницы сайта понятны и просты в использовании.
* Кнопки, формы и поля удобны для использования.
* Доступ к главному меню осуществляется со всех страниц.
Тестирования контента:
* Отсутствуют грамматические, орфографические ошибки
* Изображения имеют соответствующие размеры и размещены правильно
* Цветовая палитра оптимизирована, размеры шрифтов корректны
* Контент информативен, понятен, структурированн и логически связан
* Инструкции ясны и содержат правильную информацию
Полезные инструменты для usability тестирования:
User Zoom https://www.userzoom.com/
Reflector https://reflector.en.softonic.com/
Loop11 https://www.loop11.com/
Тестирование UI
Тестирование интерфейса пользователя (UI) выявляет соответствия графического интерфейса спецификациям.
* Соответствие стандартам графических интерфейсов
* Оценка элементов дизайна: макет, цвета, шрифты, размеры шрифтов, ярлыки, текстовые поля, форматирование текста, титры, кнопки, списки, значки, ссылки
* Тестирование с различными разрешениями экрана
* Тестирование локализированных версий: точность перевода, проверка длины имен элементов интерфейса и т. п.
* Тестирование графического интерфейса пользователя на целевых устройствах: смартфоны и планшеты.
Полезные инструменты для UI тестирования:
FitNesse http://www.fitnesse.org/
iMacros https://imacros.net/download/
Coded UI https://msdn.microsoft.com/en-us/library/dd286726.aspx
Jubula https://www.eclipse.org/jubula/
LoadUI https://www.loadui.org/
Тестирование совместимости
Тестирование совместимости выполняется для проверки работы сайта при различных программных и аппаратных конфигурациях:
Конфигурация операционной системы
Конфигурация браузера
Конфигурация базы данных
Кросс-платформенное тестирование сайта позволяет оценивать работу сайта на разных ОС.
Кросс-браузерное тестирование сайта - в разных конфигурациях браузеров.
Тестирование баз данных выполняется для обеспечения правильной работы сайта при разных конфигурациях базы данных: Oracle, DB2, MySql, MSSQL Server, Sybase и т.д.
Совместимость опций печати также следует упомянуть в плане тестирования сайта:
Необходимо убедиться в правильности печати шрифтов, графических изображений страниц и верстки вцелом.
Полезные иснструменты для тестирования совместимости сайта
BrowserStack https://www.browserstack.com/
CrossBrowserTesting by Smart Bear https://crossbrowsertesting.com/
Litmus https://litmus.com/
Browsera https://www.browsera.com/
Rational Clearcase by IBM https://www-03.ibm.com/software/products/ru/clearcase
Ghostlab https://vanamco.com/ghostlab/
Тестирование производительности
Сайт тестируется на высокие нагрузки. Методы тестирования:
* Тестирование поведения сайта на уровне или за пределами его ожидаемой рабочей нагрузки (стресс-тестирование)
* Тестирование поведения сайта при увеличении рабочей нагрузки (нагрузочное тестирование)
* Тестирование способности работать в течение или чуть дольше приемлемого периода (тестирование стабильности)
* Тестирование производительности cайта за счет увеличения объема данных в базе данных (объёмное тестирование)
* Тестирование производительности сайта, при одновременной логинизации большого количества пользователей (тестирование параллелизма)
* Тестирование поведения сайта при непрерывной дополнительной нагрузке (тестирование на выносливость)
* Тестирование скорости загрузки страницы
Полезные инструменты для тестирования производительности:
Apache JMeter https://jmeter.apache.org/
HP LoadRunner https://saas.hpe.com/en-us/software/loadrunner
Silk Performer from Micro Focus https://www.microfocus.com/products/silk-portfolio/silk-performer/
WebLOAD https://www.radview.com/
Gatling http://gatling.io/
Тестирование безопасности
Тестирование безопасности выполняется для проверки системы защиты данных и поддержки функционала.
Иммитируется атака вредоносного источника, чтобы оценить уровень безопасности сайта (тестирование проникновения).
Другой тип тестирования безопасности - тестирование уязвимости - позволяет оценить общий объем вовлеченных рисков.
Некоторые проверки для тестирования безопасности:
Обеспечить невозможность несанкционированного доступа к защищенным страницам
Автоматическое прекращение проверки сеансов после длительного простоя пользователя
Тестирование функций безопасности SSL
Все попытки взлома, сообщения об ошибках и т. п. должны регистрироваться и сохраняться в отдельном файле для дальнейшего анализа.
Тестирование captcha с помощью автоматических скриптов
Невозможность загрузить файлы с ограниченным доступом, без соответствующего разрешения
Невозможность входа в систему при вводе неправильного пароля или имени пользователя
Полезные инструменты для тестирования безопасности сайта:
Retina CS Community https://www.beyondtrust.com/products/retina-cs-community/
OWASP Zed Attack Proxy https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
Veracode https://www.veracode.com/
Google Nogotofail https://github.com/google/nogotofail
SQL Map http://sqlmap.org/
Тестирование, связанное с изменениями
Имеет две основные цели:
1. Убедиться в том, что все обнаруженные ошибки действительно успешно исправлены (повторное тестирование или подтверждающее тестирование).
2. Убедиться в том, что не возникли новые ошибки (регрессионное тестирование). Помимо тест кейсов с обнаруженными ошибками, оно также содержит тест кейсы, проверяющие все функциональные возможности сайта.
Полезные инструменты для тестирования, связанного с изменениями:
Selenium http://www.seleniumhq.org/
HP Quick Test Professional https://saas.hpe.com/en-us/software/uft
TestComplete https://smartbear.com/product/testcomplete/overview/
TestDrive https://www.origsoft.com/products/testdrive/
SoapUI http://www.soapui.org/
Тестирование мобильной версии сайта
Число людей, использующих ТОЛЬКО мобильные устройства для доступа в Интернет стабильно растет, поэтому крайне важна адаптация к мобильным устройствам.
Ключевые моменты, на которые следует обратить внимание при тестировании мобильной версии сайта:
Совместимость со смартфонами и планшетами
Навигация по сайту максимально проста
Время загрузки сайта
Кнопки имеют достаточный размер для управления пальцами
Оптимизация размера всех изображений
Отстутствие Flash и всплывающих окон на мобильной версии
Кликабельность всех номеров телефонов, указанных на сайте.
Доступ к местоположения пользователя по GPS
Полезные инструменты для тестирования мобильной версии сайта
BrowserStack https://www.browserstack.com/
Perfecto Mobile Continuous Quality Lab https://www.perfectomobile.com/continuous-quality-lab
Android Studio emulator https://developer.android.com/studio/index.html
Google’s Page Speed Online https://developers.google.com/speed/pagespeed/insights/
Бета-тестирование
При тестировании конечными пользователями используются такие инструменты, как:
HockeyApp https://hockeyapp.net/#s
Ubertesters https://ubertesters.com/
TestFlight https://developer.apple.com/testflight/