Этот контрольный список поможет вам организовать работу при тестировании расширения перед отправкой его на публикацию.

Тестирование функциональности расширения

  1. Удостоверьтесь в том, что расширение можно корректно установить, обновить и удалить. Для нового расширения обновление можно протестировать путем повторной загрузки расширения.
  2. Удостоверьтесь в том, что расширение проверяет, поддерживается ли используемая операционная система. Если нет – расширение должно явно сообщить об этом администратору с помощью удобочитаемого сообщения.
  3. Проверьте, что все функции расширения работают, как ожидается, расширение не зависает и не падает.
  4. Если расширение использует хранилище пар «ключ-значение» Plesk для хранения данных, удостоверьтесь в том, что оно делает это правильно и эффективно.
  5. Если расширение использует базу данных SQLite, проверьте, что она корректно работает с объектами Plesk, защищена от SQL-инъекций и правильно ведет себя при обновлении расширения.
  6. Если вы используете Javascript и CSS для изменения страниц Plesk и/или расширения, обратите внимание на то, как это отражается на производительности, и избегайте конфликтов имен.
  7. Если расширение использует файл panel.ini для хранения каких-либо настроек, удостоверьтесь в том, что эти настройки работают правильно, и проверьте, что удаление расширения не нарушает остального содержимого файла panel.ini.
  8. Если ваше расширение использует длительные задачи, удостоверьтесь в том, что они не мешают выполнению других длительных задач, и что расширение корректно останавливает длительные задачи. Удостоверьтесь в том, что выполнение длительных задач не снижает производительности сервера.
  9. Если расширение позволяет устанавливать дополнительные пакеты, убедитесь, что соответствующие длительные задачи запускаются и работают правильно, в один момент времени выполняется только один процесс установки, зависимости устанавливаются, и любые дополнительные репозитории добавляются корректно. Когда расширение удаляется, оно должно также корректно удалять установленные пакеты и репозитории.
  10. Необходимо тщательно проверить интеграцию расширения с внешней службой, а именно: все необходимые объекты и данные должны корректно передаваться из Plesk во внешнюю службу, все изменения на стороне службы должны корректно передаваться в Plesk, расширение должно корректно вести себя в случае недоступности внешней службы.

Тестирование интерфейса и взаимодействия с пользователем

  1. Удостоверьтесь в том, что персональные кнопки, которые ваше расширение добавляет к интерфейсу Plesk, расположены правильно и доступны тогда, когда нужно.
  2. Если расширение имеет свой персональный интерфейс, проверьте, что в нем все работает правильно, и что он правильно интегрирован в интерфейс Plesk без нарушения структуры, навигации, стилей и т.п. Время отрисовки персонального интерфейса должно быть оптимизировано.
  3. Содержимое информационных промо-блоков должно отображаться корректно, включая значки и локализованный текст. Ссылки должны работать.
  4. Удостоверьтесь в том, что интерфейс расширения предоставляет достаточно информации, чтобы помочь пользователю, когда это необходимо. Он может включать в себя описания, подсказки, ссылки на файлы справки, инструкции по получению поддержки и т.д.

Тестирование поддержки функциональности расширения для различных типов доменов

  1. Создайте домены разных типов и протестируйте на них функциональность расширения.
  2. Протестируйте функциональность расширения на различных типах доменов: подписки (основные домены), дополнительные домены, субдомены с собственной зоной DNS, субдомены с родительской зоной DNS, подстановочные субдомены, псевдонимы доменов, перенаправления доменов, домены без хостинга.
  3. Протестируйте расширение на доменах в разных статусах: активен, отключен, приостановлен.
  4. Протестируйте расширение на доменах с различными характеристиками, например: на доменах с IDN; на доменах, использующих IPv6; на доменах, имена которых содержат символы в разном регистре; на доменах с веб-приложениями, установленными в папках, отличных от корневой, или с несколькими веб-приложениями.
  5. Проверьте, что персональные кнопки расширения недоступны для типов доменов, которые не поддерживаются расширением.
  6. Удостоверьтесь в том, что все операции с доменами корректно поддерживаются расширением, и внешней службой, с которым оно интегрировано, в частности: добавление и удаление домена, отключение и активация, приостановка и активация, редактирование настроек хостинга домена.

Тестирование доступа пользователей к функциональности расширения

  1. Удостоверьтесь в том, что пользователи с различными ролями (администратор, реселлер, клиент) имеют доступ к тем и только к тем функциям и данным, к которым должны его иметь.
  2. Удостоверьтесь в том, что клиенты и реселлеры не могут получить доступ к функциям и данным администратора, вводя URL-адреса страниц напрямую.
  3. Удостоверьтесь в том, что у реселлеров есть доступ к доменам, принадлежащим им и их клиентам, но нет доступа к доменам, принадлежащим клиентам других реселлеров.
  4. Расширение должно определять, когда администратор работает от имени реселлера или клиента, и работать в этом случае корректно. Например, если администратор выполняет вход от имени реселлера, у него должны быть права реселлера (а не администратора) управления подписками, доменами и прочими объектами реселлера.
  5. Когда удаляется учетная запись пользователя, все связанные с ней настройки и данные, хранимые расширением, должны быть также удалены. Необходимо предотвращать возможные проблемы безопасности в случае, когда учетная запись пользователя с таким же именем создается повторно.

Тестирование лицензирования

Когда расширение использует инфраструктуру лицензирования Plesk, применимы следующие инструкции. Их также можно применять с некоторыми изменениями в случае персонального лицензирования.

  1. Удостоверьтесь в том, что кнопка или ссылка для покупки лицензии в интерфейсе расширения доступна администратору и только администратору.
  2. Проверьте, что в файле meta.xml корректно записан URL-адрес магазина, и что для получения URL-адресов для покупки и обновления лицензии используются нужные методы SDK.
  3. Запросите и установите тестовый лицензионный ключ.
  4. Проверьте, что данные и функции, к которым предоставляет доступ лицензия, недоступны без ее установки. Проверьте, что данные и функции, к которым предоставляет доступ лицензия, доступны после ее установки.
  5. Если у расширения есть пробный период, проверьте, что оно работает во время этого пробного периода и перестает работать, когда он заканчивается. Удостоверьтесь в том, что пользователи видят корректное сообщение, сообщающее о действии пробного периода.
  6. Расширение может предоставлять различные комбинации функций и данных как разные продукты, доступные с разными лицензиями. Проверьте, что разные лицензии дают доступ к соответствующим продуктам.