© 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.

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Damian Gordon.  Static Testing is the testing of a component or system at a specification or implementation level without execution of the software.
Software Engineering Session 14 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Applied Software Project Management INTRODUCTION Applied Software Project Management 1 5/20/2015.
Debugging Introduction to Computing Science and Programming I.
Personal Software Process
The Software Process Strategy The Software Process Strategy Part III.
Debugging CPSC 315 – Programming Studio Fall 2008.
CS 350: Introduction to Software Engineering Slide Set 5 Software Quality C. M. Overstreet Old Dominion University Spring 2006.
Aplicaciones de Ingeniería de Software
 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.
Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8.
Design Reviews Peer Reviews. Agenda Peer Reviews Participants of Peer Review Preparation for a Peer Review Session The Peer Review Session Post-peer Review.
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
Personal Software Process Software Quality CIS 376 Bruce R. Maxim UM-Dearborn.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
CSE 486/586 CSE 486/586 Distributed Systems PA Best Practices Steve Ko Computer Sciences and Engineering University at Buffalo.
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Chapter 15 Projecting Defects( 缺陷预测 ). 山东大学齐鲁软件学院 2 outline  Analyze and use your defect data to help improve both planning accuracy and product quality.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
Galin, SQA from theory to implementation © Pearson Education Limited 2004 Review objectives Formal design reviews (FDRs) Participants Preparations The.
S oftware Q uality A ssurance Part One Reviews and Inspections.
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.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
Unit 8 Syllabus Quality Management : Quality concepts, Software quality assurance, Software Reviews, Formal technical reviews, Statistical Software quality.
CSCE 548 Code Review. CSCE Farkas2 Reading This lecture: – McGraw: Chapter 4 – Recommended: Best Practices for Peer Code Review,
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
CS 350, slide set 6 M. Overstreet Old Dominion University Spring 2005.
Software Testing Testing types Testing strategy Testing principles.
Disciplined Software Engineering Lecture #7 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
© 1998 Carnegie Mellon UniversityTutorial The Personal Software Process (PSP) The overview of the PSP that follows has been built from material made.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #8 Software Engineering.
Software Engineering Prof. Dr. Bertrand Meyer March–June 2007 Chair of Software Engineering Lecture 2: The Personal Software Process.
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
Security - Why Bother? Your projects in this class are not likely to be used for some critical infrastructure or real-world sensitive data. Why should.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 9 – Quality Management 1INFO636 Week 9.
Chapter 7 Sample Variability. Those who jump off a bridge in Paris are in Seine. A backward poet writes inverse. A man's home is his castle, in a manor.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 8 – Reviews 1INFO636 Week 8.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 7 1 Design and Code Reviews - Overview What are design and code.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
Ch 22 Verification and Validation
SE-280 Dr. Mark L. Hornick 1 Design and Code Reviews Review Checklists.
What Type of Defects are Really Discovered in Code Reviews. Mika V
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
What is Testing? Testing is the process of finding errors in the system implementation. –The intent of testing is to find problems with the system.
Mistakes, Errors and Defects. 12/7/2015Mistakes, Errors, Defects, Copyright M. Smith, ECE, University of Calgary, Canada 2 Basic Concepts  You are building.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
PRODUCT IMPLEMENTATION Chapter 8 Tawatchai Iempairote September 23, 2041.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
© Michael Crosby and Charles Sacker, 2001 Systematic Software Reviews Software reviews are a “quality improvement process for written material”.
Software Engineering Lecture 8: Quality Assurance.
Advances In Software Inspection
Mahindra Satyam Confidential Quality Management System Software Defect Prevention.
CSE 486/586 CSE 486/586 Distributed Systems PA Best Practices Steve Ko Computer Sciences and Engineering University at Buffalo.
CIS 375 Bruce R. Maxim UM-Dearborn
Verification and Validation Overview
Life Cycle Models PPT By :Dr. R. Mall.
Peer Reviews 11/21/2018.
Case Study 1 By : Shweta Agarwal Nikhil Walecha Amit Goyal
Mistakes, Errors and Defects
Presentation transcript:

© 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 data, we can augment our process with his suggestion and measure it and empirically determine if it makes a difference. This will demonstrate how process optimization works using the PSP.

© 2010 John Dalbey Personal versus Team reviews Team reviews: FTR Inspections Walkthroughs Personal reviews “Review” is short for “personal review”. You examine your own work in a structured manner with the intent of finding defects.

© 2010 John Dalbey Evidence of Review Effectiveness Intuitive or anecdotal; most of us know that many of our errors are due to sloppiness or rushed work. Many of these errors would have been found had we double checked our work. Anecdote about slow turnaround time and fast compilers as a bad thing. Optimal time = 20 min.

