software inspections and walkthroughs

28
1 Software Inspections Software Inspections and Walkthroughs and Walkthroughs Author: A. Frank Ackerman Author: A. Frank Ackerman Presented by Cynthia Presented by Cynthia Johnson Johnson EEL6883 EEL6883

Upload: ngotuyen

Post on 01-Jan-2017

228 views

Category:

Documents


3 download

TRANSCRIPT

11

Software Inspections Software Inspections and Walkthroughsand WalkthroughsAuthor: A. Frank AckermanAuthor: A. Frank AckermanPresented by Cynthia JohnsonPresented by Cynthia JohnsonEEL6883EEL6883

22

Software InspectionsSoftware Inspections ““Software Inspections are a disciplined Software Inspections are a disciplined

engineering practice for detecting and engineering practice for detecting and correcting defects in software artifacts, correcting defects in software artifacts, and preventing their leakage into field and preventing their leakage into field operations.” Don O'Neill, Don O' Neill operations.” Don O'Neill, Don O' Neill Consulting for SEIConsulting for SEI

33

Software WalkthroughsSoftware Walkthroughs a form of a form of software peer reviewsoftware peer review "in which a "in which a

designer or programmer leads members of the designer or programmer leads members of the development team and other interested parties development team and other interested parties through a software product, and the through a software product, and the participants ask questions and make participants ask questions and make comments about possible errors, violation of comments about possible errors, violation of development standards, and other problems" (development standards, and other problems" (IEEEIEEE Std. 1028-1997, Std. 1028-1997, IEEE Standard for IEEE Standard for Software ReviewsSoftware Reviews, clause 38. , clause 38.

44

What’s the difference?What’s the difference? An inspection is a more formal process An inspection is a more formal process

than a walkthrough used to collect than a walkthrough used to collect metrics or statistics about the software metrics or statistics about the software processprocess

Walkthrough is a more informal version Walkthrough is a more informal version of an inspectionof an inspection

55

Why inspect software?Why inspect software? Routine production of reliable software within Routine production of reliable software within

budget and on schedule continues to elude budget and on schedule continues to elude most development organizations.most development organizations.

While efforts are ongoing to make development While efforts are ongoing to make development an industrial process, much of the work is still an industrial process, much of the work is still done by “intellectual artisans”done by “intellectual artisans”

Artisan’s work is inherently difficult to bond and Artisan’s work is inherently difficult to bond and can not be specified precisely.can not be specified precisely.

Inspections are a method to reduce variability Inspections are a method to reduce variability and tighten process control.and tighten process control.

66

History of InspectionsHistory of Inspections M.E. Fagan of IBM first defined M.E. Fagan of IBM first defined

inspections in 1976.inspections in 1976. E. Yourdon was among the first to E. Yourdon was among the first to

publish a book on inspections in 1978.publish a book on inspections in 1978. IEEE standard covering inspections first IEEE standard covering inspections first

appeared in 1988.appeared in 1988.

77

What do inspections What do inspections cover?cover?

Inspections and walkthroughs are Inspections and walkthroughs are primarily intended to discover defects in primarily intended to discover defects in software artifacts.software artifacts.

This is a static analysis technique of This is a static analysis technique of software testing.software testing.

In addition, inspections address three In addition, inspections address three major tasks of process management: major tasks of process management: planning, measurement, control.planning, measurement, control.

88

Inspection metricsInspection metrics Inspections are used to collect quantitative Inspections are used to collect quantitative

quality data at defined points in the quality data at defined points in the development process.development process.

This can be used to give feedback to the This can be used to give feedback to the developers, feed-forward to future developers, feed-forward to future development, and feed-into future steps of development, and feed-into future steps of process.process.

Can also provide data on effectiveness of Can also provide data on effectiveness of inspection techniques.inspection techniques.

99

What can be inspected?What can be inspected? Inspections can be held a various points Inspections can be held a various points

in development process.in development process. Fagan recommended inspections on:Fagan recommended inspections on:

Detailed designDetailed design Cleanly compiled codeCleanly compiled code Completion of unit testCompletion of unit test

1010

Who is involved?Who is involved? At a minimum a formal inspection At a minimum a formal inspection

includes:includes: Designated moderatorDesignated moderator Author of the workAuthor of the work At least one peer inspectorAt least one peer inspector

Walkthroughs generally do not include Walkthroughs generally do not include designated moderator and are often led designated moderator and are often led by the author of the software.by the author of the software.

1111

Steps of inspectionSteps of inspection PlanningPlanning OverviewOverview PreparationPreparation MeetingMeeting ReworkRework Follow-upFollow-up

1212

PlanningPlanning Planning begins when entry criteria for Planning begins when entry criteria for

inspection type is met.inspection type is met. Moderator is selected – usually a peer or Moderator is selected – usually a peer or

technical leadertechnical leader Selection may be made by developer, but this Selection may be made by developer, but this

is generally not an ideal situationis generally not an ideal situation Management is encouraged not to look at Management is encouraged not to look at

individual inspection resultsindividual inspection results Moderator verifies that product meets entry Moderator verifies that product meets entry

criteria and schedules future steps.criteria and schedules future steps.

1313

OverviewOverview Presentation to inspectors with any Presentation to inspectors with any

background information needed to background information needed to properly review software product.properly review software product.

Purpose is educational onlyPurpose is educational only Data collected is author preparation time Data collected is author preparation time

and time spent on presentation.and time spent on presentation.

1414

PreparationPreparation Individual activityIndividual activity Author collects all material required for Author collects all material required for

inspectioninspection Inspectors study the material and Inspectors study the material and

complete inspection log.complete inspection log. Defects are noted at this step, but not Defects are noted at this step, but not

collectedcollected

1515

MeetingMeeting Meeting is conducted by moderatorMeeting is conducted by moderator Agenda includes:Agenda includes:

IntroductionIntroduction Establishing readinessEstablishing readiness Examining material and recording defectsExamining material and recording defects Review defectsReview defects Determine dispositionDetermine disposition DebriefDebrief

Defect data is collected this timeDefect data is collected this time

1616

Common meeting Common meeting problemsproblems

Interpersonal tensions are most likely to arise Interpersonal tensions are most likely to arise at this pointat this point

Experienced moderators can detect and Experienced moderators can detect and defuse this tensiondefuse this tension

The more inspections that occur, the less likely The more inspections that occur, the less likely interpersonal tensions are to interfereinterpersonal tensions are to interfere

Effort should be made by all participants to Effort should be made by all participants to keep emphasis on producing quality product, keep emphasis on producing quality product, not making fault finding personalnot making fault finding personal

1717

ReworkRework Performed by the author in response to Performed by the author in response to

defect disposition determined at meetingdefect disposition determined at meeting

1818

Follow-upFollow-up Moderator verifies that corrections are Moderator verifies that corrections are

mademade Moderator completes inspection Moderator completes inspection

management report and defect summary management report and defect summary reportreport

1919

Inspection RolesInspection Roles Author – developer of work productAuthor – developer of work product Moderator – an inspector responsible for Moderator – an inspector responsible for

organizing and reporting on inspectionorganizing and reporting on inspection Reader – an inspector who guies the Reader – an inspector who guies the

examination of the productexamination of the product Recorder – an inspector who enters all the Recorder – an inspector who enters all the

defects found on the defect listdefects found on the defect list Inspector – Member of inspection team. Often Inspector – Member of inspection team. Often

chosen to represent specific role- designer, chosen to represent specific role- designer, tester, technical writer, SQA, etctester, technical writer, SQA, etc

2020

Inspection as Process Inspection as Process ControlControl

When employed at various points When employed at various points through out the process, the completion through out the process, the completion of an inspection can trigger entry into a of an inspection can trigger entry into a new development phase.new development phase.

Generally, Software Development Plan Generally, Software Development Plan spells out entry and exit criteria and spells out entry and exit criteria and required participants in each type of required participants in each type of inspection.inspection.

2121

Aspects of inspectionsAspects of inspections Initial introduction of inspection into an Initial introduction of inspection into an

organization can cause anxiety and organization can cause anxiety and tension among developerstension among developers

When it becomes clear that management When it becomes clear that management supports inspection as a quality supports inspection as a quality improvement technique and not a witch improvement technique and not a witch hunt, the effectiveness of the inspection hunt, the effectiveness of the inspection increases.increases.

2222

Inspection DataInspection Data The collection and analysis of data is The collection and analysis of data is

what sets inspections apart from other what sets inspections apart from other peer review techniques such as peer review techniques such as walkthroughs.walkthroughs.

This data can be used in a variety of This data can be used in a variety of ways by a variety of personnel.ways by a variety of personnel.

2323

Data customersData customers First-line managers – amount of rework First-line managers – amount of rework

generates schedule informationgenerates schedule information Next phase developers or verifiers get Next phase developers or verifiers get

“intelligence” report on status of software“intelligence” report on status of software Quality assurance personnel use data on Quality assurance personnel use data on

amount of material inspected, amount of amount of material inspected, amount of inspection material, speed of examination inspection material, speed of examination to examine inspection effectivenessto examine inspection effectiveness

2424

More data usageMore data usage Quality assurance is responsible for Quality assurance is responsible for

recommending inspection and recommending inspection and preparation rates – actual review data preparation rates – actual review data makes these more realisticmakes these more realistic

Defect rates and types discovered at Defect rates and types discovered at different points can point to most different points can point to most effective place to review. For example, effective place to review. For example, design inspections may prove more cost design inspections may prove more cost effective than code.effective than code.

2525

AlternativesAlternatives There is a “cost of quality” associated with There is a “cost of quality” associated with

walkthroughs and inspections. In software, walkthroughs and inspections. In software, person-hours are the highest measurable person-hours are the highest measurable expenseexpense

Many organizations find that the cost of Many organizations find that the cost of inspection does not generate a return on inspection does not generate a return on investmentinvestment

Some inspect a percentage of codeSome inspect a percentage of code Others inspect only critical portionsOthers inspect only critical portions

2626

ConclusionsConclusions Inspections have been proven an Inspections have been proven an

efficient and effective method for efficient and effective method for improving software qualityimproving software quality

In conjunction with testing, audits and In conjunction with testing, audits and formal verification a successful, quality formal verification a successful, quality product can be producedproduct can be produced

2727

My opinionMy opinion When done correctly, walkthroughs and When done correctly, walkthroughs and

inspections are valuable defect finding tools.inspections are valuable defect finding tools. When not supported by management or bought When not supported by management or bought

into by development personnel, they become into by development personnel, they become “busy work” for developers.“busy work” for developers.

It is important for developers to not take It is important for developers to not take criticism personally.criticism personally.

It is equally important for inspectors to look for It is equally important for inspectors to look for defects and not criticize because developer defects and not criticize because developer didn’t code exactly the way they woulddidn’t code exactly the way they would

2828

ReferencesReferences http://www.sei.cmu.edu/str/descriptions/inhttp://www.sei.cmu.edu/str/descriptions/in

spections_body.htmlspections_body.html IEEEIEEE Std. 1028-1997, Std. 1028-1997, IEEE Standard for IEEE Standard for

Software ReviewsSoftware Reviews