Software Inspections Peer Reviews. Objectives Today –Overview of inspections –Why inspections can help improve your software quality –Mini inspection.

Slides:



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

1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
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 Project Management Lecture # 11. Outline Quality Management ( chapter 26 - Pressman )  Software reviews  Formal Inspections & Technical Reviews.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
Static Technique. Static Technique - Review  A way of testing software work products  Program code, requirement spec., design spec.  Test plan, test.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
Code Inspections and Heuristic Evaluation
Code Inspections CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 22, 2007.
SE 555 Software Requirements & Specification Requirements Validation.
 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.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Verification and Validation
1 Software Inspections and Walkthroughs Author: A. Frank Ackerman Presented by Cynthia Johnson EEL6883.
Design Reviews Peer Reviews. Agenda Peer Reviews Participants of Peer Review Preparation for a Peer Review Session The Peer Review Session Post-peer Review.
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Software Inspections and Walkthroughs By. Adnan khan.
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.
Software Testing CS 470. Testing Goal is to find faults What kind of faults? –Algorithmic –Computation and Precision –Documentation –Overload –Capacity.
SoITSSpecifications of IT systems? 1 Specifications of IT systems checking and validating Jens Bennedsen and Peter Gorm Larsen
Software Reviews. Introduction/Motivation When creating written documents, it is a good idea to have someone else proof read your work. Oftentimes an.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 10: Testing and Inspecting to Ensure High Quality Part 4:
Software Inspections. Defect Removal Efficiency The number of defects found prior to releasing a product divided by The number of defects found prior.
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.
Formal and Informal Peer Reviews
Unit 8 Syllabus Quality Management : Quality concepts, Software quality assurance, Software Reviews, Formal technical reviews, Statistical Software quality.
Phil Cronin Anne Hill Allen Schones CIS841 Summer on Campus 1998 IN-PROCESS INSPECTIONS FOR OBJECT ORIENTED DESIGNS.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
Disciplined Software Engineering Lecture #7 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Formal Technical Reviews Matt Graham 18 November 2004 EECS 814 University of Kansas.
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
CHAPTER 9 INSPECTIONS AS AN UP-FRONT QUALITY TECHNIQUE
Quality Assurance IS 101Y/CMSC 101Y November 12, 2013 Carolyn Seaman University of Maryland Baltimore County.
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.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Requirements Management with Use Cases Module 10: Requirements Across the Product Lifecycle Requirements Management with Use Cases Module 10: Requirements.
Inspection and Review The main objective of an Inspection or a Review is to Detect Defects. (Today -there may be some other goals or broader definition.
W 3 L 1 sh 1 TCTI-V2CCPP1-10 C en C++ Programmeren Week 3, les 1 : Inspection (Fagan style)
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.
Test status report Test status report is important to track the important project issues, accomplishments of the projects, pending work and milestone analysis(
Inspection and Review The main objective of an Inspection or a Review is to detect defects. This activity and procedure was first formalized by Mike Fagan.
© Michael Crosby and Charles Sacker, 2001 Systematic Software Reviews Software reviews are a “quality improvement process for written material”.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
Software Engineering Lecture 8: Quality Assurance.
Reviews Chapter 5 Applied Software Project Management, Stellman & Greene See also:
Management of Software Project CSM Review By:Nafas.
Peer Review Presented by : Basker George. Peer ( 同等的人 ) Review( 回顾 ) During the development of software, defects are inevitably ( 不可避免 ) injected. Defect.
Software Project Management Lecture # 12. Outline Quality Management ( chapter 26 - Pressman )  SQA  Who does it?  SQA Activities  Software reviews.
SQA COMPONENTS IN THE PROJECT LIFE CYCLE C HAPTER 8 Dr. Ahmad F. Shubita.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Verification and Validation
Software Documentation
Verification and Validation
Verification and Validation
Inspection and Review The main objective of an Inspection or a Review is to detect defects. (Not for Giving Alternative Solutions) This activity and procedure.
Applied Software Project Management
QA Reviews Lecture # 6.
Collaborative Code Construction: Code Reviews and Pair Programming
Software Reviews.
Testing, Inspection, Walkthrough
Presentation transcript:

Software Inspections Peer Reviews

Objectives Today –Overview of inspections –Why inspections can help improve your software quality –Mini inspection in preparation for actual inspections Coming up after next week –Conduct actual inspections (or heuristic evaluation) –Same order as presentations

Presentation Order Subject to change Thursday, March 26 –Jazon Burnell –Chris Ochap Tuesday, March 31 –Ian Roskam –Dmitry Korobov –Michael Burnham Thursday, April 2 –Julian Bertmaring –Shawn Rivera / Matt Rykaczewski –Collin Schroeder

Why inspections? Inspections can be applied to many different things by many different groups Inspections are a “Best Known Method” (BKM) for increasing quality –Developed by Michael Fagan at IBM, paper published 1976 –Estimates: Inspections of design and code usually remove 50-90% of defects before testing –Very economical compared to testing Formal inspections are more productive than informal reviews

Formal Inspections By formalizing the process, inspections become systematic and repeatable –Each person in the inspection process must understand their role –Use of checklists focus concentration on detection of defects that have been problematic Metrics –Feedback and data collection metrics are quantifiable –Feed into future inspections to improve them Designers and developers learn to improve their work through inspection participation

More reasons to use inspections Inspections are measurable Ability to track progress Reduces rework and debug time Cannot guarantee that a deadline will be met but can give early warning of impending problems Information sharing with other developers, testers

Definition What is an inspection? –A formal review of a work product by peers. A standard process is followed with the purpose of detecting defects early in the development lifecycle. Examples of work products –Code, Specs, Web Pages –Presentations, Guides, Requirements, –Specifications, Documentation

When are inspections used? Possible anytime code or documents are complete –Requirements: Inspect specs, plans, schedules –Design: Inspect architecture, design doc –Implementation: Inspect technical code –Test: Inspect test procedure, test report

Defects A defect is a deviation from specific or expected behavior Something wrong Missing information Common error Standards violation Ambiguity Inconsistency Perception error Design error Inspections are used to find defects

A defect is a defect A defect is based on the opinion of the person doing the review –This means that any defect that is found IS a defect –Not open to debate –Not all defects are necessarily bugs –Many defects may not be “fixed” in the end No voting or consensus process on what is a defect How to fix a defect should be debated later, not when the defects are logged

Other Review Methods PresentationWalkthroughInspection What Present idea or proposal Technical presentation of work Formal review by peers Audience Mgmt/TechTech Objective Provide Info, Evaluate specs or plan – Give Status Explain work, may find design or logic defect - Give context Find defects early - Find defects

Other Defect Detection Methods BuddyTestingInspection What Developers work in pairs Formal testingFormal review by peers Audience Tech Objective Develop, explain work, find defects Find defects by symptom, usability, performance Find defects where they occur

Why a formal review? Provides a well-defined process –Repeatability, measurement –Avoids some scenarios with less formal processes “My work is perfect” –Point is not to criticize the author “I don’t have time” –Formal process proceeds only when all are prepared, have inspected code in advance –We’ll actually do a mix of inspection an walkthrough

Walkthrough vs. Inspection WalkthroughInspection FocusImprove productFind defects ActivitiesFind defects Examine alternatives Forum for learning Discussion Find defects Only defect explanation allowed Learning through defects and inspection ProcessInformalFormal QualityVariable; personalities can modify outcome Repeatable with fixed process TimePreparation ad-hoc, less formal Preparation required, efficient use of time

What should be inspected? For existing code or documentation, select –The most critical piece to the program’s operation –Most used section –Most costly if defects were to exist –Most error-prone –Least well-known –Most frequently changed For new code or documentation –20% <= inspect <= 100%

Inspection Process

Typical Inspection Process Planning 45 mins Prep mins Log Defects mins Rework Follow-Up

Our Inspection Exercise Owner Planning mins Walkthrough 2-5 mins Inspect and Log Defects mins Rework ? mins Inspector Code Review mins Individual Group

Roles Moderator Scribe Work Owner Inspectors

Owner Planning Owner decides what code/documents to review –Should include relevant requirements –Common-errors list One should be provided by the moderator Owner can include more specific common errors For you: coding techniques posted on website, bug list as well –Copy of code listing for everyone Send me code at least two days before the inspection date and I’ll post it on the calendar page for everyone to get Not all code, just the selected code (see previous slide on “What should be inspected?”) Up to owner’s discretion as to what/how much, but we will stop after 25 minutes –Probably about 2-3 pages

Preparation Each inspector should have the materials to inspect in advance –Identify defects on their own to ensure independent thought –Note defects and questions –Complete a defect log High/Medium/Low –Without this preparation, group review might find only 10% of defects that could otherwise be found (Fagan) Rules of thumb –2 hours for 10 full pages of text

Preparation – Our Exercise Too many projects/would take too much time to perform detailed inspection for all our projects Compromise – Shorter inspection plus a walkthrough - enough to give you a flavor of inspections, still be useful –Everyone should prepare by examining code before the class and noting defects –Owner will provide brief walkthrough May spur inspectors to note new defects –Scribe will log defects in real-time after walkthrough is made

Common Defects See handouts on web –C++ –Java Anything we discussed in class –Code techniques E.g. variable names, location, initialization, refactoring, defensive programming, error checking, magic numbers, loop length, etc. –Security –Usability –Etc. Similar issues apply to other languages

Walkthrough Prior to walkthrough –Owner sends me the selected code, relevant requirements or other docs –Code posted online –Inspectors have prepared by inspecting the code and noting their defects Process –Owner provides walkthrough for code –Inspectors search for defects –Round-robin where each inspector describes a defect found –Total of minutes in our exercise

Walkthrough Example Requirement: Support authentication based upon using regular expressions 1 /********************************************************* 2 * Returns a 1 if the user is on the ops list, and 3 * returns a 0 if the user is not on the ops list. 4 *********************************************************/ 5 int Authorized(char *user) 6 { 7 FILE *f; 8 9 f=fopen(OPSPATH,"r"); /* open authorized file */ 10 while (fgets(tempstr,80,f)!=NULL) 11 { 12 tempstr[strlen(tempstr)-1]='\0'; /* annoying \r at end */ 13 if (!fnmatch(tempstr,user,FNM_CASEFOLD)) { fclose(f); return(1); } 14 } 15 fclose(f); 16 return(0); 17 } Open file Containing operators Returns true if wildcards match

Defect Logging Performed by the scribe; leaves work owner free to concentrate on other tasks Moderator leads meeting and facilitates process –Keeps discussions to a minimum –Defect understanding only –No criticisms –No “rat holes” –Limited discussion –Moderator has the right to stop discussion at any time –May use round-robin for each inspector Focus is on finding defects –A defect is a defect

Defect Log Severity: H M L Q LocationDescription

Defect Logging High, Medium, Low, or Question Brief description should be ~7 words or less, or until the owner understands If possible, resolve questions: defect or not Also log defects found in –Parent document, e.g. requirements –Common errors list –Work product guidelines Will be up to the work owner whether or not to fix a defect

Causal Analysis Meeting We won’t hold these, but in general they are a good idea Purpose – Brainstorming session on the root cause of specific defects –This meeting supports the continuous improvement –Initiate thinking and action about most common or severe defects –Can help prevent future defects from occurring Specific action items may be achieve this goal

Rework Purpose: Address defects found during the logging process Rules –Performed by product owner –All defects must be addressed Does not mean they are fixed, but that sufficient analysis/action has taken place –All defects found in any other documents should be recorded –Owner should keep work log

Follow-Up Purpose: Verify resolution of defects –Work product redistributed for review –Inspection team can re-inspect or assign a few inspectors to review –Unfixed defects are reported to the team and discussed to resolution We’ll skip this as well, but can be useful for many projects