QQA in Software Projects with Sebastian Bergmann @ Dutch PHP Conference | Part 2 | Notes

-> Continuous Integration
—> build automation [write build script to get latest code version; run tools to detect problems; run unit tests & publish these results; package; deploy]
—> summary of the tools enumerated below can be found in this presentation: http://www.slideshare.net/sebastian_bergmann/continuous-integration-of-php-projects-4354597

-> static code analysis
—> LOC [= lines of code] metric
—> CLOC [= comment LOC]
—> NCLOC [= non-comment LOC]
—> ELOC [= executable LOC]
—> welcome to phploc [ http://github.com/sebastianbergmann/phploc ]
—> demo phploc directly on PHPUnit

-> code duplication
—> totally identical LOC
—> phptok some_file.php
—> phpcpd /path/to/your/project [ the copy/paste detector >:) ]

-> code complexity
—> cyclomatic complexity [count the # of branching points]
—> NPath complexity [count the # of possible execution paths]

-> phpcs
—> the code sniffer :-)
—> start here: http://github.com/sebastianbergmann/phpcs-sebastian
—> allows for defining own sniffs; demo sniff list

-> pdepend
—> static analysis of PHP code
—> helps identify parts of app. which should be refactored

-> build automation tools
—> ant, make, phing, rake
—> delve a bit into ant features
—> small ant config to pull from git, run phpunit, run some of the static code analysis tools in parallel
—> demo ant run for an existing project, and get a glimpse at the reports of the static code analysis tools output

-> continuous integration server options
—> phpUnderControl: customized CruiseControl
—> Hudson [Java-based, open-source]
—> Bamboo -> the Atlassian way of doing it, still Java-based
—> Arbit -> an alpha release, PHP-based solution
—> demo: http://ci.thephp.cc/

One Response

  1. [...] QQA in Software Projects with Sebastian Bergmann @ Dutch PHP … [...]

Leave a Reply