ALI JAVED Lecturer SOFTWARE ENGINEERING DEPARTMENT U.E.T TAXILA Email:: email@example.com Office Room #:: 7
Books • Software Quality Engineering By JEF TIAN • Software Testing & Continuous quality improvement 2nd Edition by William Lewis.
Presentation Outline • Quality • Quality Types • Quality Control • Different views of Quality • Quality Models • Cost of Quality • Quality Lifecycle
Quality • Quality means:: • meeting the customer’s requirements, at the agreed cost, within the agreed timescales. • “Fitness for purpose” • Customer satisfaction
Standard Definitions of Quality There are many quality definitions some of them are listed below The American Heritage dictionary defines quality as ‘a characteristic or attribute of something’. IEEE Glossary: Degree to which a system, component, or process meets (1) specified requirements, and (2) customer or user needs or expectations ISO 8402: The totality of features and characteristics of a product or service that bear on its ability to satisfy specified or implied needs Another definition, coined by Gerald Weinberg in Quality Software Management: Systems Thinking, is "Quality is value to some person." This definition stresses that quality is inherently subjective - different people will experience the quality of the same software very differently. One strength of this definition is the questions it invites software teams to consider, such as "Who are the people we want to value our software?" and "What will be valuable to them?"
Software Quality • Software Quality can be defined as, • “Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software” • This definition emphasizes three important points • Software requirements are the foundation from which quality is measured. Lack of conformance to requirements is lack of quality • Specified standards define a set of development criteria that guide the way in which software is engineered. If the criteria are not followed , lack of quality will almost surely result. • If a software conforms to its explicit requirements but fails to meet implicit requirements, software quality is suspect.
Quality Types • Quality of Design (how well software is designed ) • the characteristics that designers specify for an item. • In Software development, quality of design includes requirements and the design of the system. • measures how valid the design and requirements are in creating a worthwhile product • Quality of Conformance (how well the software conforms to that design ) • the degree to which the design specification are followed. • It focuses on implementation based on the design.
Quality Control • What is quality control? • Quality control is defined as the processes and methods used to monitor work and observe whether requirements are met. It focuses on reviews and removal of defects before shipment of products. • It is possible to have the same group that builds the product perform the quality control function, or to establish a quality control group or department within the organizational unit that develops the product. • For software products, quality control typically includes specification reviews, inspections of code and documents, and checks for user deliverables. • Objective • minimize the produced defects, increase the product quality • Implementation approaches • Fully automated • Entirely manual • Combination of automated tools and human interactions
Quality Control • Key concept of quality control • compare the work products with the specified and measurable standards • Quality control can be provided by various sources. • For small projects, the project personnel’s peer group or the department’s software quality coordinator can inspect the documents. • On large projects, a CCB may be responsible for quality control. • Quality control is designed to detect and correct defects. Detection implies flaws in the processes that are supposed to produce defect-free products and services.
Objective Quality VS Perceived Quality • Quality might be the most important factor underlying the long-term success of products and firms. The business press routinely cites quality as the cause of firm success and failure. • Objective qualityis operationalized as a composite of instrument measures and expert ratings on multiple product attributes. For example, a personal computer’s objective quality attributes include processing speed, hard disk capacity, reliability, and features like the modem. Objective quality does not include intangible attributes like aesthetics and brand image or salesperson behavior. • Perceived qualityis the overall subjective judgment of quality relative to the expectation of quality. These expectations are based on one’s own and others’ experiences, and on sources including brand reputation, price, and advertising. It is not necessary to use or examine a product to form perceptions of quality.
Objective Quality VS Perceived Quality • However, it is now well established that it is not the objective quality but rather customers’ perceptions of quality that drive preferences and, ultimately, satisfaction, loyalty, sales, and profitability. • Numerous anecdotes suggest that customer perceptions of quality do not reflect objective quality. Companies frequently find that negative perceptions persist even after products perform well in quality tests. For example it took Google three years after its launch to be perceived as the superior search engine.
Different Views of Quality • Transcendental view: associated with intangible properties that delight users • User view: fitness for purpose or meeting user’s needs • Manufacturing view: conformance to process standards or the right development of the product • Product view: inherent characteristics in the product itself • Value-based view: customers willingness to pay
Internal and External Views • External/Consumers: customers, users • Internal/Producers: developers, managers, testers etc. • Also: 3rd party, indirect producers. For example, involved in add-on products (like MS Word templates), software certification groups (I V & V) • Black box vs. white box view of software
People’s/ User’s Quality Expectations • People’s quality expectation for software systems they use and rely upon are two-fold: • The software system must do what they are supposed to do. In other words , they must do the right things (Validation) • They must perform these specific tasks correctly. In other words, they must do the things right (Verification) • Verification --> refers to the set of activities that ensure that software correctly implements a specific function. • Validation --> refers to a different set of activities that ensure that the software that has been built is traceable to customer requirements.
Internal/Producer Quality Expectations • Good enough for the cost • For managers: adherence to process standards, proper choice of methodologies and tools • Service related producers: usability, maintainability • 3rd party or software packaging producers: modularity • Marketing personnel: profitability and customer value
Quality Models • A Quality Model is defined as, “ the set of characteristics and the relationships between them which provides the basis for specifying quality requirements and evaluating quality” • Software quality is described by specific quality models • Two main approaches: • Standard Models: • McCall • ISO/IEC 9126 • Application or company specific quality models • FURPS • GQM Approach
Factor-Criteria-Metrics-Model • Classification into : • Factors (to specify): • They describe the external view of the software, as viewed • by the users. • Criteria (to build): • They describe the internal view of the software, as seen by • the developer. • Metrics (to control): • They are defined and used to provide a scale and method for measurement.
McCall’s Quality Factors and Criteria • McCall, Richards, and Walters studied the concept of software quality in terms of two key concepts as follows: • quality factors, and • quality criteria. • A quality factor represents the behavioral characteristic of a system. • Examples: correctness, reliability, efficiency, testability, portability e.t.c • A quality criterion is an attribute of a quality factor that is related to software development. • Example: Modularity is an attribute of the architecture of a software system. A highly modular software allows designers to put cohesive components in one module, thereby increasing the maintainability of the system.
McCall’s 11 Quality Factors • Product Revision • Maintainability - Can I fix it? • Flexibility - Can I change it? • Testability - Can I test it? • Product Transition • Portability - Will I be able to use on another machine? • Reusability - Will I be able to reuse some of the software? • Interoperability - Will I be able to interface it with another machine? • Product Operation • Correctness - Does it do what I want? • Reliability - Does it do it accurately all the time? • Efficiency - Will it run on my machine as well as it can? • Integrity - Is it secure? • Usability - Can I run it? Attributes of Quality Factors
McCall’s 11 Quality Factors Quality Attributes
McCall’s Quality Criteria’s • Some Quality Criteria’s from McCall’s Model is listed below: • Accuracy (The precisions of computations and outputs) • Completeness (The degree to which the full implementation of the required functionalities has been achieved) • Error Tolerance (The degree to which the continuity of operations is ensured under adverse conditions) • Expandability (The degree to which software functions can be expanded ) • Hardware Independence (The degree to which the software is dependent on the underlying hardware) • Modularity (The provision of highly independent modules) • Simplicity (The ease with which the software can be understood)
McCall’s Quality Factors and Criteria • Relationship Between Quality Factors and Quality Criteria • Each quality factor is positively influenced by a set of quality criteria, and the same quality criterion impacts a number of quality factors. • Example: Simplicity impacts reliability, usability, and testability. • If an effort is made to improve one quality factor, another quality factor may be degraded. • Example: Portable code may be less efficient. • Some quality factors positively impact others. • Example: An effort to improve the correctness of a system will increase its reliability.
The Six Quality Characteristics of a Software (ISO/IEC 9126) • Software quality characteristics: • A set of attributes of a software product by which its quality is described and evaluated. A software quality characteristic may be refined into multiple levels of sub-characteristics. (ISO 9126:1991,3.13) • Each characteristic is refined to a set of sub-characteristics • Each sub-characteristic is evaluated by a set of metrics. • Some metrics are common to several sub-characteristics.
The Six Quality Characteristics of a Software (ISO/IEC 9126)
The Six Quality Characteristics of a Software (ISO/IEC 9126)
The Six Quality Characteristics of a Software (ISO/IEC 9126)
Hewlett Packard: F.U.R.P.S. (1/2) • Result of a statistical project survey at Hewlett Packard 1987 to improve its products: • Factors: • Functionality: functions it performs, their generality and Security • Usability: aesthetics, consistency, documentation • Reliability: frequency and severity of failure, accuracy of Output • Performance: response time, resource consumption • Supportability: can it be extended, adapted, corrected? • FURPS is originally a company specific quality model
GQM: Goal-Question-Metric • A measurement program can be more successful if designed with the goals in mind. • GQM approach provides a framework with 3 steps: • List the major goals of the development/maintenance project • 2. Derive from each goal the questions that must be answered to determine if the goals are being met • 3. Decide what must be measured to answer the questions adequately
Cost of Quality • Cost of quality • Includes all costs incurred in the pursuit of quality or perform quality related work • The "cost of quality" isn't just the price of creating a quality product or service. It's also the cost of NOT creating a quality product or service. • Every time work is redone, the cost of quality increases. Obvious examples include: • The reworking of a manufactured item. • The retesting of an assembly. • In short, any cost that would not have been expended if quality were perfect contributes to the cost of quality.
Cost of Quality • Total Quality cost includes: • Prevention cost: • Appraisal cost: • Failure cost: • -Internal failure cost • -External failure cost
Cost of Quality • Prevention cost: • Generally the most effective way to manage quality costs is to avoid • having defects in the first place. It is much less costly to prevent a • problem from ever happening than it is to find and correct the problem after it has occurred. • Prevention costs support activities whose purpose is to reduce the • number of defects. • Examples are the costs of: • - quality planning • - formal technical reviews • - testing equipment • - training • - Quality improvement • Companies employ many techniques to prevent defects for example • statistical process control, quality engineering, training, and a variety of tools from total quality management (TQM).
Cost of Quality • Prevention cost: • Prevention costs include activities relating to quality circles and statistical • process control. • Quality circles consist of small groups of employees that meet on a regular basis to discuss ways to improve quality. Both management and workers are included in these circles. • Statistical process control is a technique that is used to detect whether a process is in or out of control. An out of control process results in defective units and may be caused by a miscalibrated machine or some other factor.
Cost of Quality • Appraisal cost: • The costs associated with measuring, evaluating or auditing products or services to assure conformance to quality standards and performance requirements. • Any defective parts and products should be caught as early as possible in • the production process. Appraisal costs, which are sometimes called • inspection costs, are incurred to identify defective products before the • products are shipped to customers. • These include the costs of: • Process inspection • equipment calibration and maintenance • Testing • Product, process or service audits
Cost of Quality • Failure Costs: • The costs resulting from products or services not conforming to requirements/design specifications or customer/user needs. Failure costs are divided into internal and external failure categories. • Internal Failure Costs • Internal failure costs result from identification of defects before they are shipped to customers. • The more effective a company's appraisal activities the greater the chance of catching defects internally and the greater the level of internal failure costs. This is the price that is paid to avoid incurring external failure costs, which can be devastating. • These include the costs of: • - Rework • - Repair • - Re-testing • - Rejected products • - Failure mode analysis • - Downtime caused by quality problem
Cost of Quality • Failure Costs: • External Failure Costs • Failure costs occurring after delivery or shipment of the product and during or after furnishing of a service to the customer. • These include the costs of: • - Warranty • - complaint resolution • - product return and replacement • - help line support • - Liability arising from legal actions against a company • - Lost sales arising from a reputation for poor quality • External failure costs usually give rise to another intangible cost. These intangible costs are hidden costs that involve the company's image. They can be 3 or 4 times greater than tangible costs. Missing a deadline or other quality problems can be intangible costs of quality. • Internal failure costs, external failure costs and intangible costs that impair the goodwill of the company occur due to a poor quality so these costs are also known as costs of poor quality by some persons.
The Quality Cost Conformance Model • The quality cost conformance model provides an example of a constrained optimization approach. In this model the economic conformance level (ECL) is obtained where prevention and appraisal costs are equal to external and internal failure costs. • Prevention and appraisal costs increase as the level of conformance quality increases. Conformance quality refers to conformance to specifications as opposed to design quality, i.e., service functions or features. • Failure costs are expected to decrease as the level of conformance quality increases. Therefore, the total costs associated with conformance quality will be U-shaped as indicated in the figure.
Quality Cycle • The quality cycle describes a continuous process of improvement to achieve objectives. • The elements of the quality cycle are: • Plan • Act • Evaluate (monitor and review) • Improve.
The Race for Quality has no finish line, technically it’s more like a death march.
Assignment # 1 (Due Date:: 11th Feb, 2010) • Q: 1 Compare the following Cost of Quality models (P-A-F model, Crosby’s model, Intangible cost model, process cost model, ABC model) discussed in Andrea and Vince paper “A Review of Research on cost of quality models and best practices” on the basis of the following: • The categories of costs included in each model • Cost of Quality Metrics • Industry Specific • Also discuss in your own words the pros and cons of each model. • Q: 2 Explain the following models given below, Also compare the following models on the basis of which each model measures quality. • BOEHM’s Model • DROMEY’s Model • BBN model • Star model