Pull to refresh

Некоторые инженерные практики для улучшения качества web application на PHP

Reading time 2 min
Views 4.5K
Этот топик мой ответ на жалобу одного человека, что «баги достали».

Для начала, никакая методология положения не спасет. Начинать нужно с инженерных практик – внедрив их и почувствовав уверенность в своем коде можно внедрять любую методологию.

Первые задачи могут быть такие:
  • Обеспечить интеграционное тестирование, чтобы каждое обновление на production не было головной болью.
  • Обеспечить регрессионное тестирование – чтобы выявленные ошибки не возникали опять (отслеживались автоматически).


На мой взгляд, напрашивается внедрение Continuous Integration. Я не знаю, как ты сейчас собираешь проекты, но это делается не IDE, а с помощью тулов вроде Ant. Тот же Ant запускает автоматические тесты. Да, тесты начать писать это не очень просто, но ведь не нужно сразу все охватывать – внедрение CI точно не сделает в ваших проектах дополнительных багов.

1. Самая лучшая статья про CI – это Мартина Фаулера: www.martinfowler.com/articles/continuousIntegration.html#EveryCommitShouldBuildTheMainlineOnAnIntegrationMachine

2. Дальше – презентация «A Quick Start to Continuous Integration» — правда на примере phpUnderControl: sebastian-bergmann.de/archives/818-A-Quick-Start-to-Continuous-Integration.html

3. Презентация о тестах PHPUnit и Selenium «Quality Assurance in PHP Projects»:
sebastian-bergmann.de/archives/817-Quality-Assurance-in-PHP-Projects.html

Вот конкретные инструменты – вроде эти нормальные, но сам смотри:
1. xinc code.google.com/p/xinc — CI для PHP
2. Phing – типа Ant для PHP
3. PHPUnit — www.phpunit.de
4. Selenium — en.wikipedia.org/wiki/Selenium_(software) – тестирование интерфейсов, интегрируется с PHPUnit
5. SVN

Ты говорил, что не представляешь как писать тесты – даже на самом сайте PHPUnit куча отличных статей: www.phpunit.de/wiki/ArticlesAndPresentations.
А вообще хороший обзор Testing & QA на сайте фирмы МкКоннела:
construx.com/Page.aspx?nid=208

В общем, я написал этот документ не потому, что не верю, что ты можешь найти тулы в инете Просто хочу поддержать тебя, показать, что ничего катастрофического нет в твоей ситуации и несложно начать внедрять грамотную инженерию.

Просто возьми это на вооружение и попробуй для начала на каком-нибудь тестовом коде, поюзай процесс CI, а потом внедряй в проекты (лучше всего в один какой-то). Но вообще практика всех этих билдов и т.п. очень полезна, хотя бы потому, что потом проще применять любую методологию – ведь инструменты уже работают.

Я говорю о CI, т.к. считаю эту практику самой первой для внедрения. Всякие там метрики кода, проверка качества кода и т.п. только потом будут полезны (если вообще будут нужны). Ну а тесты писать нужно учиться (никто ведь не заставляет сразу в проект пихать) – материала в инете достаточно, в т.ч. для PHP.

Удачи! Если будут какие-то идеи можно обсудить.
Tags:
Hubs:
+39
Comments 57
Comments Comments 57

Articles