Что, зачем и каким образом следует проверять и...

40
QA Quality Assurance Обеспечение качества

Upload: alexey-kostin

Post on 15-Jun-2015

702 views

Category:

Technology


4 download

DESCRIPTION

Презентация к докладу Алексея Костина Drupal CIS 2013 в Москве — «Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную эксплуатацию»

TRANSCRIPT

Page 1: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

QAQuality Assurance

Обеспечение качества

Page 2: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Что такое качество сайта?

• Мера удовлетворения потребностей Заказчика или его ЦА (по сути, «полезность»)

• Мера соответствия ожиданиямЧасто субъективным, вроде «всё работает» или «ничего не тупит»

• Мера исполнения требованийОбъективных и зафиксированных в ТЗ

Page 3: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Эволюция требований

• Сайт не должен тупить• …• У пользователя с каналом 10+ Мбит/с и

пингом <30 мс до М9 некешированная версия главной страницы вместе со всеми ресурсами, но без учёта асинхронной загрузки блока корзины через AJAX, должна загружаться и полностью рендериться в Chrome 28 не более, чем за 2,6 с при работе сайта на гипервизорном VPS заданной конфигурации

Page 4: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Что такое качественный сайт?

Это сайт, который не бесит ни заказчика, ни его клиентов

Page 5: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Что такое качественный сайт?

Это сайт, над которым много работали

Page 6: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Что такое качественный сайт?

Это сайт, в котором всё предусмотрено

Page 7: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Что такое качественный сайт?

Сайт хороший, если никто не сомневается в том, откуда растут руки у его создателей

Page 8: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Кто виноват? Что делать?

Page 9: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Чеклисты!

Page 10: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Правила хорошего чеклиста• Все пункты независимы (циклы

недопустимы)• Все формулировки однозначны• За обеспечение каждого пункта

отвечает конкретный человек• Возможна «двойная проверка»

Page 11: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Как внедрять?

• Какие-то требования у вас уже есть. Просто запишите их

• Оставьте 10 главных пунктов для начала

• Пройдитесь по существующим проектам

• Расскажите и покажите коллегам

Page 12: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Аккаунт администратора

• Установите кастомное имя пользователя (не admin) для UID1

• Установите кастомный пароль. И не из этого набора: admin adminadmin 112233 qwerty

• Установите действующий e-mail

Page 13: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Защита от подбора

• Создайте отдельный аккаунт для каждого, кто хоть как-то управляет сайтом

• Сгенерируйте всем пароли• Расслабьтесь, ведь в Drupal есть

таблица flood• Установите flood_unblock, если

заказчик сам себя часто брутфорсит

Page 14: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Бэкапы

• Настройте резервное копирование• Храните копии хотя бы в двух

разных местах• Хотя бы иногда проверяйте, что

бэкапы успешно разворачиваются• Вечно храните копию сайта в

состоянии «до переезда на prod» (или «до передачи заказчику»)

Page 15: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Пользователи, роли, права

• Отключите регистрацию• Удалите всех лишних из списка

пользователей• Проверьте все права для роли

анонимов• Настройте форматы ввода

(повнимательнее с better_formats)

Page 16: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Потенциальные опасности

• Проверьте, какие типы файлов разрешено загружать

• Проверьте права на запись• Обновите все модули и ядро• Отключите лишние модули• Установите security_review и

проверьте его отчёт• А также остальные отчёты

Page 17: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Ошибки, логи, крон

• Проверьте лог watchdog• Отключите вывод нотисов на экран и

ограничьте количество записей в dblog

• Если cron делает что-то тяжёлое, то настройте его ежечасное выполнение или используйте ultimate_cron

• Отключите Devel и приберитесь за ним

Page 18: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

settings.php

• Установите $conf['maintenance_theme'] = 'mytheme'; в settings.php, если будете останавливать боевой сайт

• Установите уникальный $drupal_hash_salt, если разворачиваете сайт из шаблона

• Можно использовать разные файлы настроек для dev и prod

Page 19: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Контент

• Отключите комментарии в настройках типов материалов

• Нигде в контенте не прописывайте абсолютные ссылки. Поможет pathologic

• В именах файлов — только символы из RFC1738. Поможет transliteration

• Под каждый пункт меню создайте отдельную ноду-заглушку

Page 20: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Угадайте: на какой странице мы находимся?

Page 21: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Контент

• Заполните «Информацию о сайте»• В шапке, подвале, на страницах

