5
Software Quality
quality and producer’s adherence to requirements to achieve quality), the
de facto definition of quality consists of two levels. The first is the intrinsic
product quality, often operationally limited to the product defect rate and
reliability. This narrow definition is referred to as the “small q” (q for quality).
The broader definition of quality includes product quality, process quality,
and customer satisfaction, and it is referred to as the “big Q.” This two-
level approach to the definition of quality is being used in many industries,
including the automobile industry, the computer industry (both software and
hardware), and the consumer electronics industry (Kan, 2012).
WHAT IS SOFTWARE QUALITY?
Software quality is defined as the quality that ensures customer satisfaction
by offering all the customer deliverables on performance, standards and ease
of operations (Jawadekar, 2006). Software quality can also be defined as
conformance to explicitly stated and implicitly stated functional requirements.
The explicitly stated functional requirements can be derived from the
requirements stated by the customer which are generally documented in some
form. However, implicit requirements are requirements which are not stated
explicitly but are intended. In software, the simple sense of product quality
is commonly known as a free from “bugs” in the product. It is also the most
basic sense of conformance to requirements, because if the software contains
too many functional faults, the basic requirement of providing the desired
function is not met. This definition is usually expressed in two ways: defect
rate (e.g., number of defects per million lines of source code, per function
point, or other unit) and reliability (e.g., number of failures per n hours of
operation, mean time to failure, or the probability of failure-free operation
at a specified time). Customer satisfaction is usually measured by percent
satisfied or unsatisfied (neutral and dissatisfied) from customer satisfaction
surveys. To reduce bias, techniques such as blind surveys (the interviewer
does not know the customer and the customer does not know the company
the interviewer represents) are usually used. In addition to overall customer
satisfaction with the software product, satisfaction towards specific attributes
is also gauged. For example, the higher the functional complexity of the
software, the harder it becomes to achieve maintainability. Depending on the
type of software and customers, different weighting factors are needed for
different quality attributes. For large customers with sophisticated networks and
real-time processing, performance and reliability may be the most important