![Page 1: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/1.jpg)
QAQuality Assurance
Обеспечение качества
![Page 2: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/2.jpg)
Что такое качество сайта?
• Мера удовлетворения потребностей Заказчика или его ЦА (по сути, «полезность»)
• Мера соответствия ожиданиямЧасто субъективным, вроде «всё работает» или «ничего не тупит»
• Мера исполнения требованийОбъективных и зафиксированных в ТЗ
![Page 3: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/3.jpg)
Эволюция требований
• Сайт не должен тупить• …• У пользователя с каналом 10+ Мбит/с и
пингом <30 мс до М9 некешированная версия главной страницы вместе со всеми ресурсами, но без учёта асинхронной загрузки блока корзины через AJAX, должна загружаться и полностью рендериться в Chrome 28 не более, чем за 2,6 с при работе сайта на гипервизорном VPS заданной конфигурации
![Page 4: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/4.jpg)
Что такое качественный сайт?
Это сайт, который не бесит ни заказчика, ни его клиентов
![Page 5: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/5.jpg)
Что такое качественный сайт?
Это сайт, над которым много работали
![Page 6: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/6.jpg)
Что такое качественный сайт?
Это сайт, в котором всё предусмотрено
![Page 7: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/7.jpg)
Что такое качественный сайт?
Сайт хороший, если никто не сомневается в том, откуда растут руки у его создателей
![Page 8: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/8.jpg)
Кто виноват? Что делать?
![Page 9: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/9.jpg)
Чеклисты!
![Page 10: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/10.jpg)
Правила хорошего чеклиста• Все пункты независимы (циклы
недопустимы)• Все формулировки однозначны• За обеспечение каждого пункта
отвечает конкретный человек• Возможна «двойная проверка»
![Page 11: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/11.jpg)
Как внедрять?
• Какие-то требования у вас уже есть. Просто запишите их
• Оставьте 10 главных пунктов для начала
• Пройдитесь по существующим проектам
• Расскажите и покажите коллегам
![Page 12: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/12.jpg)
Аккаунт администратора
• Установите кастомное имя пользователя (не admin) для UID1
• Установите кастомный пароль. И не из этого набора: admin adminadmin 112233 qwerty
• Установите действующий e-mail
![Page 13: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/13.jpg)
Защита от подбора
• Создайте отдельный аккаунт для каждого, кто хоть как-то управляет сайтом
• Сгенерируйте всем пароли• Расслабьтесь, ведь в Drupal есть
таблица flood• Установите flood_unblock, если
заказчик сам себя часто брутфорсит
![Page 14: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/14.jpg)
Бэкапы
• Настройте резервное копирование• Храните копии хотя бы в двух
разных местах• Хотя бы иногда проверяйте, что
бэкапы успешно разворачиваются• Вечно храните копию сайта в
состоянии «до переезда на prod» (или «до передачи заказчику»)
![Page 15: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/15.jpg)
Пользователи, роли, права
• Отключите регистрацию• Удалите всех лишних из списка
пользователей• Проверьте все права для роли
анонимов• Настройте форматы ввода
(повнимательнее с better_formats)
![Page 16: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/16.jpg)
Потенциальные опасности
• Проверьте, какие типы файлов разрешено загружать
• Проверьте права на запись• Обновите все модули и ядро• Отключите лишние модули• Установите security_review и
проверьте его отчёт• А также остальные отчёты
![Page 17: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/17.jpg)
Ошибки, логи, крон
• Проверьте лог watchdog• Отключите вывод нотисов на экран и
ограничьте количество записей в dblog
• Если cron делает что-то тяжёлое, то настройте его ежечасное выполнение или используйте ultimate_cron
• Отключите Devel и приберитесь за ним
![Page 18: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/18.jpg)
settings.php
• Установите $conf['maintenance_theme'] = 'mytheme'; в settings.php, если будете останавливать боевой сайт
• Установите уникальный $drupal_hash_salt, если разворачиваете сайт из шаблона
• Можно использовать разные файлы настроек для dev и prod
![Page 19: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/19.jpg)
Контент
• Отключите комментарии в настройках типов материалов
• Нигде в контенте не прописывайте абсолютные ссылки. Поможет pathologic
• В именах файлов — только символы из RFC1738. Поможет transliteration
• Под каждый пункт меню создайте отдельную ноду-заглушку
![Page 20: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/20.jpg)
Угадайте: на какой странице мы находимся?
![Page 21: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/21.jpg)
Контент
• Заполните «Информацию о сайте»• В шапке, подвале, на страницах
контактов укажите актуальные телефоны, адрес, почту заказчика
• Контакты в контент вставляйте через token_custom (типа [custom:phone])
• Загрузите кастомный favicon, настройте редирект на него с /favicon.ico
![Page 22: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/22.jpg)
Контент
• Для WYSIWYG рекомендуем ckeditor• Включите принудительную чистку
кода при вставке и форматирование кода, поставьте imce для картинок
• Для удобной загрузки картинок в поля используйте filefield_sources и multiupload_imagefield_widget
• Создайте фильтр «FullHTML без WYSIWYG»
![Page 23: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/23.jpg)
Сайт в шаге от катастрофы
![Page 24: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/24.jpg)
Вёрстка
• Проверяйте на 1000px (на нём сидит 10% пользователей)
• Chrome, FF, IE9+, Opera 12, Opera Mini• Используйте виртуалки с образами от
modern.ie• Поставьте расширение PixelPerfect• Проверьте страницу со StyleGuide• Не стыдитесь ручного
регрессионного тестирования
![Page 25: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/25.jpg)
Жило-было на сайте вполне обычное выпадающее меню
Но однажды к нему добавился слайдер картинок на главной странице…
![Page 26: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/26.jpg)
Регрессионное тестирование — это не сказка, а суровая необходимость
![Page 27: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/27.jpg)
UX
• Установите кегль основного текста страницы — не менее 12px в «стандартных условиях»
• Сделайте логотип или название сайта ссылкой на главную страницу
• Настройте хлебные крошки. Поможет path_breadcrumbs или hansel
• Проверьте, как выглядят нотисы и ошибки в формах
![Page 28: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/28.jpg)
Производительность
• Включите кеширование. И почитайте про кеш у @spleshka
• Включите агрегацию CSS/JS• Проверьте время отдачи главной
страницы для анонима — должно быть не более 500 мс
• Общий вес главной страницы со всеми ресурсами — не более 2 МБ
![Page 29: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/29.jpg)
Производительность
• Проверьте доступность из разных точек: ping-admin.ru/free_test
• Протестируйте сайт с помощью расширений YSlow и PageSpeed
• Протестируйте сайт с помощью loadimpact.com и webpagetest.org
![Page 30: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/30.jpg)
Настройка webform
• Во всех webform для оповещений установите почту заказчика
• Отредактируйте тексты оповещений• Для отладки используйте reroute_email• Проверьте, что видит пользователь
после отправки формы?• Защитите формы от ботов.
Рекомендуем simpleantispam от @xandeadx
![Page 31: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/31.jpg)
SEO
• Закройте dev-версию от индексации
• Установите Яндекс.Метрику через yandex_metrics (отключите отслеживание админа)
• Настройте в самой Метрике цели (посещение корзины, заполнение форм и т.д.)
![Page 32: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/32.jpg)
SEO
• Исключите лишнее из sitemap.xml• Закройте служебные ноды через
rabbit_hole• Перенастройте robots.txt для prod-
версии (верните индексацию). Можно использовать robotstxt
• Уменьшите Crawl-delay, пропишите Sitemap и Host
![Page 33: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/33.jpg)
SEO
• Установите redirect, но потом опасайтесь зацикленных ссылок
• Для поиска битых ссылок используйте linkchecker
• На любом сайте ставьте pathauto и globalredirect
• Настройте разные шаблоны адресов для разных типов материалов
![Page 34: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/34.jpg)
Что бывает без pathauto
![Page 35: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/35.jpg)
SEO
• Установите metatag и path_metatags
• Убедитесь, что корректные мета-теги прописаны для главной страницы и для всех вьюх
• Убедитесь, что в <h1> выводится только нод-тайтл, других <h1> на странице не должно быть
![Page 36: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/36.jpg)
Привязка к домену
• Смените ключи API для Mollom, Akismet и пр.
• Подключите сайт к панелям веб-мастеров Яндекса и Google
• Если у вас есть кнопка лайков от VK, обновите приложение под боевой домен
• Ещё раз проверьте robots.txt
![Page 37: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/37.jpg)
Где/чем создавать чеклисты?
• «Add Checklist» при редактировании карточки в trello.com
• «Задачи» в Gmail• qa_checklist, но лучше сделать свой
собственный список на базе checklistapi
• checkvist.com (платный)• checklists.ru (пока сырой)
![Page 38: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/38.jpg)
Чеклисты в Trello
![Page 39: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/39.jpg)
Что почитать?
• Роман Савин. Тестирование DOT COM или Пособие по жестокому обращению с багами в интернет-стартапах
• natalyarukol.ru• software-testing.ru• habrahabr.ru/post/11182
9
![Page 40: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную](https://reader033.vdocuments.mx/reader033/viewer/2022052316/557ec6c6d8b42a8e558b4cfc/html5/thumbnails/40.jpg)
Спасибо! Вопросы?
@kostin
Алексей КостинPM в агентствах «Завтрасайт» и «Интернет-маркетологи». Привет нашей команде!