Дисциплина «Метрология программного обеспечения» входит в учебный план подготовки дипломированных специалистов по направлению 654600 — «Информатика и вычислительная техника» по специальности 220400 — «Программное обеспечение вычислительной техники и автоматизированных систем». Дисциплина изучает проблемы оценки метрических характеристик качества ПО на этапах от разработки спецификаций до завершения отладки и тестирования программного продукта. В курсе рассматриваются критерии, характеристики и метрики качества ПО; особый упор делается на характеристики корректности, надежности и сложности программ. Изучаются формальные модели и методы оценки как статических, так и динамических характеристик качества ПО, позволяющие на различных стадиях разработки выявлять просчеты и дефекты программного изделия. Рассматриваются инструментальные средства поддержки и автоматизации измерения характеристик ПО.Далее по тексту будет находится краткий обзор инструментов с помощью которых можно анализировать различные характиристики в приложениях созданных на PHP. Данный материал появился на свет в результате некоторых экспериментов в области непрерывной интеграции, и должен был являться частью статьи про непрерывную интеграцию (спойлерить пока не буду, боюсь сглазить) все в том же РНР, но я решил все-таки выделить его в самостоятельный обзор, так как возможно, в последующих статьях я буду ссылаться на него, а так же надеюсь узнать об аналогичных инструментах еще не попавших мне на глаза. Некоторые инструменты уже были рассмотрены достаточно подробно, но тем не менее полного списка всех доступных еще не было.
PHP_CodeCoverage
PHP_CodeCoverage это библиотека, которая обеспечивает сбор, обработку и отображение информации о покрытии кода тестами, требует xdebug, а так же использует некоторые сторонние библиотеки. Более подробная информация находится на официальном сайте.
- Автор: Sebastian Bergmann
- Официальный сайт: http://github.com/sebastianbergmann/php-code-coverage
- Официальный PEAR канал: http://pear.phpunit.de/
- Текущая версия: 0.9.0 (alpha)
PhpDocumentor
На основании комментариев в исходном коде генерирует соответствующую документацию, имеет уйму возможностей в числе которых презентабельный и дружественный к пользователю шаблоны.
- Автор: Joshua Eichorn
- Официальный сайт: http://www.phpdoc.org/
- Официальный PEAR канал: http://pear.php.net/
PHP Copy/Paste Detector [phpcpd]
Название говорит само за себя: находит дублированный код и сообщает о нем.
- Автор: Sebastian Bergmann
- Официальный сайт: http://github.com/sebastianbergmann/phpcpd
- Официальный PEAR канал: http://pear.php.net/
- Текущая версия: 1.3.1 (stable)
PHP_Depend
Собирает и отображает статистическую информацию о проекте.
- Автор: Manuel Pichler
- Официальный сайт: http://pdepend.org/
- Официальный PEAR канал: http://pear.pdepend.org/
- Текущая версия: 0.9.11 (beta)
PHP_PMD
Ответвление от PHP_Depend: отображает информацию о размерах кода, используемых именах, неиспользуемом коде. Обзор от DevMan
- Автор: Manuel Pichler
- Официальный сайт: http://phpmd.org/
- Официальный PEAR канал: http://pear.phpmd.org/
- Текущая версия: 0.2.5 (alpha)
PHP_CodeSniffer
Позволяет наблюдать за состоянием PHP, JavaScript и CSS файлов и определять отклонения от принятых стандартов кодирования. Обзор от DevMan
- Автор: Greg Sherwood
- Официальный сайт: http://matrix.squiz.net/developer/tools/php_cs
- Официальный PEAR канал: http://pear.php.net/
- Текущая версия: 1.2.2 (stable)
PHPUnit
Пожалуй самый известный инструмент для модульного тестирования, думаю в представлении не нуждается.
- Автор: Sebastian Bergmann
- Официальный сайт: http://www.phpunit.de/
- Официальный PEAR канал: http://pear.phpunit.de/
- Текущая версия: 3.4.12 (stable)
PHP_CodeBrowser
Обеспечивает просмотр кода с синтаксической подсветкой, имеет богатые возможности по визуализации, может использовать отчеты от: phpunit, phpcpd, padawan, phpcs. Из этого обзора можно понять насколько инструмент перспективный.
- Автор: Mayflower GmbH
- Официальный сайт: http://github.com/mayflowergmbh/PHP_CodeBrowser
- Официальный PEAR канал: http://pear.phpunit.de/
- Текущая версия: 0.1.3 (alpha)
phploc
Еще один инструмент собирающий статистическую информацию о проекте.
- Автор: Sebastian Bergmann
- Официальный сайт: http://github.com/sebastianbergmann/phploc
- Официальный PEAR канал: http://pear.phpunit.de/
- Текущая версия: 1.5.1 (stable)
phpdcd
Детектор неиспользуемого кода (Dead Code Detector) для PHP. Он сканирует PHP проект на предмет всех определенных функций и методов и сообщает о них как о неиспользуемых если из вызов не встречается хотя бы однажды
- Автор: Sebastian Bergmann
- Официальный сайт: http://github.com/sebastianbergmann/phpdcd
- Официальный PEAR канал: pear.phpunit.de
- Текущая версия: 0.9.2 (beta)
Padawan
Инструмент для обнаружения антипаттернов, обходных путей и прочих неприятностей.
- Автор: Sebastian Bergmann
- Официальный сайт: http://github.com/sebastianbergmann/padawan
- Официальный PEAR канал: неизвестен
- Текущая версия: неизвестна
PHP_CachegrindParser
Обработчик для cachegrind файлов создающий xml отчеты для последующего использования в CI.
- Автор: Mayflower GmbH
- Официальный сайт: http://github.com/mayflowergmbh/PHP_CachegrindParser
- Официальный PEAR канал: неизвестен
- Текущая версия: неизвестна
В следующей статье рассмотрим как применять на практике эти инструменты с пользой и попробуем определить их потенциальную полезность.