Technical Support for Quality - UK Data Service • Jira – Tracks issues and user queries • SVN...

15
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 13 th November 2014

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

User Experience

• Web Standards

• Supported Browsers

• Responsive design

• Testing

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)

Unsupported Browsers

We do not support browser under IE8

Responsive design

Desktop

Tablet Mobile

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

Questions

John Payne

[email protected]

Matthew Brumpton

[email protected]