SlideShare a Scribd company logo
1 of 40
QA
Quality Assurance
Обеспечение качества
Что такое качество сайта?
• Мера удовлетворения потребностей
Заказчика или его ЦА (по сути, «полезность»)

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

• Мера исполнения требований
Объективных и зафиксированных в ТЗ
Эволюция требований
• Сайт не должен тупить
• …
• У пользователя с каналом 10+ Мбит/с и пингом
<30 мс до М9 некешированная версия главной
страницы вместе со всеми ресурсами, но без
учѐта асинхронной загрузки блока корзины через
AJAX, должна загружаться и полностью
рендериться в Chrome 28 не более, чем за 2,6 с
при работе сайта на гипервизорном VPS
заданной конфигурации
Что такое качественный сайт?
Это сайт, который не бесит ни
заказчика, ни его клиентов
Что такое качественный сайт?
Это сайт, над которым много работали
Что такое качественный сайт?
Это сайт, в котором всѐ предусмотрено
Что такое качественный сайт?
Сайт хороший, если никто не сомневается в
том, откуда растут руки у его создателей
Кто виноват? Что делать?
Чеклисты!
Правила хорошего чеклиста
• Все пункты независимы (циклы
недопустимы)
• Все формулировки однозначны
• За обеспечение каждого пункта
отвечает конкретный человек
• Возможна «двойная проверка»
Как внедрять?
• Какие-то требования у вас уже есть.
Просто запишите их
• Оставьте 10 главных пунктов для
начала
• Пройдитесь по существующим
проектам
• Расскажите и покажите коллегам
Аккаунт администратора
• Установите кастомное имя
пользователя (не admin) для UID1
• Установите кастомный пароль. И не из
этого набора:





admin
adminadmin
112233
qwerty

• Установите действующий e-mail
Защита от подбора
• Создайте отдельный аккаунт для
каждого, кто хоть как-то управляет
сайтом
• Сгенерируйте всем пароли
• Расслабьтесь, ведь в Drupal есть
таблица flood
• Установите flood_unblock, если заказчик
сам себя часто брутфорсит
Бэкапы
• Настройте резервное копирование
• Храните копии хотя бы в двух разных
местах
• Хотя бы иногда проверяйте, что бэкапы
успешно разворачиваются
• Вечно храните копию сайта в состоянии
«до переезда на prod» (или «до
передачи заказчику»)
Пользователи, роли, права
• Отключите регистрацию
• Удалите всех лишних из списка
пользователей
• Проверьте все права для роли
анонимов
• Настройте форматы ввода
(повнимательнее с better_formats)
Потенциальные опасности
• Проверьте, какие типы файлов
разрешено загружать
• Проверьте права на запись
• Обновите все модули и ядро
• Отключите лишние модули
• Установите security_review и проверьте
его отчѐт
• А также остальные отчѐты
Ошибки, логи, крон
• Проверьте лог watchdog
• Отключите вывод нотисов на экран и
ограничьте количество записей в dblog
• Если cron делает что-то тяжѐлое, то
настройте его ежечасное выполнение
или используйте ultimate_cron
• Отключите Devel и приберитесь за ним
settings.php
• Установите
$conf['maintenance_theme'] =
'mytheme'; в settings.php, если
будете останавливать боевой сайт
• Установите уникальный
$drupal_hash_salt, если
разворачиваете сайт из шаблона
• Можно использовать разные файлы
настроек для dev и prod
Контент
• Отключите комментарии в настройках
типов материалов
• Нигде в контенте не прописывайте
абсолютные ссылки. Поможет pathologic
• В именах файлов — только символы из
RFC1738. Поможет transliteration
• Под каждый пункт меню создайте
отдельную ноду-заглушку
Угадайте: на какой странице мы
находимся?
Контент
• Заполните «Информацию о сайте»
• В шапке, подвале, на страницах
контактов укажите актуальные
телефоны, адрес, почту заказчика
• Контакты в контент вставляйте через
token_custom (типа [custom:phone])
• Загрузите кастомный favicon, настройте
редирект на него с /favicon.ico
Контент
• Для WYSIWYG рекомендуем ckeditor
• Включите принудительную чистку кода
при вставке и форматирование кода,
поставьте imce для картинок
• Для удобной загрузки картинок в поля
используйте filefield_sources и
multiupload_imagefield_widget
• Создайте фильтр «FullHTML без
WYSIWYG»
Сайт в шаге от катастрофы
Вѐрстка
• Проверяйте на 1000px (на нѐм сидит 10%
пользователей)
• Chrome, FF, IE9+, Opera 12, Opera Mini
• Используйте виртуалки с образами от
modern.ie
• Поставьте расширение PixelPerfect
• Проверьте страницу со StyleGuide
• Не стыдитесь ручного регрессионного
тестирования
Жило-было на
сайте вполне
обычное
выпадающее
меню

