Quality assurance: testing your service regularly
You need to test your service regularly as part of quality assurance (QA) to make sure that it:
- is easy to use for anyone who needs to use it, regardless of the device they’re using
- is stable, secure and works quickly, regardless of how many people need to use it
- can be iterated quickly to meet changes to user needs or the political environment
You should test the usability of your service as well as the technical parts.
Learn more about how user research improves service design.
Involving the whole team
You should make sure all members of your team know how to:
- set goals for quality and measure your service’s performance against them
- identify problems or risks with any aspect of your service
- take action to fix any issues and improve quality
Why test for quality
You won’t know how good your product is until you test it in simulations of both normal and unusual conditions (for example, when your service has lots of visitors or is attacked).
Testing for quality helps you:
- make sure your service does what your users need it to do
- build your service at a cost that is acceptable to your organisation (this cost includes business change and risk, as well as money)
How to test
From discovery, you should think about the quality of your service. During development, you should test for quality in a way that confirms:
- your code works the way you expect it to
- your service is protected against malicious attacks
- iterating your code won’t break existing functionality
You should aim to automate as much of your testing as possible and run your test suite as part of continuous integration (where your tests form part of your codebase). By testing your code automatically every time you make a change, you’ll be able to find defects more quickly.
Getting fast feedback means you can respond to any problems quickly and make changes when you need to. You can also spot defects before they develop into bigger problems that are more complicated and expensive to fix.
Review your testing process
You should review your testing process regularly to identify where it could be improved. For example, you could look at how to automate more tests or check if your team’s delivery style supports your testing process.
Types of testing
You should run different types of tests depending on what you need to check, for example:
- load and performance testing - to check how much traffic your service can handle, and how stable and responsive it is
- vulnerability and penetration testing - to check how secure your system is
- exploratory testing - to manually check for bugs and defects
- accessibility testing - to check that everyone, including people with disabilities, can use your service
- acceptance and unit testing - to check that your code works as it should do and you expect it to
You may find it’s useful to hire experts from outside your team, especially for some types of testing (for example, vulnerability and penetration testing).
Learn more about working with contractors and third parties.
You may find these guides useful: