Code inspecties

19
Code-inspecties Ronald Harmsen Frank Oppedijk

Transcript of Code inspecties

Page 1: Code inspecties

Code-inspecties

Ronald HarmsenFrank Oppedijk

Page 2: Code inspecties

Agenda Inleiding

Introductie IfSQ-Level 1 (6 indicatoren) Hands-on: inspectie Level 1

Introductie IfSQ-Level 2 (12 indicatoren) Hands-on: inspectie Level 2

IfSQ-Level 2: nog 3 indicatoren Vragen & discussie

Page 3: Code inspecties

Waarom?

Fouten vinden in bestaande code Fouten voorkómen – door verhoging

van kwaliteit van toekomstige code Inzicht krijgen in betrouwbaarheid en

onderhoudbaarheid

Page 4: Code inspecties

Voordelen en nadelen Geïnspecteerde software levert half zoveel rework op Geïnspecteerde software kost 90% minder onderhoud Inspectie vindt 60% meer fouten dan testen Inspectie is 4x meer effectief dan testen Developers die code inspecteren zijn minimaal 20%

productiever

Code-inspecties kosten tijd Code-inspecties zijn saai Code-inspecties kunnen negatief werken op de sfeer

in het team

Page 5: Code inspecties

Soorten code-inspecties

Formeel Lightweight

Page 6: Code inspecties

Formele code-inspectie

Bijv. Fagan-inspecties Meerdere rollen en fasen Effectief

Defect Removal Efficiency ~60% Ter vergelijking: DRE van testen: 35%

Tijdrovend (sneuvelt daardoor vaak)

Page 7: Code inspecties

Lightweight code-inspectie

Bijv. ‘walkthrough’, pair-programming Informeel Sneller Minder effectief (DRE ~50%) Minder efficiënt? (Formele inspecties

meer gefocused; betere payoff)

Page 8: Code inspecties

IfSQ

Formeel proces; objectief Snel Op papier

Page 9: Code inspecties

IfSQ: 3 levels

Level-1: 6 indicatoren (1 min/pagina) Level-2: 12 (15) indicatoren (3

min/pagina) Level-3: 19 indicatoren (5 min/pagina)

Page 10: Code inspecties

IfSQ Level-1: indicatoren Work In Progress

WIP-1—Vague "To Do" WIP-2—Disabled Code WIP-3—Empty Statement Block

Structured Programming SP-1—Routine Too Long SP-2—Nesting Too Deep

Single Point of Maintenance SPM-1—Magic Numbers

Page 11: Code inspecties

IfSQ Level-1: proces

Page 12: Code inspecties

IfSQ Level-1: hands-on

Voer inspectie uit op uitgereikte code Level-1 20 minuten

Noot: indicatoren Level-1 staan in boekje en op Quick Reference Card

Page 13: Code inspecties

IfSQ Level-1: hands-on Resultaten code-inspectie:

WIP-1—Vague "To Do":2 WIP-2—Disabled Code: 38 WIP-3—Empty Statement Block: 5

SP-1—Routine Too Long: 10 SP-2—Nesting Too Deep: 0

SPM-1—Magic Numbers: 31

Page 14: Code inspecties

IfSQ Level-2: 6 extra indicatoren

Structured Programming SP-3—Routine Too Complex

Single Point of Maintenance SPM-2—Magic Strings SPM-3—Copy/Paste Programming

Defensive Programming DP-1—Parameter Not Checked DP-2—Status Ignored After Call DP-3—Unexpected State Not Trapped

Page 15: Code inspecties

IfSQ Level-2: proces

Page 16: Code inspecties

IfSQ Level-2: hands-on

Voer inspectie uit op zelf meegebrachte code

Level-2 30 minuten

Noot: indicatoren Level-2 staan op Quick Reference Card

Page 17: Code inspecties

IfSQ Level-2: rating Bereken defect indicators per 1000 LOC Bepaal vervolgens de rating:

count/kLOC (min.) count/kLOC (max.) rating

0 0 10

1 1 9

2 4 8

5 9 7

10 19 6

20 49 5

50 99 4

100 199 3

200 499 2

500 999 1

1000 unlimited 0

Page 18: Code inspecties

IfSQ Level-2

Nog 3 indicatoren Minder objectief

CfC-NC—Not Complete CfC-WR—Wrong Result CfC-HtM—Hard to Maintain

Page 19: Code inspecties

Vragen?