When we talk about software quality, we are actually talking about the evaluation of the software based on certain attributes. A software quality is defined based on the study of external and internal features of the software. The external quality is defined based on how software performs in real time scenario in operational mode and how useful it is for its users. The internal quality on the other hand focuses on the intrinsic aspects that are dependent on the quality of the code written. The user focuses more on how the software works at the external level, but the quality at external level can be maintained only if the coder has written a meaningful good quality code.
As mentioned before anything that is not in line with the requirement of the client can be considered as a defect. Many times the development team fails to fully understand the requirement of the client which eventually leads to design error. Besides that, the error can be caused due to poor functional logic, wrong coding or improper data handling. In order to keep a track of defect a defect management approach can be applied. In defect management, categories of defects are defined based on severity. The number of defects is counted and actions are taken as per the severity defined. Control charts can be created to measure the development process capability.
Accurateness: are the functions implemented correctly?
Interoperability: how does the software interact with other components of the system?
Compliance: is the software in compliance with the necessary laws and guidelines?
Security: Is the software able to handle data related transaction securely?
2. Reliability: this refers to the capability of software to perform under certain conditions for a defined duration. This also defines the ability of the system to withstand component failure.
Recoverability: this gives an idea of a system’s ability to get back into full operation after failure.
3.	Usability: refers to the ease of use of a function.
Learn ability: How much effort the users of different level need to put in to understand the functions.
4.	Efficiency: generally depends on good architecture and coding practices followed while developing software.
Analyzability: identification of the main cause of failure.
Changeability: defines the effort that goes in modification of code to remove a fault.
Testability: how much effort goes in testing the system.
Installability: how easily a system can be installed.
Conformance: this is same as compliance in functionality.
Replaceability: how easy it is to replace a component of the system in a given environment.
Cost of Software Quality Cost of quality is important because when you decide to conduct software testing for your product you are actually going to invest your time, money and effort in getting quality checks done. By conducting an analysis of cost of software quality you would know what the return on that investment (ROI) is.
Prevention costs: amount spent on ensuring that all quality assurance practices are followed correctly. This includes tasks like training the team, code reviews and any other QA related activity etc.
Appraisal costs: this is the amount of money spent on planning all the test activities and then carrying them out such as developing test cases and then executing them.
Internal failures: it is theexpense that arises when test cases are executed for the first time at internal level and some of them fail. The expenses arise when the programmer has to rectify all the defects uncovered from his piece of code at the time of unit or component testing.
External failures: it is the expense that occurs when the defect is found by the customer instead of the tester. These expenses are much more than what arise at internal level, especially if the customer gets unsatisfied or escalates the software failure.
It displayslack of ability to keep up: this generally happens when the software starts aging. As it grows old the size increases because the easiest way of adding a feature is by adding new code without touching anypart of code written earlier. Over a period of time it becomes bulky and it becomes difficult to identify the sections of code that need to be changed.
Performance drop is observed: Every application generally slows down with age and tends to occupy more and more computer memory therefore it is better to switch to other software.
It doesn’t seem to be reliable: It is a known fact that every time when changes are made to the code of the software to fix an error, more defects are introduced in the system. Surprisingly, this is one of the major reasons for increased failure rates and in order to save situation it is always better to ditch the project or give up bug fixing.
Software Testing VS Quality Assurance In IT industry it is often observed that people generally don’t differentiate between the software quality assurance and software testing. Testers are often looked upon as Software Quality Assurance professionals because the objectives of software testing as well as quality assurance are the same .i.e. to ensure that the software is of top quality.
Software testing on the other hand is carried to identify or uncover defect and errors in the software. It involves actual rigorous testing of the software to see if there are any defects or variations from the client’s requirement that needs to be fixed. Software testing is a part of quality control process and it focuses only on product oriented activities. Software testing is carried out during the testing phase and only defects are identified and not corrected in this process. Fixing defects is not a part of software testing.
Quality Assurance VS Quality Control Another subject that is closely related to quality assurance is quality control. People often get confused between the two but there is a huge difference. While quality assurance is all about preventive activities, quality control focuses on corrective processes.
Here is what you need to understand: software testing is a subset of quality control and quality control is a subset of quality assurance. Theentire focus of Quality assurance is on implementation of processes and procedures that are required for the verification of the software under development and the requirements of the client.
Quality control on the other hand deals with actual activities that ensure that the product is being developed as per the defined requirements. It deals with all the actions that are important to control and verify certain characteristics of the product including testing. Examination and testing of the products is the most important aspect of quality control.
Companies employ quality control team to identify if there is any product or service that does not meet the company’s standard of quality. If there is an issue the quality control team has the authority to stop the production of that product till the issue is resolved.
Audit comprises of some very systematic processes that define how the software testing is taking place in the organization. The audit team examines all the processes that are conducted at the time of testing. IEEE defines audit as a review of documented processes to ensure that the organization or a team is following all the processes as per the defined standards.
We guarantee that Your Free Online Training will make you pass Your Software Testing Certification Exam!