Но однажды к
нему добавился
слайдер
картинок на
главной
странице…
Регрессионное тестирование — это не
сказка, а суровая необходимость
UX
• Установите кегль основного текста
страницы — не менее 12px в
«стандартных условиях»
• Сделайте логотип или название сайта
ссылкой на главную страницу
• Настройте хлебные крошки. Поможет
path_breadcrumbs или hansel
• Проверьте, как выглядят нотисы и
ошибки в формах
Производительность
• Включите кеширование. И почитайте
про кеш у @spleshka
• Включите агрегацию CSS/JS
• Проверьте время отдачи главной
страницы для анонима — должно быть
не более 500 мс
• Общий вес главной страницы со всеми
ресурсами — не более 2 МБ
Производительность
• Проверьте доступность из разных точек:
ping-admin.ru/free_test
• Протестируйте сайт с помощью
расширений YSlow и PageSpeed
• Протестируйте сайт с помощью
loadimpact.com и webpagetest.org
Настройка webform
• Во всех webform для оповещений
установите почту заказчика
• Отредактируйте тексты оповещений
• Для отладки используйте reroute_email
• Проверьте, что видит пользователь после
отправки формы?
• Защитите формы от ботов. Рекомендуем
simpleantispam от @xandeadx
SEO
• Закройте dev-версию от индексации
• Установите Яндекс.Метрику через
yandex_metrics (отключите
отслеживание админа)
• Настройте в самой Метрике цели
(посещение корзины, заполнение форм
и т.д.)
SEO
• Исключите лишнее из sitemap.xml
• Закройте служебные ноды через
rabbit_hole
• Перенастройте robots.txt для prodверсии (верните индексацию). Можно
использовать robotstxt
• Уменьшите Crawl-delay, пропишите
Sitemap и Host
SEO
• Установите redirect, но потом
опасайтесь зацикленных ссылок
• Для поиска битых ссылок используйте
linkchecker
• На любом сайте ставьте pathauto и
globalredirect
• Настройте разные шаблоны адресов
для разных типов материалов
Что бывает без pathauto
SEO
• Установите metatag и path_metatags
• Убедитесь, что корректные мета-теги
прописаны для главной страницы и для
всех вьюх
• Убедитесь, что в <h1> выводится только
нод-тайтл, других <h1> на странице не
должно быть
Привязка к домену
• Смените ключи API для Mollom, Akismet
и пр.
• Подключите сайт к панелям вебмастеров Яндекса и Google
• Если у вас есть кнопка лайков от
VK, обновите приложение под боевой
домен
• Ещѐ раз проверьте robots.txt
Где/чем создавать чеклисты?
• «Add Checklist» при редактировании
карточки в trello.com
• «Задачи» в Gmail
• qa_checklist, но лучше сделать свой
собственный список на базе checklistapi
• checkvist.com (платный)
• checklists.ru (пока сырой)
Чеклисты в Trello
Что почитать?
• Роман Савин.
Тестирование DOT COM
или Пособие по жестокому
обращению с багами в
интернет-стартапах

• natalyarukol.ru
• software-testing.ru
• habrahabr.ru/post/111829
Спасибо! Вопросы?
Алексей Костин
PM в агентствах «Завтрасайт» и «Интернетмаркетологи». Привет нашей команде!

