Тестирование CMS Joomla

05/06/2012 Новости Joomla

Unit-Test

С начала выхода Mambo до сегодняшнего дня, Joomla! постоянно менялась и расширяла функционал. С момента выхода Joomla! 1.5, качество кода и удобство работы с системой изменилось в лучшую сторону, что так же можно наблюдать и версии 2.5. Переезд на GitHub облегчило работу разработчикам, можно постоянно наблюдать изменения и вносить свой вклад в дальнейшее развитие системы. Теперь центр внимания все больше и больше падает на следующий логический шаг - Автоматизированные тесты.

Процесс тестирования

В настоящее время используют три вида тестирования:

  • Модульное тестирование (юнит-тестирование) - тестирование небольших кусков кода (единиц), как правило, это тестирование отдельных методов, без учета других классов или методов. Эти тесты позволяют проверить работу методов, а так же проверить их на наличие ошибок.
  • Интеграционное тестирование - проверка интеграции двух или более единиц (групп). Эти тесты охватывают взаимодействие нескольких единиц.
  • Системное тестирование - тестирование системы в целом. К этой группе относится тестирование приложений через браузер.

Для обеспечения общего качества кода Joomla, покрытие юнит-тестирования более чем на 90% не требуется. В настоящее время база кода не всегда позволяет проводить юнит-тесты. Причиной этого является тесные связи отдельных объектов, поэтому в основном ограничиваются интеграционными и системными тестами.

Разработка через тестирование

Для будущего это должна быть цель - осуществлять Разработку через тестирование, т.е., разработчик сначала тестирует отдельный модуль, чтобы определить его  поведение, и только после этого реализует его в коде. Таким образом очень высокое покрытие юнит-тестирования модуля гарантируется. Развитие кодовой базы никогда не будет повреждать существующую функциональность, потому что это будет обнаружено на начальной стадии внедрения.

Тестируемые объекты

Использование связей и зависимостей в настоящее время усложнят процесс модульного тестирования. Самый простой способ избавиться от этого это сделать методы JFactory не статическими, а передавать экземпляр "фабрики" с помощью параметров. Таким образом будет не проблема найти ложную "фабрику", которая поставляет ложные объекты.

Нет тестов - Нет исправления ошибок

Что бы исправить найденную ошибку, нужно провести тест, который воспроизведет данную проблему. В идеале это должно быть модульное тестирование, но часто это ограничивается системным тестированием. Таким образом создается решение, которое заставляет правильно пройти тест, а не решает проблему в корне, что доказывает затруднительное положение.

Рабочая группа юнит-тестирования CMS Joomla

В платформе проделали огромную работу, добавив автоматизированное тестовое покрытие для кода. С Joomla! 3.0 также нашей целью является представить автоматизированные тесты для CMS. Рабочую группу модульного тестирования координирует Michael Babker, которая будет работать на создание тестовой среды для CMS с версии 3.0 в качестве основы для разработки тестовой структуры.

Руководство по написанию тестов, в том числе учебники, будут опубликованы в вики, как только система будет готова.

Если вы хотите присоединиться к проекту, то от вас требуется просто наличие учетной записи на GitHub. Таким образом, вы можете наблюдать за ходом развития репозитория и принимать участие в проекте.

 

Автор - Niels Braczek

Источник - http://magazine.joomla.org/issues/Issue-June-2012/item/778-CMS-Testing


0 

Добавить комментарий


Защитный код
Обновить