What is Software Quality Assurance?
Business software is never built overnight. It takes a lot of planning, consultation and testing to be able to come up with an initial version of the application. If a business hurries up the development of a certain application, they would end up spending more in addressing the problem the application brought than they have earned.
This could even be more frustrating when the software being developed is set to be sold to customers or for public use. But a bug free program is not the only goal of a company. If they follow that concept they would end up developing a very simple program without any special features and would frustrate their users and hinder their productivity.
That is where the concept of software quality assurance comes in. For most developers software quality assurance offers a comprehensive solution in ensuring that the application they are working on is functioning and lives up to expectations.
Quality assurance could be found everywhere. Products in the market also undergo quality assurance to make sure the goods are made according to expectations. However, once the products are sent out to the market, they are already done and it is up to the customers on how to be satisfied with the product.
On the other hand software quality assurance takes on a different side. Aside from delivering good products, software quality assurance or simply known as SQA follows a set protocols that are universally recognized. By using these protocols users are assured the application they are using are built according to standards and every stage of software development follows the same standards.
Software Quality Assurance was created with the following objectives:
Small to Zero Defects After Installation – One of the biggest goals of SQA is to prevent any possible defects when the output is made. Developers and engineers have to use universally approved steps to ensure that the program was built up to expectations but also to prevent errors in the system. Although some standards allow as much as .04 errors in the system, zero-error is still the system’s target. When there’s zero-error, the program is more likely to have zero crash scenarios. The ability to handle stress of a program is different from the errors it has but crashes usually comes from defects so prevention of defects will most likely yield a continuously working application.
Customer Satisfaction – Everything else will be just nothing if the customers don’t like what they see. Part of SQA is to ensure that software development was made according to their needs, wants and exceeding their expectations. Even if the bugs and errors are minimized by the system, customer satisfaction is more important and should be emphasized.
Well Structured – SQA takes care of the stages of application construction. Anyone could be easily build an application and launch it in their environment without any glitches. However, not everyone could easily build an application that could be understood well. SQA ensures that each application are build in an understandable manner. Their applications could easily be transferred from one developer to another.
People Involved in SQA
SQA does not only involve the SQA managers and team members. There are also people who are not part of the team that also has an important role in SQA:
Top Management – In every step of the way, the upper management is always involved in any movements of the software development team. That does not leave out the SQA team as well. They provide support, general and managerial functions to ensure that the SQA team will focus on their functions.
SCM or Software Configuration Manager – In a well structured software development environment, the SQA managers do nOt talk or communicate directly to the developers. The relay their findings instead to the software configuration manager. As the name suggests, they work on the possible changes that were done in an application. SCMs do not only concern themselves with the available updates but right from the start, SCM are aware of the minor changes or errors that were found in the application.
Developers – Surprisingly, the developers takes on a non-direct role in SQA. However, that does not mean the developers do not have to work with SQA. Software control is not only about testing but ensuring that the process of software development is according the industry standard. To put it clearly, SQA is not part of the development team since they are the overseeing group that ensures every step in software development is according to plan and nothing is left out.
Software Quality Measurements
Aside from general expectations from SQA team, large IT companies have come out and presented their idea as on how to measure a good software.
IBM: The company uses the CUPRIMDSO formula to ensure their software has lived to their expectations. The acronym stands for the following: Capability, Usability, Performance, Reliability, Installability, Maintainability, Documentation, Service and Overall. The list undoubtedly is a handful since this ensures that the intended software will work as planned. From performance to the ability to handle stress, IBM emphasizes in giving the software a thorough check before it could even be launched and presented to the general pubic. SQA in IBM takes on the central role in software development as SQA becomes involved in any software development stages.
HP: On the other hand, this company uses the FURPS formula: Functionality, Usability, Reliability, Performance and Service. Although the list is not as extensive compared to IBM, HP has ensured that the most important aspects of the application are covered. HP focuses more on the users’ reaction of the application.
Although the developers’ side are only covered a little bit, it does not mean HP does not care about proper development. In fact, since the focus of HP is on the customers, it is just logical that the application should be built carefully. Using the measurement of HP, developers could still build an application that will work for them. SQA will be a part of that development, ensuring that the application developed is according to plan and the ideals of the industry standards.