Monday, May 7, 2007

QUALITY

Web
www.softwaretestingsucks.com
What is Quality?
What is quality?orDefine quality?
Lot of quality pioneers defined quality in different waysA quality product is defined as the one that meets product requirements But Quality can only be seen through customer eyes.So the most important definition of quality is meeting customer needs or Understanding customer requirements, expectations and exceeding those expectations.Customer must be satisfied by using the product, then its a quality product.

Whats the difference between meeting product requirements and meeting customer needs?
Aren't customer needs tranlsated into product requirements?Not always.Though our aim is to accurately capture customer needs into requirements and build a product that satisfies those needs, we sometimes fail to do so because of the following reasons-Customers fail to accurately communicate their exact needs-captured requirements can be misinterpreted

Can't we define a quality product as the one that contains no bugs/defects?
Quality is much more than absence of defects/bugs.Consider this, though the product may have zero defects, but if the usability sucks i.e it is difficult to learn and operate the product, then its not a quality product.

If the product has some defects, can it be still called a quality product?
It depends on the nature of those bugs.But in some cases, even though a product has bugs, it can be still called a quality product.Unless the product is very critical, aiming for zero defects is not cost effective always.We should aim for 100% defect 'detection', but given the budget, time and resources constraints, we can still release the product with some unfixed or open bugs. If the open bugs cause no loss to the customer,then it can be still called a quality product.

Is quality only testers responsiblity?
No. Quality is everybody's responsibility including the customer.We, testers identify the deviations and report them, thats it.There are many factors that impact the quality such as maintainabiltiy, reusability, flexibility, portabilty which the testers can't validate. Testers can only validate the correctness, reliability, usability and interoperability of a product and report the deviations.

When is the right time to catch a bug?
As soon as possible.The cost of fixing the bug will keep on increasing exponentially as the product development progresses.For example, the cost of fixing a design bug identified in system testing is much more than fixing it, if it had been identified during design phase itself because now you not only have to rectify the design but also the code, the corresponding documents and code that is dependent on this code.
Are there any other quality control practices apart from testing?Yes.Inspections, design and code walkthroughs, reviews etc.

what are software quality factors?
software quality factors are attributes of the software that, if they are wanted and not present, pose a risk to the success of the software. There are 11 main factors and their definitions are given below. The priority and importance of the these attributes keeps changing from product to product.Like if the product being developed needs to be changed quite frequently, then flexibility and reusability of the product needs to be given priority. The following are the quality factors
Correctness: Extent to which a program satisfies its requirements
Reliability: Extent to which a program can be expected to perform its intended function withrequired precision.
Efficiency: The amount of computing resources and code required by a program to perform afunction.
Integrity: Extent to which access to software or data by unauthorized persons can becontrolled.
Usability: Effort required learning, operating, preparing input, and interpreting output of aprogram.
Maintainability: Effort required locating and fixing an error in an operational program.
Testability: Effort required testing a program to ensure that it performs its intended function.
Flexibility: Effort required modifying an operational program.
Portability: Effort required to transfer software from one configuration to another.
Reusability: Extent to which a program can be used in other applications – related to thepackaging and scope of the functions that programs perform.
Interoperability: Effort required to couple one system with another.

How to reduce the amount spend to ensure and build quality?orHow to reduce the cost of quality?
cost of quality includes the total amount spent on preventing errors, identifying and correcting errors.Coming to reducing this cost.Try to build a product that has less defects or no defects even before it goes to testing phase and to achieve this you should spend more money and effort on tyring to prevent errors from going into the product.You must concentrate greatly on building efficient and effective processes and keep on continuously improving them by identifying weakness in them.You many not reap great benefits immediately but over a long run you can make significant savings by reducing the cost of quality.

How to reduce the cost of fixing a bug?
Catch it as early as possible.As the development process progresses,the cost of fixing a bug keep on increasing exponentially. Practice life cycle testing.

No comments: