DAIMI(c) Henrik Bærbak Christensen1 Reviews Software Inspections.

Slides:



Advertisements
Similar presentations
COMP8130 and 4130Adrian Marshall Verification & Validation INSPECTIONS Adrian Marshall.
Advertisements

Verification and Validation
Software Quality Assurance Plan
Damian Gordon.  Static Testing is the testing of a component or system at a specification or implementation level without execution of the software.
The “Lifecycle” of Software. Chapter 5. Alternatives to the Waterfall Model The “Waterfall” model can mislead: boundaries between phases are not always.
Static Technique. Static Technique - Review  A way of testing software work products  Program code, requirement spec., design spec.  Test plan, test.
©Ian Sommerville 2000Software Engineering. Chapter 22Slide 1 Chapter 22 Verification and Validation.
Verification and Validation: A Quick Introduction Authors Massood Towhidnejad Massood Towhidnejad Mike Rowe Mike Rowe David Dampier David Dampier Sponsored.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
Stepan Potiyenko ISS Sr.SW Developer.
1 Software Testing and Quality Assurance Lecture 2 Software Verification & Validation.
Week 7: Requirements validation Structured walkthroughs Why have walkthroughs When to have walkthroughs Who participates What procedures are helpful Thoughtless.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
SE 555 Software Requirements & Specification Requirements Validation.
CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug.
Course Technology Chapter 3: Project Integration Management.
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
SQA Architecture Software Quality By: MSMZ.
Software Inspections and Walkthroughs By. Adnan khan.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
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 Quality Assurance Lecture #4 By: Faraz Ahmed.
Applying the Inspection Process. What Software Artifacts Are Candidates for Inspection? Software Requirements Software Designs Code Test Plans.
Chapter 14: Inspection  Basic Concept and Generic Process  Fagan Inspection  Other Inspection and Related Activities.
Lecture 16 Formal Technical Reviews (FTRs) (also know as inspections) FOR0383 Software Quality Assurance 9/19/20151Dr Andy Brooks Don´t review in your.
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.
程建群 博士 (Dr. Jason Cheng) 年 03 月 Software Engineering Part 06.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
1.  Describe an overall framework for project integration management ◦ RelatIion to the other project management knowledge areas and the project life.
Formal Technical Reviews Matt Graham 18 November 2004 EECS 814 University of Kansas.
Jump to first page (C) 1998, Arun Lakhotia 1 Quality Assurance: Reviews and Walkthroughs Arun Lakhotia University of Southwestern Louisiana Po Box
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.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
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.
Unit III Static Testing. static testing Testing of a component or system at requirements or implementation level without execution of any software, e.g.,
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
© Michael Crosby and Charles Sacker, 2001 Systematic Software Reviews Software reviews are a “quality improvement process for written material”.
Software Quality Assurance and Testing Fazal Rehman Shamil.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Reviews Chapter 5 Applied Software Project Management, Stellman & Greene See also:
VERIFICATION AND VALIDATION TECHNIQUES. The goals of verification and validation activities are to assess and improve the quality of the work products.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Software inspections l Involve people examining the source representation with.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Software Project Management Lecture # 12. Outline Quality Management ( chapter 26 - Pressman )  SQA  Who does it?  SQA Activities  Software reviews.
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.
1 Software Testing and Quality Assurance Motivation and Review of Software Verification & Validation (2)
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Quality Control and Quality Assurance: Introduction
Software Configuration Management (SCM)
CSC 480 Software Engineering
Verification and Validation
Verification and Validation
Lecture 09:Software Testing
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.
WALKTHROUGH and INSPECTION
Software Reviews.
Testing, Inspection, Walkthrough
Chapter 10: Testing and Quality Assurance
Role Based Peer Reviews A. Winsor Brown Oct. 2, 2009
Presentation transcript:

DAIMI(c) Henrik Bærbak Christensen1 Reviews Software Inspections

