How to ensure good quality of Software by effective Testing

Many times some people say that quality of a product is good or bad. Has anyone tried to figure out how the assessment regarding the quality of the product was made. Not very difficult though. Its could be users perception based on their initial usage of the product that made them conclude their assessment on the quality of the product. Or it could be some recurring problems that are coming up as they have used the product over some period of time. Now when one tries to rewind back to when the product was being manufactured or developed by a company or unit what could have been done to avoid a situation where the product has not received good feedback from the customer.

Lets try to understand where things could have been better for the product. Lets take the 1st case where the initial usage of the product made the customer perceive that the quality is not good. Its possible that the product delivery team did not understand the customer perspective at all. Was the product developed keeping in mind the customer usage. ? Was the feedback taken from prospective customers as to what feature they wanted to have in the product or how they wanted a feature in the product to be developed. Possibly not. If the feedback was taken then what were the shortcomings in the product so as not to receive favourable customer review. Test engineer needs to follow the V and V model of testing wherein he needs to do basic verification wherein he needs to check if the product is developed as per the customer basic expectation and he is able to use the product. If the basic verification is passed then he can proceed to the validation step wherein he can check if the customer expectations related to all the working of the systems are being met. In the 2nd case where the customer faced disatisfaction after using the product for some time this is where a test engineer needs to understand that durability and long term reliability is very important for any product . The test engineer needs to understand the timeframe that a customer might possibly use the product and plan to execute his tests as per that timeframe.

What could be the other factors that can influence a customer perception of the quality of a product. Usability for one is the most important. When a product is being developed the ease of use is the one of the 1st things considered by any user. Test engineer needs to execute the usability tests as part of his basic verification tests and try to identify the lengthy usage flows that could inconvenience the user. Performance of a product is another factor that could influence the customer perception on the quality. When a user assesses the quality of a product he expects his product to perform as well if not better than its competitor product and thats the main reason of him buying the product. Test engineer needs to compare the performance of the product to its competitors while evaluating the overall quality of the product.

Now lets narrow down the customer perception of quality with respect to software products and try to understand what could be the other factors of him choosing a specific product. Software should be able to be installed and upgraded easily. Capability of a software product to handle load and stress is one of the prerequisites of a good quality product. In the course of the load and stress applied the resource usage , resilience and recovery capabilities of the product are also probed. Test engineer needs to ensure all the tests related to these capabilities are carried out. Strong and foolproof security is one of the most important aspects that must be inbuilt into the software as using the security loopholes a attacker or hacker can render the software useless or redundant. Also in case of a security breach the software should have good log auditing so that the operations during the hack can be traced back. Data backup capability is especially important when the softwares are being frequently upgraded. Softwares also need to be compatible with the platforms on which they are installed and also the supporting platforms along with which they are used. Documentation manual where the usage of the software is documented is also essential considering that the user needs support when he initially tries to use the software or also faces some issue related to usage. All the above aspects needs to be considered by a test engineer when testing the software.

Last but not the least a test engineer should use a combination of quantitative and qualitative methods to assess and improve the quality of a software. A good quantitative method is the use of test metrics such as defect density or test coverage rate which defines the current state of quality and what measures to be taken to improve it. Some qualitative methods include the use of pair testing and exploratory-adhoc testing.