Technical Support for Quality - UK Data Service • Jira – Tracks issues and user queries • SVN...
Transcript of Technical Support for Quality - UK Data Service • Jira – Tracks issues and user queries • SVN...
Technical Support for
Quality
John Payne Senior Data and Services Developer
Matthew Brumpton
Senior Systems and Applications Developer
Cessda Expert Seminar
UK Data Archive
Thursday 13th November 2014
Introduction
• Application Development and Maintenance support
virtually all aspects of the Data Service.
• Quality assurance
• Support
• Techniques
• Tools
• User experience
Supporting Quality
• Metadata profile
• Controlled Vocabularies
• Auditing and versioning
• Planned developments and software releases
• Documentation
• Overnight aggregation for Discover
Supporting Quality
• Solr – Enterprise seach
• Google Analytics
• Monitoring systems
• Uptime Robot
• Service availability
Techniques
• Two development teams (Applications + Services)
• Scrum consisting of two week sprints
• Wire framing
• Continuous Integration
• Automated testing
• Code review
• Pair programming
• Formal sign off and weekly releases
• Regression testing
Tools • Jira – Tracks issues and user queries
• SVN – Source code repository
• Visual Studio C#
• Resharper – Code compliance
• StyleCop – enforces code readability.
• Jenkins – Continuous integration server
• Selenium – Automated testing
• NUNIT – Unit testing framework
• Crucible – Part of the Jira suite. Checked in code can be reviewed.
• Confluence – Wiki for internal discussions
• Sonar – Runs code coverage tool OpenCover
• Balsamiq – Wireframing tool
• Doxygen – Documentation generator
CIT Cycle
Developer PC
Jenkins
SVN
Test Server
Live Server
QA Server
Monitor builds and failures
Email notifications sent
Code development
Test development
SVN Trigger • Pre-Build – DLL Version
• Build
• Unit Tests
• Selenium Tests
• Code Coverage
• API Documentation Jenkins
Success!
Triggers further
‘lift and shift’ job from
Jenkins’s Workspace.
Updates JIRA issues
Successful build triggers
further jenkins job and
updates JIRA
Deployment script using Robocopy
Jenkins (Manual)
Manually triggered
‘lift and shift’ job
Jenkins (Manual)
Manually triggered
‘lift and shift’ job
fires remote
build
Web Standards
• W3C HTML5 compliant
• Level Double-A Conformance to Web Content Accessibility
Guidelines 1.0 (Minimum)
Supported Browsers
Support at least 90% of our user’s browsers
ukdataservice.ac.uk (1st Oct 2014 – 1st Nov 2014)
Based on 59,930 user sessions ( Google Analytics)
User Interface Testing
• Testing all supported browsers requires automation
• Selenium Firefox plugin
• API allowing code level access
• Combined with NUNIT provides automation.
• Browsers can be run simultaneously using Jenkins.
Hub
daappqa1
IE8
daapp-w7ie8
IE9
Daappqa1:4444
IE10
Firefox 33
Chrome 38
daapp-w7ie9
daappqa1
dasptest2
dasptest2
JenkinsDahudson:8080
dahudson
SVN
daappownuse
daappownuse:3343/viewvc
The Selenium GridIE11
daapp-w7ie10
Firefox 34
daappint
Chrome 39
daappint
Looking forwards
• Public API – Standardising our API calls for both internal
and external customers.
• Automated deployment tools
• Thorough testing and continual upskilling
• Test-Driven Development (TDD)
• Behaviour-Driven Development (BDD)
• Improved planning and estimation