Maintaining the software quality is a very important aspect of software testing. Today, every industry depends on software. Software programs are an integral part of crucial industries like medical equipments, aircrafts, stocks and shares to name a few. So the quality of software used, is something that can never be compromised on.
What exactly is software quality?
Software quality is the degree to which a group of preferred attributes or features are incorporated into the software so as to improve its overall performance and satisfy the needs of the client.
Today, organizations are more concerned about the quality of the software than anything else.
Importance of Software Quality
The main reasons for the importance of software quality are as follows:
- Quality software saves time and money.
- When you have fewer defects, it makes testing and maintenance easy.
- Greater reliability in software increases customer satisfaction and lowers the maintenance cost.
- As the maintenance cost decreases, it helps in reducing the overall cost of the software project.
Let’s look at an example to understand how important software quality is.
- On June 4, 1996, Ariane 5 crashed on its maiden journey just 40 seconds after the take off. At an altitude of about 3700 m, the launcher veered off and broke and exploded. After detailed investigation, it was found that the failure in software caused the crash that resulted in the loss of half a billion dollars.
- Similarly, on September 23rd, in the year 1999, Mars Climate Orbiter disappeared after it began to orbit Mars. The cost of this mission was about 125 US million dollars. On investigating, it was found that the error was due to the transfer of information between the team in Colorado and the team in California. One team used English units whereas the other one used metric unit for key space craft operation.
If the quality of the software was taken care of, these incidents could have been avoided easily.
There are 2 aspects of software quality – functional aspect and structural aspect.
The structural aspect includes all the non functional aspects like reliability, consistency, maintenance and so on.
Key Aspects of Software Quality
From a customer point of view, the key aspects of quality include the below points.
- Professional looking good design : Look and feel of the software is very important from a customer point of view.
- Functionality : Software does what is expected of it. It should meet all the requirements that are mentioned at the beginning of the software development phase. Nobody will use software that does not function properly.Example – Assume that you are testing the functionality to withdraw a certain amount from your ATM software. Some of the basic test cases would be to check whether the system turns on, connects to the bank, reads your card, accepts your PIN, asks to choose an account, lets you enter the amount, checks if the cash is available, allows correct transaction for the amount specified if it is within the limits and so on. If these basic functions do not work properly, then the software quality is poor.
- Reliability : Reliability indicates the acceptable level of failures or breakdown. This means the software needs to be reliable if it has to satisfy end user.One example of testing reliability is to verify that it works on every operating system correctly. It should also work on the desktop, laptop, iPad and mobile.
- Consistency : To ensure quality, there should be consistency in the behavior of the software throughout.
- Value for Money : It is very important to deliver cost effective software to the customer. The final product should meet all the requirements of the customer, should be reliable and should behave the way it is expected to.
- Excellent Maintenance service : Maintenance is an important aspect of software quality. Maintenance comes into the picture after the product is shipped to the customer. To keep the customer happy, it is important to provide good after sales service.For example, if the customer after using the software for 6 months needs to make a change, the software team should be ready to make the necessary changes as a part of maintenance service.
Describing software quality is not easy. There are many aspects to be considered and several perspectives too.
However, by stressing on delivering defect free software at the right time within the specified budget, meeting all the requirements and expectations specified by the customer in the software requirement specification document, high standards of software quality can be maintained.