Quality, not because it is a hackneyed word, has ceased to be important in all aspects of life. Taking this idea to our business, thinking of someone who is not in line with what we do, we can incorporate an explanation such as “Software Engineering and Development” or something similar because to a large extent the Software Quality determines the success (or not) of the company that uses it. Sometimes, the desire to be always up to date leads to carrying out processes as quickly as possible, which does not always help to have quality software.
QA (Quality Assurance), i.e. Software Quality Assurance is a means and practice for monitoring all software engineering processes, methods and work products to ensure compliance with defined standards. The primary objective is to ensure the quality of the work. It is also known as SQA (Software Quality Assurance).
Testing, quality control and QA
Software Quality must be ensured throughout the entire cycle because it is a critical aspect for products and services to be successful in the market and meet the requirements expected by customers. The software may be required to pass some standards such as ISO 25000. Software Quality is usually divided into three sections, which, from smallest to largest, are: testing, quality control and QA (quality assurance). The purpose of the tests is to detect and solve the problems that the software may present.
QA, Software Quality Assurance, is not the same as software testing, the latter is only a part of the whole, of Software Quality. The tests detect faults but do not fix them. Quality control, on the other hand, aims to ensure that the final product is as excellent as possible, by thoroughly inspecting the factors involved in production. Quality control can be applied to anything, be it a pacemaker, a banana, a car or, as in this case, software.
In 2012, due to shoddy software that controlled equity trading at U.S. financial firm Knight Capital the company lost US$460 million (€433 million) in less than an hour, which led to its ruin.
10 initiatives to achieve and maintain quality software:
- Test and monitor the software. Software Quality Assurance is a constant activity, because with the maintenance and evolution of the systems it is necessary to provide continuous tests and controls.
- Develop DevOps with integrated automated testing.
- The objective is not to detect software failures but to prevent them.
- Incorporate security or cyber tests, which are becoming more and more relevant together with functional and technical tests, to ensure the correct protection against system vulnerabilities.
- Perform functional tests, in particular to test system specifications and features.
- Stress tests to check the robustness of the system under high load conditions, beyond a normal situation.
- Multi-testing strategy, which consists of using different testing methods, the more the better.
- QA must go in parallel with software development, it is an activity that is implemented throughout the entire cycle.
- Maintain complete documentation including the results of audits, tests, reviews and so on.
- It is essential that there is a good relationship and cooperation between all the teams working on the software. The tests must be performed independently by a competent and impartial team of professionals.
Benefits derived from quality software:
- Time and cost savings. Mistakes are paid for (sometimes literally).
- Increases system stability.
- Avoid having to deal with grumpy customers. At the same time, consumer confidence in the product is growing. A good reputation is hard to build but very easy to lose.
- Repairs and maintenance costs are reduced.
- Quality software improves the company’s efficiency and its interaction with the market.
- Security is more than just commonplace. As far as software is concerned, it covers a multitude of aspects, such as the vulnerability to which customers may be exposed or failures in the field of cybersecurity.
In spite of the evidence (sometimes painful) that highlights the capital (never better said) importance of Software Quality, this aspect is often relegated to the background. If we may use the analogy, it is as if a plumber were to install a new bathroom in our home and charge us for the job without even checking that the faucets work. QA goes far beyond simply finding bugs in the code, well implemented it will make a vital contribution to the quality of the final product and, therefore, to the success (or not) of the company offering it.
Delonia has a qualified and experienced team specialized in all types of tests and controls to guarantee the quality of a software.