Test all the things! Improving code quality at the OU with Continuous Integration MoodleMoot Ireland UK 2016 Mark Johnson Tony Lin
Developing Moodle at the OU 2 4 releases per year6-8 sprints per release ~100 features per release 8 developers + 4 lead developers
3 Quality Assurance at the OU DevelopmentReview Technical Testing Continuous Integration Regression Testing Acceptance Testing Release Performance Testing Bugs Comments Defects Developer / Lead Developer Tester, Automation Tester, Product owner, Platforms team, Accessibility testers …
4 Developer Lead Developer Code Automated tests Handover checklist Comments Suggestions for improvement Code Review
Why do we test with people too? 5 We represent different types of end user Focused on improving the software and meeting requirements Focused on helping the developers
6 Technical Testing Test Analyst Developer and Business Analyst Software Acceptance Criteria Requirements Testing Risk Suggestions for improvement Test Record
7 Continuous Integration Jenkins – CI application 8 Core/16GB server 244 Plugins tested Across 3 branches 1100 Behat scenarios (~27000 steps) 1500 PHPUnit methods PostgreSQL Apache Chrome Tests run on daily schedule
8 Benefits of CI Keeping developer PCs free for development Fast, early feedback of integration issues Easier upstream merges Patching live systems with confidence
9 Room for Improvement? Additional PHP quality tools Using Git to better identify the culprit Multiple browsers Automatically raise bugs/defects as appropriate Supplant (some) human testing
Test all the things! Improving code quality at the OU with Continuous Integration MoodleMoot Ireland UK 2016 Mark Johnson Tony Lin