DAIMI(c) Henrik Bærbak Christensen2 The Two Aspects Testing has two conflicting goals to detect defects “be as mean as possible” to ensure quality “be as nice as possible” These goals can be supported by two radically different types of analysis –Static analysis –Dynamic analysis

DAIMI(c) Henrik Bærbak Christensen3 Static Analysis –the “module view” in software architecture –Read artefacts: code, UML/design, requirements, etc. –by humans: developers, architects, testers, customers,... tools: parsers, compilers, static analysis tools,... –when there is something to read, that is, early!

DAIMI(c) Henrik Bærbak Christensen4 Dynamic Analysis –the “execution (component-connector) view” –Execute artefacts: code, (formal models) –by humans: testers, developers tools: automatic test cases, capture/replay tools, formal verification tools –when artefacts are executable, that is, late!

DAIMI(c) Henrik Bærbak Christensen5 Classification? Is static analysis (reviewing) a testing activity? Burnstein: –Yes – testing is whatever technique applicable to detect defects and estimate quality Many others (including me?): –No – testing is by definition execution-based and thus a dynamic technique

DAIMI(c) Henrik Bærbak Christensen6 Reviews A review is a matter of reading material. Reviews have a number of advantages to other detection techniques, like testing. It can be made early! No need for running code

DAIMI(c) Henrik Bærbak Christensen7 Review Types Review is reading material with the intent of finding defects and assess quality. Review is the “superclass” of more specific types of material reading processes –Inspection: Highly formalized process whose result is a written report. –Walk-through: Informal process whose result is often simply learning.

DAIMI(c) Henrik Bærbak Christensen8 Review Focus Reviews are means to –identify parts that must be improved contains defects –identify parts that do not need improvement quality assurance –identify specific anomalies more broad than defects –ensure conformance to organizational standards readability, etc.

DAIMI(c) Henrik Bærbak Christensen9 Review Advantages Reviews are beneficial because –can be made early –can be made on any type artefact requirements, design, plans, test cases,... –finds other types of defects/anomalies than test documentation defects, standards, naming, –mutual learning across organization tester/developers, junior/senior,... –spot reuse opportunities –awareness of quality issues –more effective test planning –build own checklists and review expertice

DAIMI(c) Henrik Bærbak Christensen10 A Code Related Advantage Review is a one phase approach –does defect detection and localization at the same time! Testing is a two phase approach –broken test detects failure –next debugging/inspection to localize defect

DAIMI(c) Henrik Bærbak Christensen11 Inspections Fagan, 1976, defined a rigorous process for doing review: Inspections. It basically formalizes the review by: –defining stakeholder roles –defining a specific process to be carried out, outlining phases and criteria –defining artifacts to be used in the process … and he reports improved quality with less effort…

DAIMI(c) Henrik Bærbak Christensen12 (Fagan) Roles Each team member has one or more roles: –Author: person that has written the object of inspection (diagrams, specs, code) –Moderator: person that manages and facilitates the process –Scribe: Records the results of the inspection –Inspector: Finds anomalies (faults, omissions, inconsistencies, etc.) Authors are notoriously bad at inspecting own code! But moderator and scribe usually act also as inspectors.

DAIMI(c) Henrik Bærbak Christensen13 (Burnstein) Roles (moderator)

DAIMI(c) Henrik Bærbak Christensen14 Process [Overview:whole team] Preparation:individual Inspection:whole team Rework.author Follow-up:moderator or new inspection Omitted in Burnstein’s outline

DAIMI(c) Henrik Bærbak Christensen15 Process Overview: –describing context and outlining what he has done –the produced object is handed out (code/design…) Preparation: –each participant ‘do their homework’ –reads and tries to understand… –checklists help, so does experience

DAIMI(c) Henrik Bærbak Christensen16 Process Inspection: –the author paraphrases the code/design i.e. not “if (balance > CREDIT_LIMIT)” but “test for the credit limit is exceeded” kind-a-thing –“Every piece of logic is covered at least once, and every branch taken at least once”. –Objective is to find anomalies! –not to: find solutions (beware !!!) make the author appear foolish –Moderator should be very aware of this –Output: written report on the inspection.

DAIMI(c) Henrik Bærbak Christensen17 Process Rework: –Author resolves anomalies Follow-up: –Moderator check that anomalies have been resolved. –If too much has to be reworked (Fagan: > 5%), then a new full inspection is required.

DAIMI(c) Henrik Bærbak Christensen18 Artifacts to help Common Error Checklists –i.e. awareness in the inspection team about common pitfalls. –Checklists must relate to the type of document reviewed: code, design, requirements, plans,... –Contains both language independent and language specific parts. Common: Is file open paired with file close in all paths? Specific: C: are there any “if ( x = y ) { … }” or malloc errors? –organization checklists are important to maintain.

DAIMI(c) Henrik Bærbak Christensen19 General Checklist Clearly a document focus

DAIMI(c) Henrik Bærbak Christensen20 General Programming Checklist

DAIMI(c) Henrik Bærbak Christensen21 Programming Language Specific

DAIMI(c) Henrik Bærbak Christensen22 OO checklist You can find checklists in –Cem Kaner: Testing Computer Software (2nd Ed.), International Thomson Computer Press, §4 and Appendix A –Fagan Many are non OO… Dunsmore produced the following OO checklist. IEEE Trans. Software Eng. vol. 29, no. 8, 2003

DAIMI(c) Henrik Bærbak Christensen23 Reporting Inspection output is a written report containing –Comments on all checklist items those of general nature –Summary/Status, signed by all reviewers –Defect list defect class, severity, x-ref to line/page –Review metrics statistical data for process learning –Status: Accept, conditional accept, reject

DAIMI(c) Henrik Bærbak Christensen24 Defect List Defects must of course be documented to be corrected. Burnstein and Fagan suggest severity and defect classes –Type: Shorthand for defect type as defined by checklist –Severity: Major: High impact on quality, must be corrected Minor: Low impact, we may live with it –Classification: Missing, Incorrect, Superfluous –X-ref: Where exactly is the defect in the artefact?

DAIMI(c) Henrik Bærbak Christensen25 Reporting Anomalies must be documented. Example: X/Y/Z X = type Y = missing, wrong, extra Z = severity

DAIMI(c) Henrik Bærbak Christensen26 Reporting IEEE classification of anomalies –missing –extra (superfluous) –ambiguous –inconsistent –improvement desirable –non standard –risk-prone –incorrect –not implementable –editorial

DAIMI(c) Henrik Bærbak Christensen27 Accept Review Accept signals a project milestone –Artefact has required degree of quality –Baseline item for configuration management “release” changes must be approved by configuration mgt board –Project progress has been achieved

DAIMI(c) Henrik Bærbak Christensen28 Reject Review Conditional accept/Reject signals non- completion –follow-up phase where anomalies are corrected –must go through a new formal inspection to be accepted.

DAIMI(c) Henrik Bærbak Christensen29 Review Metric Collect data on the review process itself –artefact size –review time, number of persons –defects found –defects not found (those that escaped) found in later reviews, testing, by customer and throw some metrics at it –defects found per hour, etc.

DAIMI(c) Henrik Bærbak Christensen30 Process issues Be aware of the human aspects ! The author easily feels like a “sitting duck”. The purpose is to improve software, not make someone feel uncomfortable! –or boost your ego Thus find the right attitude: –how do we make good software even better?

DAIMI(c) Henrik Bærbak Christensen31 Walk-through “Manual execution” of code –team plays the role of the computer on which the program executes.

DAIMI(c) Henrik Bærbak Christensen32 Discussion Then – why at all spend time on testing ??? Can’t we not just make software inspections ?

DAIMI(c) Henrik Bærbak Christensen33 Summary Review: –reading material to find defects and assess quality –project milestone: artefact accept. Inspection –Formalized process with written report as output –Roles: Moderator, author, recorder, reviewer –Phases: Planning, preparation, meeting, follow-up Artefacts –Checklists: Anomalies that must be checked –Reporting: Defects found, severity, class, x-reference