контактов укажите актуальные телефоны, адрес, почту заказчика

• Контакты в контент вставляйте через token_custom (типа [custom:phone])

• Загрузите кастомный favicon, настройте редирект на него с /favicon.ico

Page 22: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Контент

• Для WYSIWYG рекомендуем ckeditor• Включите принудительную чистку

кода при вставке и форматирование кода, поставьте imce для картинок

• Для удобной загрузки картинок в поля используйте filefield_sources и multiupload_imagefield_widget

• Создайте фильтр «FullHTML без WYSIWYG»

Page 23: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Сайт в шаге от катастрофы

Page 24: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Вёрстка

• Проверяйте на 1000px (на нём сидит 10% пользователей)

• Chrome, FF, IE9+, Opera 12, Opera Mini• Используйте виртуалки с образами от

modern.ie• Поставьте расширение PixelPerfect• Проверьте страницу со StyleGuide• Не стыдитесь ручного

регрессионного тестирования

Page 25: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Жило-было на сайте вполне обычное выпадающее меню

Но однажды к нему добавился слайдер картинок на главной странице…

Page 26: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Регрессионное тестирование — это не сказка, а суровая необходимость

Page 27: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

UX

• Установите кегль основного текста страницы — не менее 12px в «стандартных условиях»

• Сделайте логотип или название сайта ссылкой на главную страницу

• Настройте хлебные крошки. Поможет path_breadcrumbs или hansel

• Проверьте, как выглядят нотисы и ошибки в формах

Page 28: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Производительность

• Включите кеширование. И почитайте про кеш у @spleshka

• Включите агрегацию CSS/JS• Проверьте время отдачи главной

страницы для анонима — должно быть не более 500 мс

• Общий вес главной страницы со всеми ресурсами — не более 2 МБ

Page 29: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Производительность

• Проверьте доступность из разных точек: ping-admin.ru/free_test

• Протестируйте сайт с помощью расширений YSlow и PageSpeed

• Протестируйте сайт с помощью loadimpact.com и webpagetest.org

Page 30: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Настройка webform

• Во всех webform для оповещений установите почту заказчика

• Отредактируйте тексты оповещений• Для отладки используйте reroute_email• Проверьте, что видит пользователь

после отправки формы?• Защитите формы от ботов.

Рекомендуем simpleantispam от @xandeadx

Page 31: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

SEO

• Закройте dev-версию от индексации

• Установите Яндекс.Метрику через yandex_metrics (отключите отслеживание админа)

• Настройте в самой Метрике цели (посещение корзины, заполнение форм и т.д.)

Page 32: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

SEO

• Исключите лишнее из sitemap.xml• Закройте служебные ноды через

rabbit_hole• Перенастройте robots.txt для prod-

версии (верните индексацию). Можно использовать robotstxt

• Уменьшите Crawl-delay, пропишите Sitemap и Host

Page 33: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

SEO

• Установите redirect, но потом опасайтесь зацикленных ссылок

• Для поиска битых ссылок используйте linkchecker

• На любом сайте ставьте pathauto и globalredirect

• Настройте разные шаблоны адресов для разных типов материалов

Page 34: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Что бывает без pathauto

Page 35: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

SEO

• Установите metatag и path_metatags

• Убедитесь, что корректные мета-теги прописаны для главной страницы и для всех вьюх

• Убедитесь, что в <h1> выводится только нод-тайтл, других <h1> на странице не должно быть

Page 36: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Привязка к домену

• Смените ключи API для Mollom, Akismet и пр.

• Подключите сайт к панелям веб-мастеров Яндекса и Google

• Если у вас есть кнопка лайков от VK, обновите приложение под боевой домен

• Ещё раз проверьте robots.txt

Page 37: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Где/чем создавать чеклисты?

• «Add Checklist» при редактировании карточки в trello.com

• «Задачи» в Gmail• qa_checklist, но лучше сделать свой

собственный список на базе checklistapi

• checkvist.com (платный)• checklists.ru (пока сырой)

Page 38: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Чеклисты в Trello

Page 39: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Что почитать?

• Роман Савин. Тестирование DOT COM или Пособие по жестокому обращению с багами в интернет-стартапах

• natalyarukol.ru• software-testing.ru• habrahabr.ru/post/11182

9

Page 40: Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную

Спасибо! Вопросы?

[email protected]

@kostin

Алексей КостинPM в агентствах «Завтрасайт» и «Интернет-маркетологи». Привет нашей команде!