300 likes | 545 Vues
Software Quality Engineering Covers. Quality Definition / Planning / Control / Management Performing Selected Validation/Verification Activities Such as Black-Box Testing Measure and Analyze the Quality Related Activities and Quality Related Attributes to Demonstrate Software Quality.
E N D
Software Quality EngineeringCovers • Quality Definition/Planning/Control/Management • Performing Selected Validation/Verification Activities Such as Black-Box Testing • Measure and Analyze the Quality Related Activities and Quality Related Attributes to Demonstrate Software Quality
2 Main “General Quality” Expectations • The software system must do what is required/expected. • Must do the “right” things • (Do not perform the wrong functions!) • The software system must do the required functions correctly. • Must do the things “right” • (Do not perform the intended functions incorrectly!) BUT --- We are still not fully achieving both of these expectations
Some “Main Sources” of Quality Problems • Increasingly Complex & Large Systems • Large amount of functionalities • Stringent performance, security, reliability, etc. properties • Large number and varieties of users with unpredictable/uncontrollable behaviors • Large number of different platform combinations • High Rate of Changes in Technology and Needs
Relationship of QA-Resolution Activities Quality Engineering (quality goals, quality process, quality metrics, quality control &management, etc.) Quality Assurance Activities (reviews and inspection, defect prevention, formal verifications, etc.) Software Testing (design & execution of test scenarios)
So --- What is “Quality” • There are many ways to define Quality • Quality may be defined from different views • It may be defined in terms of the attributes or characteristics it should possess
Quality Viewed from Different Perspectives • Transcendental view– it is intangible; “I will know good quality when I encounter it”. • User view– fits the needs of the users • Manufacturing view– conformance to process standards • Productview– internal, inherent characteristics • Value-based view– willingness to pay for the item . .
Consumer-Producer Views • Consumer (users and customers): • System performs the correct functions as specified • System is reliable (performing correctly for a long period of time and recovers gracefully) • Systems is “easy to use” and “easy to install” – “ease” is usually defined in terms of number of steps or types of interfaces or time to learn/figure-out • Cost is reasonable – the “value” of the software and the “value” of service is what the customer perceives as equal to or better than the “price” of the software or service
Consumer-Producer Views (cont.) • Producers: • System conforms to the user/customer specifications • System meets the selected goals of modifiability, maintainability, portability, etc. • System is developed and managed with the appropriate process and methodologies
ISO-9126 “Framework” of Quality Attributes • Functionality- attributes that address the existence of functions and their characteristics • Reliability – attributes that address the ability to maintain a certain level of functional performance • Usability– attributes that bear on the effort needed to use the software • Efficiency – attributes that relate the effort & resources needed to level of performance of the software • Maintainability– attributes that address the effort needed to understand, modify & enhance the software • Portability – attributes that relate to the ability to be transferred from one environment to another ---- Nothing directly about cost /price/value -----
ISO-9126 “Framework” of Quality Sub-Attributes (cont.) • Functionality • Suitability • Accuracy • Interoperability • Security • Cohesiveness (my addition) • Reliability • Maturity – (length of existence) • Fault Tolerance • Recoverability
ISO-9126 “Framework” of Quality Sub-Attributes (cont.) • Usability • Understandibility • Learnability • Operability • Delightability (my addition) • Efficiency • Time • Resource
ISO-9126 “Framework” of Quality Sub-Attributes (cont.) • Maintainability • Analyzability • Changeability • Stability • Testability • Cohesion and coupling (my addition) • Portability • Adaptability • Instability • Conformance • Replaceability
Other Frameworks for Quality • IBM (since 1980’s): • C : capability • U: usability • P: performance • R: reliability • I: installation • M: maintenance • D: documentation • S: service • HP (since 1980’s): • F: functionality • U: usability • R: reliability • P: performance • S: supportability
Most “Common” Understanding • Quality is associated with ---- “Correctness” the software (a) runs with few if any “problem” during the operation; (b) if a problem does occur, it has minimal impact to the operation
Definitions Related to Software “Defect” • Error – a mistake caused by a human • Fault – the result of an error, causing a mistake in the software (e.g. design or code) • Failure (“problem”) – the result of a fault in the software, causing the software (code) to not perform the required functionality in accordance with the specification
Relations Among Error/Fault/Failures Failures Errors Fl1 Fl2 Fl3 Fl4 Fl5 E1 E2 E3 E4 Faults F1 F2 F3 F4
Back to Consumer/Producer Views Correctness Attribute Other Attributes - usability - performance - installability - readability etc. Failure related properties Consumer (external) View Producer (internal) view • design complexity • size • maintainability • etc. Fault related properties moved this down from Consumers in your text
Measurements of “Correctness” centric properties • Failure properties: information about failures • Number of failures • Distribution of failures (by functional area; by types, etc.) • Defect source classifications • Failure likelihood & reliability • Failure probability • Mean-time between failures • Failure severity and safety • Failure fix (by recovery cost/length) • Failure impact (by user work arounds)
“Defect”Detection & Removal(Defect ≈ Error/Fault/Failure) • Defect Discovery or Detection (QA-Testers) • Inspection • Testing • Defect Removal (Developers & QA-Testers) • Defect diagnosis & analysis • Defect fix • Fix verification
Quality Engineering- For Most software Organizations Includes: • Activities Related to Error & Defect Prevention and Failure Containment (via Inspections and Support) • Activities Related to DefectDiscovery and Detection (via Inspections and Testing) • Activities Related to Defect Removal (via Inspection, Testing & Fixes) • Also Activities Related to: • Planningfor QA activities • Measurement/Analysis/Feedback/Control Product related Process related
Some Different Concerns in Software Engineering Cost and Price Reduction (for both us and customers) Automation and Functionality (customer productivity) Development & Support Methodology, Techniques, etc. (mostly for us) Schedule and New Technology to Market (for both customers and us) Quality,Reliability, Safety, Security, etc. (for both customers and us)
Software Engineers also need to consider: “Total Quality Management” • A term borrowed from the Japanese-Manufacturing during the 80’s • Includes 4 main areas: • Customer Satisfaction • Process Improvement • Corporate Quality Culture • Measurement and Analysis • Many Forms of TQM Interest exists: • ISO 9000 • Software Engineering Institute’s (CMM- CMMI ) • Motorola’s Six Sigma • US government’s Malcolm Baldridge National Quality Award
Total Quality Management (TQM) • Astyle of “Management & Operation” that creates an organizational culture for improvement of: • Product • Process & Techniques • Services to achieve success throughcustomer satisfaction • Key elements are: • Customer /User focus • Process & Techniques • Human & Corporate Culture • Measurements
1. Customer/User Focus • Understanding the customers’/Users’ wants and needs is a key element for software TQM • Early in the development phase - verify requirements andearly feedback: • rapid throwaway prototyping • iterative enhancement • evolutionary development • Late in the development phase – controlled feedback • Customer/User beta test • Customer/user “burn-in” for early customers
2. Process, Technology, and Development • Defect Prevention Process • causal analysis • action team • (action kick off meetings) • action tracking • Reviews and Inspections • Formal Methods • Improvements in Design Paradigms (e.g. OO) • High Level Programming Languages • Comprehensive Testing and Analysis • Development Platforms, Libraries, Change Control and Middleware (Screen - Logic – Data Base ; M-V-C) • Software Reuse just a partial list here
3. Human & Corporate Culture • Organizational Participation (total) • Management commitment and leadership • Professional buy-in and empowerment • Customer /User interaction and empowerment • Integrated Operational Approach • Project (schedule/resource/function trade-off perspective) • Process • Quality (continuous improvement ) • Communication is a “huge” factor for human culture Many software projects are “group” activities -- social,psychological, and organizational skills are important
4. Data, Measurement, and Model • Collecting data and performing measurements are absolutely necessary • well defined metrics (a necessary pre-req.) • Goal/Question/Metric (GQM) • “models” needs to be developed, especially if we want to “predict” • reliability models • quality models (may be used for both development and service) • complexity models • service models • must have means to collect and record • collected information needs to be valid & reliable --- and analyzed
Key elements of TQM Continuous Improvements Customers Processes People Product/ Services Metrics, Models, Measurements & Analysis Does this model get us to “profitable” business?
Again – What is Quality & TQM? • Qualityis a characteristic which may include multiple sub-attributes that may be perceived differently based on different roles (views) and responsibilities • We will focus on the “correctness” view of quality, which means minimize failures of the product with limited or contained damage to users/customers • TQM is a “management/operational style” that focuses on: customer/user satisfaction; process improvement; corporate & human culture; measurements