quality assurance in practice
TRANSCRIPT
Quality Assurance in practice
TATAR Balazs Janos European Commission, DIGIT Milan, Drupal DevDays - 2016
Who am I?
• Tatar Balazs Janos
• Hungarian, lives in Brussels
Technical Lead & QA specialist @ EC-DIGIT
Evolution of this session
• No. 0 – Brussels, test for the colleagues • No. 1 – Vienna, Drupalcamp • No. 2 – Brussels, Drupal User Group • No. 3 – Brussels, EC DIGIT for NextEuropa users • No. 4 – Brussels, Drupal@EC (by Mathias Selleslach) • No. 5 – Milan, DrupalDevDays
Quality Assurance
• "A way of preventing mistakes or defects in manufactured products and avoiding problems when delivering solutions or services to customers."
• Wikipedia
• "The process by which subcontracted projects (features and sub-themes) are being validated to comply to the FPFIS platform."
• European Commission, DIGIT, FPFIS Team
Quality Assurance
• Small steps to improve the quality of your project:
• standards, • code documentation, • project management softwares, • clear workflows (not only agile).
QA tools
Code Quality PHP Mess detector PHP Copy/Paste detector PHPdox PHP Code_sniffer and Code Beautifier and Fixer PHPMetrics
Testing PHPUnit (Simpletest) Behat (Gherkin)
QA tools
Code Quality PHP Mess detector PHP Copy/Paste detector PHPdox PHP Code_sniffer and Code Beautifier and Fixer PHPMetrics
Testing PHPUnit (Simpletest) Behat (Gherkin)
function important_function($parameter) { $variable = is_string($parameter); switch ($variable) { case TRUE: // blablabla code break; case FALSE: // blablabla code break; default: // blablabla code... }}
function important_function($parameter) { $variable = is_string($parameter); if ($variable === TRUE) { // blablabla code } elseif ($variable === FALSE) { // blablabla code } else { // blablabla code... }}
QA tools
Code Quality PHP Mess detector PHP Copy/Paste detector PHPdox PHP Code_sniffer and Code Beautifier and Fixer PHPMetrics
Testing PHPUnit (Simpletest) Behat (Gherkin)
QA tools
Code Quality PHP Mess detector PHP Copy/Paste detector PHPdox PHP Code_sniffer and Code Beautifier and Fixer PHPMetrics
Testing PHPUnit (Simpletest) Behat (Gherkin)
QA tools
Code Quality PHP Mess detector PHP Copy/Paste detector PHPdox PHP Code_sniffer and Code Beautifier and Fixer PHPMetrics
Testing PHPUnit (Simpletest) Behat (Gherkin)
QA tools
Code Quality PHP Mess detector PHP Copy/Paste detector PHPdox PHP Code_sniffer and Code Beautifier and Fixer PHPMetrics
Testing PHPUnit (Simpletest) Behat (Gherkin)
QA tools
Code Quality PHP Mess detector PHP Copy/Paste detector PHPdox PHP Code_sniffer and Code Beautifier and Fixer PHPMetrics
Testing PHPUnit (Simpletest) Behat (Gherkin)
QA tools
Code Quality PHP Mess detector PHP Copy/Paste detector PHPdox PHP Code_sniffer and Code Beautifier and Fixer PHPMetrics
Testing PHPUnit (Simpletest) Behat (Gherkin)
QA tools
Code Quality PHP Mess detector PHP Copy/Paste detector PHPdox PHP Code_sniffer and Code Beautifier and Fixer PHPMetrics
Testing PHPUnit (Simpletest) Behat (Gherkin)
QA tools
• - You Focus, separate the issues to smaller units Human part Pair/peer programming Learn and teach
Next Europa WCMS
• - European Commission • - Drupal 7 – multisite • - Around 130 subsites (different complexity) • - Platform team • - Maintenance/QA team
Next Europa – Maintenance Team
• - WYSIWYD • - Standardised QA process (semi automatized) • - Support to the subsites • - Support to the platform • - Improvements for the subsites
Subsite Starterkit (SSK)
• Previously Atlassian Stash • Migration to github • Automatic code quality checks • Special EC rules • Semi automatic deployment procedure
Drupal 8
• Clean up issues based on phpcs&cbf
• Coder module is not a module anymore
• DrupalCI (Modernizing Testbot Initiative)
Thank you!
• TATAR Balazs Janos • European Commission, DIGIT • Brussels, Belgium • [email protected] • @tatarbj
Links #1
QA tools http://phpmd.org/ https://github.com/sebastianbergmann/phpcpd http://phpdox.de/ https://github.com/squizlabs/PHP_CodeSniffer http://www.phpmetrics.org/
Testing https://phpunit.de/ http://docs.behat.org/en/v2.5/
Links #2
• Drupal echidna initiative • https://www.drupal.org/project/issues/search?
issue_tags=coding%20standards • https://www.drupal.org/node/2571965
• Other links • https://www.drupal.org/node/144172 • https://www.drupal.org/project/coder • https://www.drupal.org/coding-standards