kostin@zavsite.ru

@kostin

More Related Content

What's hot

М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionAlbina Tiupa
 
Сергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiСергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiYandex
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Andrey Rebrov
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магияAleksey Solntsev
 
WebCamp: Developer Day: Быстродействие веб-сайта. Методичный анализ и глубины...
WebCamp: Developer Day: Быстродействие веб-сайта. Методичный анализ и глубины...WebCamp: Developer Day: Быстродействие веб-сайта. Методичный анализ и глубины...
WebCamp: Developer Day: Быстродействие веб-сайта. Методичный анализ и глубины...GeeksLab Odessa
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиSQALab
 
Codeception UATestingDays
Codeception UATestingDaysCodeception UATestingDays
Codeception UATestingDaysdavertmik
 
Михаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionМихаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionAlbina Tiupa
 
Быстродействие веб сайта. Методичный анализ и глубины клиентской оптимизации
Быстродействие веб сайта. Методичный анализ и глубины клиентской оптимизацииБыстродействие веб сайта. Методичный анализ и глубины клиентской оптимизации
Быстродействие веб сайта. Методичный анализ и глубины клиентской оптимизацииYevhen Kotelnytskyi
 
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Ontico
 
JIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиковJIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиковSQALab
 
Вредные советы для разработчиков
Вредные советы для разработчиковВредные советы для разработчиков
Вредные советы для разработчиковITCrowd Almaty
 
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...Positive Hack Days
 
Михаил Юматов: SaltStack
Михаил Юматов: SaltStackМихаил Юматов: SaltStack
Михаил Юматов: SaltStackit-people
 
КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"
КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"
КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"Alexander Akbashev
 
TDD или как я стараюсь писать код
TDD или как я стараюсь писать кодTDD или как я стараюсь писать код
TDD или как я стараюсь писать кодMoscowDjango
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаAleksandr Boichenko
 
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"SQALab
 
Prometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоPrometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоOntico
 

What's hot (20)

М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с Codeception
 
Сергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiСергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с Gemini
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магия
 
WebCamp: Developer Day: Быстродействие веб-сайта. Методичный анализ и глубины...
WebCamp: Developer Day: Быстродействие веб-сайта. Методичный анализ и глубины...WebCamp: Developer Day: Быстродействие веб-сайта. Методичный анализ и глубины...
WebCamp: Developer Day: Быстродействие веб-сайта. Методичный анализ и глубины...
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточности
 
Codeception UATestingDays
Codeception UATestingDaysCodeception UATestingDays
Codeception UATestingDays
 
Михаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionМихаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с Codeception
 
Быстродействие веб сайта. Методичный анализ и глубины клиентской оптимизации
Быстродействие веб сайта. Методичный анализ и глубины клиентской оптимизацииБыстродействие веб сайта. Методичный анализ и глубины клиентской оптимизации
Быстродействие веб сайта. Методичный анализ и глубины клиентской оптимизации
 
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
 
JIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиковJIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиков
 
Вредные советы для разработчиков
Вредные советы для разработчиковВредные советы для разработчиков
Вредные советы для разработчиков
 
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
 
Михаил Юматов: SaltStack
Михаил Юматов: SaltStackМихаил Юматов: SaltStack
Михаил Юматов: SaltStack
 
КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"
КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"
КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"
 
TDD или как я стараюсь писать код
TDD или как я стараюсь писать кодTDD или как я стараюсь писать код
TDD или как я стараюсь писать код
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.Танка
 
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
 
Prometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоPrometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий Левченко
 
Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)
 

Viewers also liked

Drupal camp аутсорс услуг тестирования - реальность или вымысел-
Drupal camp  аутсорс услуг тестирования - реальность или вымысел-Drupal camp  аутсорс услуг тестирования - реальность или вымысел-
Drupal camp аутсорс услуг тестирования - реальность или вымысел-Konstantin Osipenko
 
