Software Quality Chapter 20-21. Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.

Slides:



Advertisements
Similar presentations
1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
Advertisements

Software Quality Seung Yang CS 525 Software Engineering II Dr. Sheldon X. Liang.
Chapter 4 Quality Assurance in Context
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 6/e (McGraw-Hill 2005). Slides copyright 2005 by Roger Pressman.1.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
Software Engineering Software quality. Software quality characteristics:  External: user is aware of. User cares about.  Internal: programmer is aware.
Stepan Potiyenko ISS Sr.SW Developer.
Overview Lesson 10,11 - Software Quality Assurance
Software Quality Metrics
Week 7: Requirements validation Structured walkthroughs Why have walkthroughs When to have walkthroughs Who participates What procedures are helpful Thoughtless.
© 2010 John Dalbey Ch 9: Reviews Humphrey proposes that personal reviews will result in improved quality. Now that we have a defined process and some real.
CS 350: Introduction to Software Engineering Slide Set 5 Software Quality C. M. Overstreet Old Dominion University Spring 2006.
SE 450 Software Processes & Product Metrics 1 Defect Removal.
Fundamentals of Information Systems, Second Edition
SE 555 Software Requirements & Specification Requirements Validation.
Software Testing and Quality Assurance: Introduction and Terminology
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8.
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
1 Shawlands Academy Higher Computing Software Development Unit.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Planning and Tracking Software Quality.  What Is Software Quality?  Causes of Software Defects  What is Quality Assurance?  Improving the Software.
S oftware Q uality A ssurance Part One Reviews and Inspections.
Software Quality Assurance Activities
Disciplined Software Engineering Lecture #8 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Unit 8 Syllabus Quality Management : Quality concepts, Software quality assurance, Software Reviews, Formal technical reviews, Statistical Software quality.
Software Project Management Lecture # 10. Outline Quality Management (chapter 26)  What is quality?  Meaning of Quality in Various Context  Some quality.
Disciplined Software Engineering Lecture #7 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Creator: ACSession No: 15 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 Software Quality Assurance & Software Quality Control.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #8 Software Engineering.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Jump to first page (C) 1998, Arun Lakhotia 1 Quality Assurance: Reviews and Walkthroughs Arun Lakhotia University of Southwestern Louisiana Po Box
CHAPTER 9 INSPECTIONS AS AN UP-FRONT QUALITY TECHNIQUE
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 9 – Quality Management 1INFO636 Week 9.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 8 – Reviews 1INFO636 Week 8.
PSP Quality Strategy [SE-280 Dr. Mark L. Hornick 1.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 7 1 Design and Code Reviews - Overview What are design and code.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
CSCI 521 Final Exam Review. Why Establish a Standard Process? It is nearly impossible to have a high quality product without a high quality process. Standard.
1 TenStep Project Management Process ™ PM00.9 PM00.9 Project Management Preparation for Success * Manage Quality *
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
The Software Development Process
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD.
Software Quality Assurance and Testing Fazal Rehman Shamil.
1 Lecture 12: Chapter 16 Software Quality Assurance Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Engineering Lecture 8: Quality Assurance.
More SQA Reviews and Inspections. Types of Evaluations  Verification Unit Test, Integration Test, Usability Test, etc  Formal Reviews  aka "formal.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
Software Quality Control and Quality Assurance: Introduction
CIS 375 Bruce R. Maxim UM-Dearborn
Software Verification and Validation
Software Quality Assurance
SQA for Individuals based on
Quality Measurable characteristic Cyclomatic complexity Cohesion
20. The Software-Quality Landscape
Software Reviews.
3. Software Quality Management
Presentation transcript:

Software Quality Chapter 20-21

Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How can we make sure software has high quality?

Perspective on quality  Customer  system not crashes  system follows documentation  system is logical and easy to use  Developer  system is easy to change  system is easy to understand  system is pleasant to work on

Characteristics of Software Quality  Some external characteristics that the user is aware of:  Correctness  Usability  Efficiency  Reliability  integrity  extent to which it allows unauthorized access to data  Adaptability  Accuracy  Robustness

Characteristics of Software Quality  Some internal characteristics of software that are code- centered:  Maintainability  Flexibility  Portability  Reusability  Readability  Testability  Understandability

Total Quality Management  Factories  Goal is for every item coming off the assembly line to be perfect  Management, production, engineering, QA  Everyone is involved in quality  Develop a reliable, repeatable process  Continuously improve the process

Failure vs. flaw  Failure - program didn’t work right  Flaw - mistake in the text of the program  Failure analysis - what flaw caused this failure?  Flaw analysis - what is wrong with our process that allowed this flaw to be created and not detected?

Failure costs  Internal  rework  repair  failure analysis  External  resolving complaints  returning and replacing product  help line

Prevention costs  Prevention  planning  managing and collecting information  reviews  Appraisal  inspection  Testing

Cost of fixing an error DesignCodeDev. Test System Test Field operation 3-6 times Req. 10 times times times times 10 1 time

Johnson’s Law If you don’t test for it, your system doesn’t have it. Is it easy to use? Easy to maintain? Does it crash? Does it match the documentation? Does it make customers happy?

Ways not to improve quality  Say “Be more careful!”  Say “Quality is important.”  Find out whose fault it is and fire him.

How to improve quality  Measure and compare  Determine root cause of problems  Create ways to eliminate problems

 If you don’t see it, it doesn’t exist  Measure quality over time (metrics)  Display in a public place  Make quality goals, then check to see if you meet them.

How to appraise quality  Requirements  reviews by customers  prototyping  Analysis and design models  formal reviews, inspections  Current system  bug reports  user tests  surveys

Bug tracking  Keep track of  who reported the bug (the failure)  description of the failure  severity  the flaw that caused this failure  who is repairing it  the repair

Bug tracking  Use information about failures to estimate reliability  Compare  critical nature of failure  iteration failure discovered  module that had the flaw

Use quality information to make decisions  “Must repair all level 1 failures before shipping”  “Half of all level 1 and 2 failures in the alpha release were in the Call Processing module; we should rewrite it.”  “Half of all level 1 and 2 defects found in the design reviews were in Call Processing; we should rewrite it.”

Bug tracking  Discover the flaw (defect) that caused each bug  Categorize flaws  Look at categories with the most flaws and improve your process to eliminate them.

SQA Manager  Responsible for SQA policy  Develops testing plan  Checks that plan is being followed  Develops review process  Trains reviewers  Monitors reviews  Develops customer survey plan  …

Technical Reviews  A way to evaluate the quality of requirements, designs, and software  A way to improve the quality of requirements, designs, and software  A way to educate new developers and ensure that developers are consistent  Proven to be cost-effective!

Main goal: evaluate quality  Produce a report describing  potential problems  summary of overall quality  pass/fail  Evaluated by expert outsiders  must know enough  shouldn’t know too much

Secondary goal: improve quality  Find flaws  Enforce standards  Improve standards  Provide feedback to management

Review methods  The most important step to improve the software engineering performance  Various review methods  Inspection  Walk-throughs  Personal reviews

Inspections  A structured procedure for the team review of a software product  Has a formal structure, and each participant has a defined role  Typical inspection process  Preparation  Inspection meeting  Repair and report  To be more effective, inspections are measured, a report is produced, and the action items are tracked to closure.

Walk-Throughs  A less formal process that usually follows a presentation format  A developer walks through how the program performs, while the audience raises issues and asks questions.  Generally lack of advance preparation or follow-up

Personal Reviews  You examine your own products.  To find and fix as many defects as possible before implementing, inspecting, compiling, or testing the program  As the PSP data will show, a little time spent on reviewing code can save the much longer amount of time that would be spent on debugging and fixing during compile and test.

Code Reviews are More Efficient than Testing (1)  In reviews, you find the defects directly.  When you review a program, you know where you are and the results its logic is supposed to produce.  You establish logical relationships and construct a mental context of the program’s behavior.  In testing, you get only symptoms.  You start with some unexpected system behavior.  You then spend a lot of time figuring out what caused those symptoms, i.e. debugging.

Code Reviews are More Efficient than Testing (2)  A debugger's principal advantage is that it helps you to step through the program logic and check the important parameter values.  This process is effective only if you know what the parameter values are supposed to be.

Review Principles  Establish defined review goals.  Follow a defined review process.  Measure and improve your review process.

Establish Review Goals  To find and fix all defects before the first compile or test  When engineers start doing reviews, they find only about 1/3 to 1/2 of defects.  By analyzing the data on reviews and making appropriate changes in review process, the rate can be improved significantly.  With care can practice, some find they can reach 80%, or even 95%.

Follow a Defined Review Process  Code review script  Code review guideline and checklist (C++)

Measure and Improve Your Review Process  To improve review quality  Generally, a high-quality review is one that finds the greatest number of defects in the least amount of time.  Need to measure the time spent on review, and track all defects found in review and later

Review Measures

Who founds more defects?

Review Measures Four explicit review measures  The size of the program being reviewed  LOC  If no code available, use text lines or pages of design, or estimated LOC.  The review time in minutes  The number of defects found  The number of defects in the program that were later found  these are called escapes

Derived Review Measures Several measures can be derived from the basic measures.  The review yield  the percentage of defects in the program that were found during the review  The defect found per KLOC of design or code reviewed  The defects found per hour of review time  The LOC reviewed per hour  Defect removal leverage (DRL), or the relative rate of defect removal for any two process phases

Review Yield  Yield  Cannot be precisely calculated until the reviewed has been extensively tested and used  Still able to make useful early approximations; upper bound  A high yield would be good and a low yield poor.

Result of review  Review summary  who, what, when and the conclusion  Issues list  Can result in more detailed reports  Give priority to issues  Can be disagreement on issues  Most issues are about product, but can also be about process or standards

In real life  Usually there are several meetings until all issues are resolved  Project has a policy that determines what would be reviewed  “Passing review” is a measure of progress  Reviews improve checklists, not just the product under review

Summary  Reviews are a key quality control technique  Use reviews to improve your process, not just your product