© 2010 John Dalbey Evidence of Review Effectiveness - cont. Data show that it is much more efficient to find defects in reviews than in testing in unit test, typically only about 2 to 4 defects are found per hour code reviews typically find about 10 defects per hour experienced reviewers can find 70% or more of the defects in a product unit test rarely exceeds a 50% yield PSP data show that reviews find 2 to 5 times as many defects per hour as unit test

© 2010 John Dalbey Defect Removal Comparisons 1997 SEI Study

© 2010 John Dalbey Evidence of Review Effectiveness - cont. After unit test, defect removal becomes much more expensive in integration and system test it takes 10 to 40 programmer hours to find and fix each defect inspections typically take less than an hour per defect Some inspection data O’Neil: 80-90% yield at 25 minutes/defect Philips: 15 minutes/defect versus 8 hours in test

© 2010 John Dalbey Evidence of Review Effectiveness - cont. The reason to eliminate defects as early as possible is because every review, inspection, compile, and test finds only a fraction of the defects thus, the cleaner the code entering a phase, the cleaner it will be on exit. Early defect removal saves time and money! defects cost more to find and fix later in the development process defects cost much more to find and fix after product release

© 2010 John Dalbey Rationale: reviews are direct, testing is indirect p236 Testing produces symptoms Debugging (or defect identification more specifically) is time you spend to get from symptoms to defect. Trivial defects can produce very bizarre symptoms. (Elicit anecdotes). During code reviews we carry a mental construct of the intended solution and it’s easier to spot deviations.

© 2010 John Dalbey Why Reviews are Efficient - 1 In Testing you start with a problem then you must find the bug next, you devise a fix finally, you implement and test the fix With reviews and inspections you see the defect then you devise a fix finally, you implement and review the fix

© 2010 John Dalbey Why Reviews are Efficient - 2 In Testing, the system produces an unusual result, then you must detect that it was unusual figure out what the test program was doing find where it was in your program figure out what defect could cause such behavior You are searching for the unplanned and unexpected. This can take a lot of time.

© 2010 John Dalbey Why Reviews are Efficient - 3 With reviews and inspections you follow your own logic when you find a defect, you know exactly where you are you know what the program should do and did not do you thus know why this is a defect you are therefore in a better position to devise a complete and effective fix

© 2010 John Dalbey Motivation for code reviews May seem solitary, boring, slow, laborious. Try it and convince yourself with your own data. If you don’t strive to produce defect-free work, you probably never will. If you have a habit of sloppy work, you will be unable to produce quality work on the “important” project.

© 2010 John Dalbey The PSP Review Strategy The PSP objective is to produce the highest possible program quality at every process phase The review strategy to achieve this is to gather data on your reviews study these data decide what works best for you adjust your process accordingly This is a continuous learning process using data on your own work.

© 2010 John Dalbey Review Principles 1. Have defined review goals The PSP goal is to find every defect before the first compile or test. 2. Follow a defined review process with entry and exit criteria a review structure guidelines, checklists, and standards 3. Measure (track time and defects) and improve your review process

© 2010 John Dalbey Skip Chapter 9.6 and9.7 CSc 409 does not use design reviews.

© 2010 John Dalbey Other process improvements Other suggestions you might try on your own: write test cases first hand trace (aka “desk check”) single step through code, see if it matches hand trace document first for readability standards asserts and pre/post conditions peer walkthroughs

© 2010 John Dalbey The heart of the review: checklists PSQ code check is not just “double-checking” - it is a formal defined process. Checklists help when the number of items to be checked exceeds our short term memory capacity. Increases probability of covering all items.

© 2010 John Dalbey Checklists When performing precise tasks, it is difficult to do more than one thing well at a time. The checklist defines the review steps in the order suggested for performing them. By checking off each item, you are more likely to perform it properly. Establish a personal checklist that is customized to your defect experience.

© 2010 John Dalbey Using Checklists Follow the order on the checklist. Do one item at a time. Do each item completely. Check each item when complete. Do them the same way every time. Complete the entire checklist for each unit/module separately.

© 2010 John Dalbey Using Checklists (cont.) Do we include coding standards as part of checklist? No, we have an automated style checker. Yes, the style checker doesn't catch all coding standard violations. Consider separating readability standards from semantic ones - indentation, layout, etc, vs if (constant == variable) Consider separate defect category for readability since that affects maintenance

© 2010 John Dalbey Using Checklists (cont.) Take frequent breaks. The work is tedious, breaks help you stay alert. Don’t rush (don’t confuse speed with progress) Suggest limit of 200 LOC/hr. Consider your Review Objectives /motivations.

© 2010 John Dalbey Code review before or after compile? Which do you think is best? Why? (Pro/Con arguments on pp )

© 2010 John Dalbey Building a personal checklist Based on defect log of your actual defects Create a pareto distribution (sorted by frequency) Build a checklist to focus on most prevalent defects first Review periodically add items that you are missing in reviews retain items that you are finding.