Boost your theming skills
Boost your theming skillsBoost your theming skills
Boost your theming skillsArtem Shymko
 
Wodby. cloud infrastructure platform
Wodby. cloud infrastructure platformWodby. cloud infrastructure platform
Wodby. cloud infrastructure platformChingis Sandanov
 
Jquery selector optimization in drupal
Jquery selector optimization in drupalJquery selector optimization in drupal
Jquery selector optimization in drupalYury Glushkov
 
Алла Тюрина. Авторизация через Ldap
Алла Тюрина. Авторизация через LdapАлла Тюрина. Авторизация через Ldap
Алла Тюрина. Авторизация через LdapKsenia Rogachenko
 
Как зарабатывать друпал разработчику. Клют Иван
Как зарабатывать друпал разработчику. Клют ИванКак зарабатывать друпал разработчику. Клют Иван
Как зарабатывать друпал разработчику. Клют ИванPVasili
 
Продвижение образовательных событий в соцсетях
Продвижение образовательных событий в соцсетяхПродвижение образовательных событий в соцсетях
Продвижение образовательных событий в соцсетяхMaria Voul
 
Looking for Vulnerable Code. Vlad Savitsky
Looking for Vulnerable Code. Vlad SavitskyLooking for Vulnerable Code. Vlad Savitsky
Looking for Vulnerable Code. Vlad SavitskyVlad Savitsky
 
My contribs - Андрей Березовский
My contribs -  Андрей БерезовскийMy contribs -  Андрей Березовский
My contribs - Андрей БерезовскийAndrey Yurtaev
 
программа компас изменение судьбы
программа компас   изменение судьбыпрограмма компас   изменение судьбы
программа компас изменение судьбыLiudmila Filippovets
 
Репутационная работа по версии Стерно.ру
Репутационная работа по версии Стерно.руРепутационная работа по версии Стерно.ру
Репутационная работа по версии Стерно.руSterno_ru
 
Drupal организация разработки
Drupal   организация разработкиDrupal   организация разработки
Drupal организация разработкиAnna Fedoruk
 
Чингис Санданов - Drupal как решение для госсектора
Чингис Санданов - Drupal как решение для госсектораЧингис Санданов - Drupal как решение для госсектора
Чингис Санданов - Drupal как решение для госсектораDrupalSPB
 
How we maintain 200+ Drupal sites in Georgetown University
How we maintain 200+ Drupal sites in Georgetown UniversityHow we maintain 200+ Drupal sites in Georgetown University
How we maintain 200+ Drupal sites in Georgetown UniversityOvadiah Myrgorod
 

Viewers also liked (20)

Drupal camp аутсорс услуг тестирования - реальность или вымысел-
Drupal camp  аутсорс услуг тестирования - реальность или вымысел-Drupal camp  аутсорс услуг тестирования - реальность или вымысел-
Drupal camp аутсорс услуг тестирования - реальность или вымысел-
 
Boost your theming skills
Boost your theming skillsBoost your theming skills
Boost your theming skills
 
Concept Fusion
Concept FusionConcept Fusion
Concept Fusion
 
Doc
DocDoc
Doc
 
Доклад на DrupalCafe Minsk
Доклад на DrupalCafe MinskДоклад на DrupalCafe Minsk
Доклад на DrupalCafe Minsk
 
Wodby. cloud infrastructure platform
Wodby. cloud infrastructure platformWodby. cloud infrastructure platform
Wodby. cloud infrastructure platform
 
Jquery selector optimization in drupal
Jquery selector optimization in drupalJquery selector optimization in drupal
Jquery selector optimization in drupal
 
Алла Тюрина. Авторизация через Ldap
Алла Тюрина. Авторизация через LdapАлла Тюрина. Авторизация через Ldap
Алла Тюрина. Авторизация через Ldap
 
Как зарабатывать друпал разработчику. Клют Иван
Как зарабатывать друпал разработчику. Клют ИванКак зарабатывать друпал разработчику. Клют Иван
Как зарабатывать друпал разработчику. Клют Иван
 
