⬆️ ⬇️

Quality and Testing: Gov.uk Guide

Testing programs using agile methods.






The basic approaches of any other software testing system are also applicable in terms of creating applications using flexible agile methodologies, however, the goal of testing may differ slightly.



It is important to understand that you are testing in order to:

')



Very often, the sole purpose of testing is to assess the performance of the product and nothing else. When testing, you should proceed from the following seven concepts:





Initial quality improvement



Focus on improving quality at the very beginning of a program’s development and evaluate it in the course of working on a project — not after development is completed, when it’s too late to do it.



Define standard validity criteria for user stories you create. You can do this either when you first compile user stories, or later, as part of acceptance testing at the beginning of software development. Testing should confirm the information that you already know and consider to be true, so that there will be no surprises at the subsequent stages.



Responsibility of each employee for quality



Quality of service plays a role not only when testing a software product. The quality of any system is ensured by the people who create it. Your employees should see system quality issues that arise. Every person working on a project should contribute to quality improvement and problem solving.



Quick product information



To create a successful project, developed in accordance with agile-methodologies, it is very important to constantly receive feedback on the work done. Receiving feedback in the shortest possible time allows for the very “flexibility” in the work and make adjustments when required.



Testing should quickly provide you with such feedback when necessary. There are automated testing methods that can be useful, but do not focus on using them.



Testing as a key element of development



When you develop a test, do it according to certain standards - this will allow you to effectively use it many times during the work on a project. Proper testing requires good preparation, so you should not create "one-time" tests that need to be re-developed every time you create updates or develop a new project. Scenarios for automated testing should be developed as carefully as the code of a software product.



Fastest commissioning



Testing is an important process when creating a software product, but the amount of time it takes between the end of writing code and the complete completion of a project should be minimal. Testing should as quickly as possible provide you with information either that everything is in order or that there are errors that need to be corrected.



When testing, you do not have to get comprehensive information at all stages, but it should be sufficient in each specific situation. Employees in your team need to determine what really needs to be tested at each stage, building on the requirements of the product owner and the likelihood of errors in the application itself.



Clear and adequate insight into testing



Each employee in a team needs to know and understand the following:





Optimization of effort and resources used



If testing is conducted correctly, it will allow you to understand how to proceed further in the best possible way. It will also tell you which questions should be focused on and will help:





Types of testing



The most significant difference between testing in the development of agile-methods is that a great emphasis in this case is placed on the creation of automated tests. These tests are integrated into the development process, they are part of your code, and run automatically every time you make changes to the code. You will immediately receive information about the quality of the program code, which will help to eliminate bugs at subsequent stages of development (when correcting them will be more difficult and costly).



Learn more about the types of testing on Gov.uk: 1 , 2 , 3 , 4 , 5 .



Crowdsourcing Testing



Such testing is not carried out by a specific group of people (this in turn is called testing by outsourcing methods). Instead, various people from different places involved in various activities are recruited to work. This is a good way to speed up the process of manual testing and / or perform more work.



There are organizations that provide such services professionally, but GDS employees (Governmental Digital Service, a department working with digital projects of the British government) implement it internally by:





Our publications based on Gov.uk materials:



Source: https://habr.com/ru/post/290366/



All Articles