Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced...
Transcript of Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced...
![Page 1: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/1.jpg)
Department of Informatics!
Martin Glinz
Software Quality Chapter 1
Introduction "
© 2014-2016 Martin Glinz. All rights reserved. Making digital or hard copies of all or part of this work for educational, non-commercial use is permitted. Using this material for any commercial purposes and/or teaching is not permitted without prior, written consent of the author. Note that some images may be copyrighted by third parties."
![Page 2: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/2.jpg)
Software Quality "1. Introduction " © 2014 Martin Glinz " 2"
1.1 "About this Course "
1.2 "Quality Principles"
1.3 "Quality management"
"
![Page 3: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/3.jpg)
Software quality matters"
Software Quality "1. Introduction " © 2014 Martin Glinz " 3"
![Page 4: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/4.jpg)
Contents"
❍ This is an advanced course about software quality"❍ It covers selected aspects of software quality, in particular"
● Model Checking"● Advanced testing"● Debugging"● Process quality"● External and internal product quality"● Dependability"● Quality in agile development"
❍ Familiarity with the basics of software quality is a prerequisite (see next slide)"
Software Quality "1. Introduction " © 2014 Martin Glinz " 4"
![Page 5: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/5.jpg)
Prerequisites"
❍ Familiarity with the basics of software quality, as covered in a course or textbook in Software Engineering is expected"
❍ From the Software Engineering course at UZH, we expect that you are familiar with these chapters:"● Kapitel 2: Ziele und Qualität"● Kapitel 7: Validierung und Verifikation"● Kapitel 8: Testen von Software"● Kapitel 9: Reviews"● Kapitel 10: Messen von Software"● Kapitel 11: Statische Analyse"● Kapitel 16: Software-Qualitätsmanagement"● Kapitel 17: Bewertung und Verbesserung von Prozessen und
Qualität"Software Quality "1. Introduction " © 2014 Martin Glinz " 5"
![Page 6: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/6.jpg)
Learning Goals"
❍ Students acquire knowledge and skills in advanced topics of software quality, thus enabling them to "● analyze, assess and improve software quality"● develop high-quality software"
❍ Students deepen and extend their knowledge in"● Advanced testing techniques"● Quality management"● Product and process quality"
❍ Students learn about"● Model Checking as an important verification procedure"● Systematic debugging as a means for locating causes of errors""
Software Quality "1. Introduction " © 2014 Martin Glinz " 6"
![Page 7: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/7.jpg)
Tentative Schedule"
2016-02-22 "Introduction"2016-02-29 "Model Checking"2016-03-07 "Advanced Testing Techniques"2016-03-14 "No lecture; Discussion of assignment 1"2016-03-21 "Debugging"2016-03-28 "No class (Easter break)"2016-04-04 "Process Quality, Discussion of assignment 2"2016-04-11 "Product Quality; Quality in Agile Development" " " " " ""
2016-05-02 "Final exam"Software Quality "1. Introduction " © 2016 Martin Glinz " 7"
![Page 8: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/8.jpg)
Homework assignment (exercise) schedule"
2016-02-29 "Introduction to assignment 1"2016-03-09 "Deadline for submission"2016-03-14 "Discussion of assignment 1, Introduction to " " " " " "assignment 2"
"2016-03-30 "Deadline for submission"2016-04-04 "Discussion of assignment 2"
Software Quality "1. Introduction " © 2016 Martin Glinz " 8"
![Page 9: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/9.jpg)
Passing the course"
Pass the two assignments (pass/fail)"and"
Pass the final exam (graded)""The course grade will be the grade achieved in the final exam"
Software Quality "1. Introduction " © 2014 Martin Glinz " 9"
![Page 10: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/10.jpg)
Software Quality "1. Introduction " © 2014 Martin Glinz " 10"
1.1 "About this Course "
1.2 "Quality Principles"
1.3 "Quality management"
"
![Page 11: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/11.jpg)
Intuitive notion of quality"
What’s your personal intuitive notion of quality?"
Software Quality "1. Introduction " © 2014 Martin Glinz " 11"
Intuitively, quality is typically associated with"❍ High-grade products or services"❍ Durable products, carefully made according to highest
standards""
![Page 12: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/12.jpg)
Industrial notion of quality"
Quality – The degree to which a set of inherent characteristics of an entity fulfills requirements. [ISO 9000:2005]"
Inherent characteristic – A characteristic that forms a constituent part of an entity, as opposed to assigned characteristics"
Entity – A product, service, process, system, organization, ..."
Software Quality "1. Introduction " © 2014 Martin Glinz " 12"
Example: A drug"● Inherent characteristic:
Ingredients"● Explicitly assigned:
Price"
![Page 13: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/13.jpg)
Remarks"
❍ The industrial notion of quality does not fully match the intuitive one."
❍ Quality means satisfying requirements. Requirements may be explicitly stated or implicitly given by a shared notion."
❍ Quality is no absolute degree of goodness."❍ Considering quality merely as fitness for purpose or
customer satisfaction falls short of the full meaning. "❍ Quality does not emerge by itself. Quality must be defined
and explicitly created."
Software Quality "1. Introduction " © 2014 Martin Glinz " 13"
![Page 14: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/14.jpg)
Software quality"
❍ The entity (that the inherent characteristics of which shall fulfill requirements) is a software system or component"
❍ Software is different:"● not tangible"● manifests only in effects and documentation, especially the
source code"
Software Quality "1. Introduction " © 2014 Martin Glinz " 14"
![Page 15: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/15.jpg)
External vs. internal software quality"
The pragmatic view"❍ External quality is quality as perceived by stakeholders"
❍ Internal quality is the quality of the software, particularly of the source code that eventually delivers external quality"
Software Quality "1. Introduction " © 2016 Martin Glinz " 15"
![Page 16: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/16.jpg)
External vs. internal software quality – 2"
The ISO standards’ view"The ISO software quality standards distinguish quality from a measurement viewpoint (cf. Chapter 6)"
❍ Internal measures: internal quality"❍ External measures: external quality"❍ Usage measures: quality in use"
Software Quality "1. Introduction " © 2016 Martin Glinz " 16"
[ISO/IEC 25010:2011]"
![Page 17: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/17.jpg)
Software Quality "1. Introduction " © 2014 Martin Glinz " 17"
1.1 "About this Course "
1.2 "Quality Principles"
1.3 "Quality management"
"
![Page 18: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/18.jpg)
Requirements
Customer satisfaction
Quality!management!system
Product or !Service
Customer
Feedback!
Customer!
Management!responsibilty
Resource!management
Product realization!Service provision
Measurement!Analysis!Improvement
Continual!improvement
relationship
Principles of modern quality management"
❍ Involvement of people: everybody takes full responsibility"❍ Customer focus"❍ Process-oriented, systemic approach"
Software Quality "1. Introduction " © 2014 Martin Glinz " 18"
[ISO 9000:2005]"
![Page 19: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/19.jpg)
Quality management terminology"
Quality management – Coordinated activities to direct and control an organization with regard to quality"
Quality planning – Part of quality management focused on setting quality objectives and specifying necessary operational processes and related resources to fulfill the quality objectives"
Quality control – Part of quality management focused on fulfilling quality requirements"
Software Quality "1. Introduction " © 2016 Martin Glinz " 19"
[ISO 9000:2005]"
![Page 20: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/20.jpg)
Quality management terminology – 2"
Quality assurance – Part of quality management focused on providing confidence that quality requirements will be fulfilled"
Quality improvement – Part of quality management focused on increasing the ability to fulfill quality requirements"
Software Quality "1. Introduction " © 2016 Martin Glinz " 20"
[ISO 9000:2005]"
![Page 21: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/21.jpg)
Procedures of quality management"
! !!Quality planning""Definition of requirements: We want to achieve this!"
"! !!Quality control
""constructive: this is how we need to work. " " " " " "" analytic: did we work correctly? (quality checking)"
"" "Quality improvement
!!What works how well? ""Where can we spot weaknesses?"
" ""We want to improve this!"Software Quality "1. Introduction " © 2014 Martin Glinz " 21"
![Page 22: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/22.jpg)
Constructive quality control"
❍ Using processes that prevent/avoid faults"
❍ Rigorous and early quality checking"
❍ Continuous improvement of quality and processes"
Software Quality "1. Introduction " © 2014 Martin Glinz " 22"
![Page 23: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/23.jpg)
Analytic quality control"
❍ Checking the product"Static methods "● Reviewing"● Static analysis"● Formal verification"● Model checking"Dynamic methods"● Testing"● Simulation"● Prototyping"
❍ Checking the process(es)"● Audits"● Process capability
assessment"
Software Quality "1. Introduction " © 2014 Martin Glinz " 23"
![Page 24: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/24.jpg)
Analytic techniques: a quiz"
❍ Testing"● Why do we test?"● What are the ingredients of a systematic test?"● Which forms of testing do you know?"
❍ Reviewing"● What is a review?"● Which forms of reviews do you know?"● What are the rules for systematic reviewing?"
❍ Static analysis"● What is static analysis?"● What are typical things one can check with static analysis?"
Software Quality "1. Introduction " © 2014 Martin Glinz " 24"
![Page 25: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/25.jpg)
Analytic techniques: a quiz – 2"
❍ Prototyping"● What is a software prototype?"● Which forms of prototyping do you know and what do they
serve for?"● Throw-away prototypes vs. evolutionary prototyping?"
❍ Auditing"● What is an audit?"● What does auditing mean in the context of software quality?"● Which forms of software quality audits do you know?"● How is an audit carried out?"
Software Quality "1. Introduction " © 2014 Martin Glinz " 25"
![Page 26: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/26.jpg)
Quality improvement"
Just fixing quality defects is not enough"❍ Necessary for achieving product quality in software"
❍ However: frequently fixes symptoms only"➔ Systemic approach needed"
Software Quality "1. Introduction " © 2016 Martin Glinz " 26"
![Page 27: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/27.jpg)
Quality improvement – 2"
A systemic approach to quality improvement"Modify "• "quality related processes and/or " " " "• "the quality management system"
Based on"❍ Systematic evaluation of"
● Observed errors/failures and their causes"● Findings in reviews"
❍ Product and process measurement"❍ Findings in audits"➪ Process improvement"Software Quality "1. Introduction " © 2016 Martin Glinz " 27"
![Page 28: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/28.jpg)
Process improvement"
The Deming cycle: Plan-Do-Check-Act (Deming 1986)"
Plan
Do"Check"
Act • "Design"•"Document"
•"Adapt"•"Eliminate weaknesses"•"Automate"
•"Measure"•"Analyze"•"Control"
•"Train "•"Institutionalize"•"Perform"
Software Quality "1. Introduction " © 2014 Martin Glinz " 28"
![Page 29: Software Quality - UZH IfIffffffff-db9c-027c-ffff-ffffcc371db2/01... · 2016-03-07 "Advanced Testing Techniques" 2016-03-14 "No lecture; Discussion of assignment 1" 2016-03-21 "Debugging"](https://reader034.fdocuments.us/reader034/viewer/2022052002/6014cd572524912d161ecf70/html5/thumbnails/29.jpg)
References"
W.E. Deming (1986). Out of the Crisis. Cambridge, Mass.: M.I.T. Press."M. Glinz, T. Fritz (2015). Software Engineering. Course Slides. University of Zurich."ISO (2005). Quality management systems – Fundamentals and vocabulary. International standard ISO 9000:2005."ISO (2008). Quality management systems – Requirements. International standard ISO 9001:2008."ISO (2011). Managing for the sustained success of an organization – A quality management approach. International Standard ISO 9004:2011."ISO/IEC (2011). Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – System and software quality models. International Standard ISO/IEC 25010:2011"B. Kitchenham, S.L. Pfleeger (1996). Software Quality: The Elusive Target. IEEE Software 13(1):12–21."P. Liggesmeyer (2002). Software-Qualität: Testen, Analysieren und Verifizieren von Software. Heidelberg; Berlin: Spektrum Akademischer Verlag."K. Schneider (2012). Abenteuer Softwarequalität. 2. Auflage. Heidelberg: dpunkt."M. Wieczorek, D. Meyerhoff (eds.) (2001). Software Quality: State of the Art in Management, Testing, and Tools. Berlin: Springer.""""
""
"
Software Quality "1. Introduction " © 2016 Martin Glinz " 29"