Продвижение образовательных событий в соцсетях
Продвижение образовательных событий в соцсетяхПродвижение образовательных событий в соцсетях
Продвижение образовательных событий в соцсетях
 
Looking for Vulnerable Code. Vlad Savitsky
Looking for Vulnerable Code. Vlad SavitskyLooking for Vulnerable Code. Vlad Savitsky
Looking for Vulnerable Code. Vlad Savitsky
 
141112 гчп cnews (2)
141112 гчп cnews (2)141112 гчп cnews (2)
141112 гчп cnews (2)
 
Drupal association slides us 2013
Drupal association slides us 2013Drupal association slides us 2013
Drupal association slides us 2013
 
My contribs - Андрей Березовский
My contribs -  Андрей БерезовскийMy contribs -  Андрей Березовский
My contribs - Андрей Березовский
 
нанана
нананананана
нанана
 
программа компас изменение судьбы
программа компас   изменение судьбыпрограмма компас   изменение судьбы
программа компас изменение судьбы
 
Репутационная работа по версии Стерно.ру
Репутационная работа по версии Стерно.руРепутационная работа по версии Стерно.ру
Репутационная работа по версии Стерно.ру
 
Drupal организация разработки
Drupal   организация разработкиDrupal   организация разработки
Drupal организация разработки
 
Чингис Санданов - Drupal как решение для госсектора
Чингис Санданов - Drupal как решение для госсектораЧингис Санданов - Drupal как решение для госсектора
Чингис Санданов - Drupal как решение для госсектора
 
How we maintain 200+ Drupal sites in Georgetown University
How we maintain 200+ Drupal sites in Georgetown UniversityHow we maintain 200+ Drupal sites in Georgetown University
How we maintain 200+ Drupal sites in Georgetown University
 

Similar to Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную эксплуатацию (Drupal QA)

Отладка веб-приложений на Javascript
Отладка веб-приложений на JavascriptОтладка веб-приложений на Javascript
Отладка веб-приложений на JavascriptDenis Latushkin
 
Rsnx tsvetkov che btrix conf 2015
Rsnx tsvetkov che btrix conf 2015Rsnx tsvetkov che btrix conf 2015
Rsnx tsvetkov che btrix conf 2015Yulia Karpova
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияYandex
 
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...Лавлинский Николай
 
Автоматизация тестирования клиентской производительности - Лавлинский Николай...
Автоматизация тестирования клиентской производительности - Лавлинский Николай...Автоматизация тестирования клиентской производительности - Лавлинский Николай...
Автоматизация тестирования клиентской производительности - Лавлинский Николай...Николай Лавлинский
 
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Ontico
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияYandex
 
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙСтановление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙCEE-SEC(R)
 
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...QAFest
 
Основные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesОсновные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesArtur Baranok
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyRegn
 
WebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funWebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funAlexandr Khotemskoy
 
Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5Docsvision
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...solit
 
Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...tabtabus
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 

Similar to Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную эксплуатацию (Drupal QA) (20)

Отладка веб-приложений на Javascript
Отладка веб-приложений на JavascriptОтладка веб-приложений на Javascript
Отладка веб-приложений на Javascript
 
Rsnx tsvetkov che btrix conf 2015
Rsnx tsvetkov che btrix conf 2015Rsnx tsvetkov che btrix conf 2015
Rsnx tsvetkov che btrix conf 2015
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
 
Автоматизация тестирования клиентской производительности - Лавлинский Николай...
Автоматизация тестирования клиентской производительности - Лавлинский Николай...Автоматизация тестирования клиентской производительности - Лавлинский Николай...
Автоматизация тестирования клиентской производительности - Лавлинский Николай...
 
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Sivko
SivkoSivko
Sivko
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙСтановление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
 
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
 
Основные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesОсновные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure Websites
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
 
MS TFS 2010 - Обзор и архитектура
MS TFS 2010 - Обзор и архитектураMS TFS 2010 - Обзор и архитектура
MS TFS 2010 - Обзор и архитектура
 
WebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funWebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double fun
 
Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5Производительность и надежность Docsvision 5
Производительность и надежность Docsvision 5
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
 
Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 

More from Alexey Kostin

Поисковая оптимизация сайта на Drupal 7
Поисковая оптимизация сайта на Drupal 7Поисковая оптимизация сайта на Drupal 7
Поисковая оптимизация сайта на Drupal 7Alexey Kostin
 
Продвижение в интернете, ч. 1 (семантическое ядро)
Продвижение в интернете, ч. 1 (семантическое ядро)Продвижение в интернете, ч. 1 (семантическое ядро)
Продвижение в интернете, ч. 1 (семантическое ядро)Alexey Kostin
 
Построение внутренней ссылочной структуры
Построение внутренней ссылочной структуры Построение внутренней ссылочной структуры
Построение внутренней ссылочной структуры Alexey Kostin
 
Поисковая оптимизация интернет-магазина на базе Drupal Commerce
Поисковая оптимизация интернет-магазина на базе Drupal CommerceПоисковая оптимизация интернет-магазина на базе Drupal Commerce
Поисковая оптимизация интернет-магазина на базе Drupal CommerceAlexey Kostin
 
Increase Site CTR in SERP Using Google Rich Snippets And Drupal 7
Increase Site CTR in SERP Using Google Rich Snippets And Drupal 7Increase Site CTR in SERP Using Google Rich Snippets And Drupal 7
Increase Site CTR in SERP Using Google Rich Snippets And Drupal 7Alexey Kostin
 
Построение образовательного сайта с системой интерактивного тестирования на б...
Построение образовательного сайта с системой интерактивного тестирования на б...Построение образовательного сайта с системой интерактивного тестирования на б...
Построение образовательного сайта с системой интерактивного тестирования на б...Alexey Kostin
 
Презентация «Drupal и SEO» с московской DrupalConf 2011
Презентация «Drupal и SEO» с московской DrupalConf 2011Презентация «Drupal и SEO» с московской DrupalConf 2011
Презентация «Drupal и SEO» с московской DrupalConf 2011Alexey Kostin
 

More from Alexey Kostin (7)

Поисковая оптимизация сайта на Drupal 7
Поисковая оптимизация сайта на Drupal 7Поисковая оптимизация сайта на Drupal 7
Поисковая оптимизация сайта на Drupal 7
 
Продвижение в интернете, ч. 1 (семантическое ядро)
Продвижение в интернете, ч. 1 (семантическое ядро)Продвижение в интернете, ч. 1 (семантическое ядро)
Продвижение в интернете, ч. 1 (семантическое ядро)
 
Построение внутренней ссылочной структуры
Построение внутренней ссылочной структуры Построение внутренней ссылочной структуры
Построение внутренней ссылочной структуры
 
Поисковая оптимизация интернет-магазина на базе Drupal Commerce
Поисковая оптимизация интернет-магазина на базе Drupal CommerceПоисковая оптимизация интернет-магазина на базе Drupal Commerce
Поисковая оптимизация интернет-магазина на базе Drupal Commerce
 
Increase Site CTR in SERP Using Google Rich Snippets And Drupal 7
Increase Site CTR in SERP Using Google Rich Snippets And Drupal 7Increase Site CTR in SERP Using Google Rich Snippets And Drupal 7
Increase Site CTR in SERP Using Google Rich Snippets And Drupal 7
 
Построение образовательного сайта с системой интерактивного тестирования на б...
Построение образовательного сайта с системой интерактивного тестирования на б...Построение образовательного сайта с системой интерактивного тестирования на б...
Построение образовательного сайта с системой интерактивного тестирования на б...
 
Презентация «Drupal и SEO» с московской DrupalConf 2011
Презентация «Drupal и SEO» с московской DrupalConf 2011Презентация «Drupal и SEO» с московской DrupalConf 2011
Презентация «Drupal и SEO» с московской DrupalConf 2011
 

Что, зачем и каким образом следует проверять и тестировать перед запуском сайта на Drupal в публичную эксплуатацию (Drupal QA)

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