Давайте вместе обсудим чеклист контроля качества внедрения, которые мы планируем выпустить в ближайшем релизе продукта. Пункты чеклиста разбиты на группы: «Интеграция дизайна и разработка», «Размещение на хостинге», «Производительность», «Безопасность», «Сдача проекта». Серые пункты - необязательные, черные – обязательные для заполнения. Проверка по ряду пунктов будет автоматизирована (постараемся постепенно автоматизировать большинство пунктов). Многие пункты будут содержать ссылки на методические материалы на наших сайтах. Также, можно будет добавлять собственные обязательные пункты, путем редактирования конфигурационного файла проекта.
Пожалуйста, высказывайте ваши замечания и предложения, основанные на опыте внедрений. Все предложения будут тщательно рассмотрены и прокомментированы. Кто стесняется - пишите плз. «в личку» или на serbul@1c-bitrix.ru.
Для углубленного обсуждения чеклиста
Вот также
Прототипы интерфейсов:
Список тестов чеклиста контроля качества внедрения:
Интеграция дизайна и разработка/Интеграция дизайна
(QD0010) Сайт проекта добавлен и корректно настроен: выбран тип многосайтовой конфигурации, настроены доменные имена, кодировка сайта, формат даты и времени, язык.
Подробнее:
(QD0020) Созданы и настроены шаблоны сайта (выделен header/footer, через вызовы API устанавливаются заголовок страницы, метаданные, кодировка, стили страницы, административная панель, демаркированы включаемые и рекламные области).
Подробнее:
(QD0030) Настроены все типы меню.
Подробнее:
Рекомендуется использование стандартных компонентов (с кэшированием) – «bitrix:menu».
(QD0040) Поддерживается возможность редактирования объектов шаблона сайта в публичной части с помощью технологий "Эрмитаж" (не заходя в административный раздел).
Подробнее:
(QD0050) Настроена цепочка навигации (строится автоматически).
Подробнее:
Рекомендуется использование стандартных компонентов – «bitrix:breadcrumb».
(QD0060) Настроено формирование карты сайта (строится автоматически).
Подробнее:
Рекомендуется использование стандартных компонентов – «bitrix:main.map».
(QD0070) Свойства страниц и разделов, редактируемые администратором, позволяют управлять характеристиками веб-страниц проекта - названием, описанием, мета-тэгами и т.п.
Подробнее:
(QD0080) Настроены шаблоны типовых страниц и включаемых областей (для быстрого создания по шаблону) для удобства работы контент-редактора.
(QD0090) Заданы имена стилям, которые появляются в визуальном редакторе для удобства работы контент-редактора.
Подробнее:
(QD0100) В визуальном редакторе настроены сниппеты - необходимые для эффективного создания контента.
Подробнее:
(QD0110) Создана группа редакторов контента, которые имеют возможность создавать страницы и разделы, добавлять/изменять меню, изменять включаемые области, метаданные страницы, размещать на странице и редактировать настройки компонентов.
Подробнее:
(QD0120) Управление специфичными для проекта свойствами страниц и разделов, включаемыми областями, расширенными свойствами меню - описаны в техдокументации к проекту.
Интеграция дизайна и разработка/Интеграция структур данных
(QM0010) Созданы и настроены необходимые для проекта типы информационных блоков. Созданы и настроены необходимые для проекта информационные блоки. Путем анализа ожидаемого объема данных и нагрузки выбран подходящий тип инфоблоков (1.0 или 2.0), настроены свойства и другие параметры инфоблоков.
Подробнее:
(QM0020) Настроены адаптированные под задачи проекта формы редактирования элементов инфоблоков и их списков в административном разделе, установленные по умолчанию для всех пользователей проекта.
Подробнее:
Интеграция дизайна и разработка/Интеграция стандартных компонентов и модулей
(QS0010) Настроены стандартные модули, требуемые для выполнения задач проекта.
Подробнее:
(QS0020) На страницах проекта размещены и настроены стандартные компоненты (рекомендуются компоненты 2.0). Установлено кэширование в режим "Авто+Управляемое" или "Авто".
Подробнее:
(QS0030) Обеспечена работа интерфейсов "Эрмитаж" с компонентами в публичной части для редактора контента:
- добавление/редактирование объектов «над сайтом»
- редактирование параметров компонентов
Подробнее:
(QS0040) Для изменения внешнего вида стандартных компонентов используется копирование шаблонов компонентов в шаблоны проекта и их модификация.
Подробнее:
Интеграция дизайна и разработка/Интеграция собственных компонентов и модулей
(QC0010) (MVC) Разработаны собственные компоненты 2.0 проекта, размещенные в отдельном пространстве имен.
Подробнее:
(QC0020) (FRONT CONTROLLER) Для создания сложного функционала или многостраничных представлений используются комплексные компоненты.
Подробнее:
(QC0030) (INTERFACE) Из компонентов вынесены в их настройки наиболее часто изменяемые параметры - для обеспечения повторного использования компонента в этом и других проектах без модификации кода компонента и его шаблона. Параметры компонентов и их допустимые значения – описаны либо в интерфейсе настройки компонента в публичной части сайта, либо в техдокументации к проекту.
Подробнее:
(QC0040) (CACHE) В собственных компонентах используется управляемое кэширование в режиме "Авто+Управляемое" с установкой длительного периода кэширования (1-12 месяцев) или "Авто" кэширование.
Подробнее:
(QC0050) (CACHE) В режиме кэширования компоненты не выполняют запросы к базе данных или выполняют только те запросы, кэширование которых является нерациональным.
Подробнее:
(QC0060) (CACHE) Компонент не сохраняет избыточные данные в кэш. При неверном ключе кэша – данные не кэшируются и не используются повторно (для предотвращения переполнения кэша злоумышленником). Объем файла кэша компонента не превышает 1МБ.
Подробнее:
(QC0070) (CONTROLLER) PHP-код компонента оптимизирован по расходу оперативной памяти и процессоров. На PHP не выполняются большие сортировки или обработки больших массивов. Компонент профилировался встроенным отладчиком платформы.
Подробнее:
(QC0080) (MODEL) Число и сложность запросов к базе данных в компоненте адекватны решаемой задаче (параметр замеряется при отключенном кэшировании компонента). Выполняемые компонентом запросы профилированы встроенным SQL-отладчиком.
Подробнее:
(QC0090) (MODEL) В компонентах и их шаблонах не используются прямые запросы к базе данных. Работа с базой данных выполняется через API функции платформы Битрикс. Запросы к специфичным для проекта таблицам в базе данных выполняются через класс CDatabase (это необходимо для работы подсистемы отладки, мониторинга и кластеризации).
Подробнее:
(QC0100) (VIEW) Шаблон компонента максимально облегчен и содержит преимущественно логику для формирования верстки (представления).
Подробнее:
(QC0110) При разработке собственных компонентов 2.0 использовались рекомендации по написанию кода от Битрикс.
Подробнее:
(QC0120) При выполнении страниц и вспомогательных скриптов проекта отсутствуют предупреждения (E_WARNING) PHP.
Подробнее:
(QC0130) Созданный для проекта программный код средней и высокой сложности оформлен в виде отдельного подключаемого модуля платформы Битрикс.
Подробнее:
(QC0140) Используются обработчики событий для расширения функционала платформы без модификации ядра. Обработчики описаны в техдокументации к проекту, либо тщательно документированы в файлах настройки проекта.
Подробнее:
(QC0150) На контентных страницах проекта и во включаемых областях, доступных для редактирования визуальным редактором, отсутствует прямое включение PHP кода. Код должен находиться только внутри компонентов.
Подробнее:
(QC0160) Разметка, возвращаемая компонентом и включаемой областью, должна возвращать целостный html-блок с закрытыми тэгами. Например, компонент должен возвращать таблицу целиком (неправильно, когда до вызова компонента вставляется заголовок таблицы, компонент возвращает строки и ячейки таблицы, а после вызова компонента вставлен закрывающий тэг таблицы).
Интеграция дизайна и разработка/Дополнительно
(QE0010) Специфичные для проекта периодические операции (агенты) настроены, а рекомендации по интервалам их запуска описаны в техдокументации проекта.
Подробнее:
(QE0020) Для комплексной настройки функционала проекта используется технология мастеров.
Подробнее:
(QE0030) Для управления нестандартными разделами и объектами проекта используется технология собственных административных разделов.
Подробнее:
(QE0040) Используются SEO URL в кастомных и стандартных компонентах.
Подробнее:
Размещение на хостинге
(QH0010) Введена информация о хостинге, тарифном плане и аппаратной конфигурации проекта.
Подробнее:
(QH0020) Для правильной настройки программного обеспечения хостинга использован пакет «1С-Битрикс: Веб-окружение» (для Windows и Linux), либо «1С-Битрикс: Виртуальная машина», либо выбран тарифный план для Битрикс, предоставляемый одним из хостинг-партнеров.
Подробнее:
(QH0030) Отсутствуют замечания в разделе "Инструменты/Проверка сайта" на вкладках: "Обязательные параметры", "Проверка доступа (полная проверка)", "Тестирование конфигурации".
Подробнее:
(QH0040) При использовании двухуровневой конфигурации (напр. nginx+apache или балансировщика на веб-кластере) в модуль «Веб-аналитика» передается корректный IP-адрес клиента.
(QH0050) Проверено, что настроено и выполняется систематическое резервное копирование файлов и базы данных проекта.
(QH0060) Настроена почтовая подсистема хостинга. Успешно отправлено тестовое письмо через API платформы Битрикс.
Производительность
(QP0010) Для обеспечения максимальной производительностии использован пакет «1С-Битрикс: Веб-окружение» (для Windows и Linux), либо «1С-Битрикс: Виртуальная машина», либо выбран тарифный план для Битрикс, предоставляемый одним из рекомендуемых хостинг-партнеров. Используется двух-уровневая конфигурация фронтэнд-бэкэнд.
Подробнее:
(QP0020) PHP сконфигурирован оптимально. В административном разделе: "Настройки/Производительность/Панель производительности/Конфигурация" в строке «Конфигурация PHP» в колонке «Оценка» должно появиться значение - «оптимально». Обязательно использование прекомпилятора PHP с адекватным объемом памяти – eaccelerator, xcache, apc, ZendOptimizer+ (часто используемые исполняемые файлы проекта должны помещаться в opcode-кэш прекомпилятора).
Подробнее:
(QP0030) Включено «Автокэширование» в разделе «Настройки/Настройки продукта/Автокэширование/Кэширование компонентов».
(QP0040) Инфраструктура платформы сконфигурирована для максимальной производительности. В административном разделе: "Настройки/Производительность/Панель производительности/Битрикс" в колонке «Рекомендации» должны быть выполнены все рекомендации по улучшению производительности платформы. Название вкладки станет - «Битрикс (оптимально)».
(QP0050) Производительность конфигурации адекватна требованиям проекта и составляет #N# (#расшифровка#)* - «Настройки/Производительность/Панель производительности/Конфигурация»:
- Нажимаем «Тестировать конфигурацию»
- Результат после проведения замеров появляется в колонке «Оценка» строки «Конфигурация»
* «Низкая» – (<=15), «Удовлетворительная» - >15 и <30, «Высокая» - >=30.
Подробнее:
(QP0060) Выполнен нагрузочный тест максимальной производительности проекта - "Настройки/Производительность/Панель производительности/Масштабируемость" с исходными данными:
- Начальное количество одновременных соединений = 1
- Конечное количество одновременных соединений = 5
- Шаг увеличения одновременных соединений = 1
- Максимальная продолжительность теста = 5 минут
- Страница = главная проекта (например - /index.php)
Время генерации страницы не должно превышать 0.5 секунды и не должно деградировать при увеличении количества одновременных соединений во время теста. Число ошибок должно быть равно нулю. Минимальное число страниц в секунду должно соответствовать ожидаемой пиковой посещаемости проекта в сутки (хитов в сутки), деленной на 86400. Минимальное время получения страницы не должно превышать 1 секунды.
(QP0070) Выполнен аудит производительности основных страниц проекта:
- На административной странице «Настройки/Производительность/Панель производительности» нажимаем «Тестировать производительность» в течение 10 минут
- Кликаем по основным страницам публичной части. Рекомендуется привлечь к тестированию как можно больше сотрудников или использовать инструменты нагрузки типа JMeter.
- После завершения теста анализируем результаты на вкладке «Разработка»: результаты в колонке «Среднее время (сек)» не должны превышать 0.5 сек, в колонке «Ошибки разработки» не должно быть сообщений об ошибках.
(QP0080) Расставлены индивидуальные индексы в инфоблоках 2.0 для увеличения скорости выборки данных.
Подробнее:
(QP0090) HTML кэширование включено для небольших, редко изменяемых проектов в разделе «Настройки/Настройки продукта/Автокэширование/HTML кэш».
Подробнее:
(QP0100) Настроен и сконфигурирован веб-кластер в соответствии с руководством (для высоконагруженных проектов или систем, которым требуется высокая надежность).
Подробнее:
Безопасность
(QSEC0010) Система соответствует уровню безопасности – «Стандартный» (включен проактивный фильтр, контроль активности, повышенный уровень безопасности администраторов и т.п.) или выше.
Подробнее:
«Настройки/Проактивная защита/Панель безопасности»
(QSEC0020) Административные учетные записи имеют повышенный уровень безопасности. По возможности, для них используется технология двухфакторной авторизации (OTP).
Подробнее:
(QSEC0030) Настроены права групп пользователей системы и протестированы их возможности в административном разделе системы после авторизации ("/bitrix/admin" . Все «лишнее» должно быть недоступно.
Подробнее:
(QSEC0040) Удалены тестовые учетные записи разработчиков. Удалены тестовые данные и страницы.
(QSEC0045) Файлы данных и страницы веб-проекта, содержащие конфиденциальную информацию (в т.ч. персональные данные Клиентов), закрыты от неавторизованного доступа и от индексации поисковыми роботами. Для дополнительной защиты персональных данных Клиентов при их передаче по сети, в случае необходимости, используется SSL.
(QSEC0050) Для соединения с базой данных на хостинге используется сильный пароль, настроены необходимые проекту привилегии для работы с базой данных (работа не под root).
(QSEC0060) Отключен вывод ошибок и предупреждений посетителям проекта.
Подробнее:
$DBDebug - отключен (dev.1c-bitrix.ru/api_help/main/general/magic_vars.php)
"Настройки/Настройки продукта/Настройки модулей/Главный модуль: Режим вывода ошибок" -> "Не выводить"
(QSEC0070) Настроен журнал системных событий.
Подробнее:
«Настройки/Инструменты/Журнал событий»
(QSEC0080) Компьютер администраторов системы защищен:
- установлено актуальное антивирусное ПО, регулярно проводится полная антивирусная проверка
- пароли от системы (ftp, ssh, БД, админка битрикс и т.п.) не сохраняются в клиентских программах: браузере, ФТП клиенте и т.п.
- каждый администратор должен иметь свой уникальный логин-пароль
Сдача проекта
(QJ0010) Лицензионный ключ активирован, загружены исходные тексты ядра.
Подробнее:
(QJ0020) Ядро проекта не модифицировалось. В любое время можно обновить платформу через систему обновлений, не нарушив работоспособность проекта.
Подробнее:
(QJ0030) Введена информация о партнере (произвольное текстовое поле и логотип) или компании, которая провела интеграцию и внедрение решения на платформе Битрикс.
(QJ0040) Введена информация о техподдержке проекта (произвольное текстовое поле и логотип).