Everyone knows the quote "Those who are late will be punished by life itself." It refers to finding the right time to act. In our blog post about complainers within your own team, we already talked about the need to act early with regard to the test.
"Testers should be involved in the process at an early stage, as testing does not begin at the end of the software's development, but in its early phases."
- Why is taking action early on so important?
- Why is quality assurance an issue that is present throughout the entire software development process?
Before we look at when testers should get busy, let's first take a look at potential error sources.
Where do errors occur?
If you look at the software development cycle, it begins with the client company, which determines requirements for the software. These requirements are taken up during requirements engineering as part of requirements management and documented for the software's development and testing.
This is where you can find the first potential error sources:
- The customer (requester) may pass on incomplete or incorrect requirements.
- Requirements engineering may not understand the requirements or may misinterpret them.
- The documentation of the requirements may be incomplete.
- The requirements may have been prioritized incorrectly.
- Data may be provided that do not meet the requirements.
The result of these errors is an incorrect or incomplete specification.
In the subsequent process, the requirements described in the specification are implemented in software by the development team. This is where the next potential error sources occur.
- Development can misinterpret the specification or misunderstand the requirements in the specification.
- The team may not have the necessary knowledge to implement the requirements.
- Deadline pressure during implementation can lead to careless mistakes.
- Tasks can be prioritized incorrectly.
These errors result in faulty software.
The task of test management and quality management is to support the people involved in the areas of requirements management, requirements engineering and development in their work and to subject the resulting artifacts (specifications and software) to tests. The various quality assurance measures (constructive and analytical measures) are utilized.
As a result, quality assurance takes preventive and testing measures in order to
- avoid doing something "wrong" and
- to uncover any defects that have arisen.
If you know the error sources, why is it necessary to take action early?
Error costs: therule of ten
The Roman poet Publius Ovidius Naso (43 BC - 17 AD) once said: "Principiis obsta! - resist the beginnings!" This means that greater damage can be averted through taking action early on. What was true back then is still true today and even more so in software development.
If one looks at the phases of software development, it can roughly be broken down into the following six phases
- Requirements analysis
- Design
- Implementation
- Test
- Operation
- Maintenance
Different people are involved in each phase: requesters, requirements engineers, developers, testers and the customer's operations department.
Each of these people can make mistakes in the respective phase in which they are working.
If the error is discovered at an early stage, the effort required to rectify it is less than if it is discovered at a later stage.
In concrete terms, this means that the costs for eliminating undetected errors increase by a factor of approx. 10 with each phase ["rule of ten"].
- The earlier an error is discovered, the less it costs to rectify.
- The later the error is discovered, the more it costs to rectify.
Principiis obsta!
The reason for this is that all phases may have to be run through again when the error is rectified (adaptation of the specification - development - testing - delivery ...).
By definition, the early phases are referred to as error prevention and the late phases as error detection.
This is where test management and quality management comes in: the primary goal is to prevent errors, as 70% of all product defects have their causes in the early phases of planning and development.
Quality assurance has various measures at its disposal to perform these tasks. Each individual measure costs money and time. HOWEVER: Money and time are always a precious commodity. There are delivery obligations and budget targets that must be met.
As a general rule, the higher the level of quality, the lower the error costs and the higher the testing costs.
The aim of quality assurance is to optimize costs. This lies at the intersection of the curves for error costs (elimination) and testing costs (quality assurance).
- Inadequate quality management (low level of quality) results in low testing costs, which can result in very high error costs.
- With too much quality management (high level of quality), a lot is invested in testing costs, the result being that the error costs are probably very low.
Quality assurance's task is to align the measures to an optimum cost. The saying "a lot helps a lot" does not always apply.
It is important to do the "right thing" at the "right time," and to the "right extent." As a result, it is essential that testers, for example, check the specification at an early stage to prevent errors from reaching development or the customer. This is in order to keep testing costs low in accordance with the "rule of ten." This is because every error that is found early on is less expensive to rectify than in the later phases. Since not all errors can be found in the earlier phases, it is important to understand quality assurance as a process that lasts throughout the entire software development process.
In the end, the question remains: "When the optimum total quality cost is reached, is the software error-free?" We will address this question in an upcoming blog, "Error-Free Software - Is It Possible?"
Would you like to learn more about what our software can do for insurers? Then please contact our expert Karsten Schmidt, Head of Business Development.