System quality assurance for Student Loans Company

Student Loans Company

The Student Loans Company (SLC) is a non-profit-making, Government-owned organisation, providing financial support for people studying at universities and colleges across the UK. SLC provides loans and non-repayable grants for living, studying and tuition costs and has an annual budget of over £105 million, a current loan book of £60 billion and around 5 million active customers.  

With over 2,000 staff based in four sites across the UK, SLC works in partnership with local authorities in Wales, the Student Awards Agency for Scotland, the Education and Library boards in Northern Ireland, Higher Education Institutions and HM Revenue & Customs.

Background

Sopra Steria has been SLC's Digital Delivery Partner since 2012, supporting the organisation in its move towards modern service provision via the development of a new customer web portal. This major Agile Digital Delivery Programme, which is in line with the Government Digital Service's 'Digital by Default' strategy, is driving traffic away from the call centre towards fully capturing applications on the web. Sopra Steria has been working with SLC to deliver the customer portal in an incremental way, using a Behaviour Driven Development approach, supported by a Test Automation Framework to ensure high-quality software releases within quick turnaround cycles.

Existing portal

A smooth application process is essential to ensuring a positive experience for students, but the actual process of managing loans is extremely complex. SLC's existing web portal was confusing for customers, with each loan application on average resulting in 3.6 calls to the SLC call centre for additional support. DirectGov reviewed the site and found that it was often unclear, with many inconsistencies across the site and customer satisfaction was measured at 64% dissatisfied. The recommendation was to develop a new customer portal focused on user experience using an Agile development methodology.

Solution

SLC needed an extremely responsive approach to software delivery to meet the time-critical demands of Agile, where code is continually being developed, tested and released iteratively (in this case in two week sprints). For this reason large-scale, traditional manual Regression Testing with its focus on executing large numbers of test scripts was not a viable option; there simply would not be enough time to perform all the tests within the two-week window. Testing activity needed to be planned, prepared and executed within short iteration cycles; Testing had to come right up front in the development cycle.

Client view

"SLC has been working in partnership with Sopra Steria in the delivery of our new digital platform. I have been very impressed by the calibre and professionalism of the staff and am confident of our ability to deliver a system that meets our customers' online needs.

We are successfully moving from a traditional waterfall approach to Agile with Sopra's help and are already in a position where we can release software early and frequently due to the confidence we have in our automated test and continuous integration environment.

We have already seen very positive results. We have an excellent working relationship with Sopra Steria at all levels and expect this to continue. User satisfaction levels from online surveys since launch of the first release have nearly trebled." 

Transformation Delivery Programme Director Student Loans Company

Behaviour driven development

Sopra Steria decided to adopt a Behaviour Driven Development (BDD) approach underpinned by a robust and a flexible Test Automation Framework driven by a Continuous Integration environment. BDD is an approach where the tests that form the criteria against which the software is accepted (tested) are defined at the start of the process, prior to any code being created.  

BDD is well suited to Agile delivery where tests are often being written in parallel to the code being developed: the development team engages in a process to ensure the right code is developed the first time and the tests prove this.  Unlike traditional Testing, where defects are identified after a feature has been designed and built, this method is specifically designed to avoid defects in the first place.

A focus on users

Using a BDD approach also ensures the development is user driven, in line with 'Digital by Default': it enables changes to be made based on feedback from users with a responsive, flexible change control process. Change can be implemented very quickly, enabling small but important enhancements or fixes to be released often, in the confidence that the system has been extensively and successfully Regression Tested. Some examples include:

  • A last minute data-related integration defect was found, fixed, fully Regression Tested and ready for release within one hour
  • Changes are now regularly applied to the production system without having to take the service down

Implementing test automation

Long gone are the days of waiting (often months) for a manual regression Testing pack containing hundreds of test scripts to be generated by Testers and then handed to tools' specialists to create automated versions. Sopra Steria implemented an effective test automation framework that is improving the responsiveness of the delivery team and reducing time to market in a cost-effective way.

Working closely with SLC, Sopra Steria prepared a Test Automation Framework supported by a Continuous Integration (CI) server and a continuous development and Testing cycle: putting in place a CI server means that any time there is a change to the code any defects can be picked up and fixed very quickly; the tests are continuously integrated and executed against that code.

Three amigos

Sopra Steria also followed a 'Three Amigos' delivery approach where the Business, Testers and Developers all work together from the beginning. Breaking down the traditional business/development silos means the requirements are more likely to be right the first time, because potentially incorrect assumptions can be discussed and corrected before being written into the code.  Removing the traditional Developer/Tester silos further improves the quality of the code because Testers are engaged along with the Developers right up front, collaborating to make sure the system is right the first time, rather than pointing out defects later in the process.

What are we delivering?

Sopra Steria has worked closely with SLC to deliver the following to date:

  • Created a reusable Test Automation Framework: for example a new project was created very quickly (in around a week), with a further week for the first basic tests to be created and tested successfully.  Sopra Steria was able to do this so quickly by reusing some existing knowledge and automation code from the previous project
  • Upfront automation: scripted testing was done in the automation framework, no manual tests were created first and it was executable from day one, which fits the speed required by Agile
  • Created tests that are business-value driven: because of the structured domain-specific language that the automation tool (Cucumber) is based on, the tests can be defined, read and understood by the business, ensuring that the software delivered continually meets the requirements
  • Continuous testing: integrated the test automation framework within the software development phase by putting in place a CI server; tests are run continuously to ensure that the software always works; this is absolutely critical on an Agile development because of the relentless pace of delivery
  • Developed a process behind the automation to improve efficiency: introduced an overarching process and templates that complement the use of the framework by enabling the reuse of tests across the different phases of testing

Benefits

Sopra Steria  approach based on BDD and test automation have been integral to enabling SLC to release high-quality software against tight timescales. Customer satisfaction is currently up to 82%. Key benefits of the service for SLC to date include:

  • Confidence in the quality of the code: there is a vast safety net of very extensive tests continuously validating the software for release; this ensures confidence in the level of quality of every build
  • Enables the delivery team to be responsive: if something isn't working then it can be fixed quickly, but equally if the analytics show that something is working but could be better it can be improved according to user feedback
  • A focus on Testing the right things: having the right people (Three Amigos) actually collaborating rather than reviewing each other's work in mini-iterations ensures that appropriate specifications are produced and that the right software is being developed; the right things are being tested. Only one version of a test is required by the automation framework and, crucially, the tests are business readable rather than technical so they can be understood by everyone involved, not just Testers
  • Ensures Testers are 'Testing' as opposed to 'checking': as the automated approach is so powerful, with the ability to regularly determine if the software system is doing what it is supposed to do, it frees up Testers to focus their manual Testing effort on more value add techniques such as Exploratory Testing. Automation makes Testers more focused and engaged by relieving them of the repetitive boredom of performing manual scripted tests. Checking can be done by automated tools but real 'Testing' requires people to think and contextualise the data
  • Ability to find defects early and fix them more quickly: a greater focus on Exploratory Testing enables more challenging defects to be found earlier in the cycle and because tests are executed immediately issues are fed back to the engineering rooms within hours of the delivery so any issues can be fixed very quickly before being released back into live