В тестировании сайтов действует та же закономерность, как и в любом другом тестировании. Чем сложнее сайт, тем больше времени требуется для его проверки и отладки. В зависимости от специфики проекта, до 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/