Code inspecties
-
Upload
devnology -
Category
Technology
-
view
1.025 -
download
0
Transcript of Code inspecties
Code-inspecties
Ronald HarmsenFrank Oppedijk
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
Waarom?
Fouten vinden in bestaande code Fouten voorkómen – door verhoging
van kwaliteit van toekomstige code Inzicht krijgen in betrouwbaarheid en
onderhoudbaarheid
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
Soorten code-inspecties
Formeel Lightweight
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)
Lightweight code-inspectie
Bijv. ‘walkthrough’, pair-programming Informeel Sneller Minder effectief (DRE ~50%) Minder efficiënt? (Formele inspecties
meer gefocused; betere payoff)
IfSQ
Formeel proces; objectief Snel Op papier
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)
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
IfSQ Level-1: proces
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
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
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
IfSQ Level-2: proces
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
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
IfSQ Level-2
Nog 3 indicatoren Minder objectief
CfC-NC—Not Complete CfC-WR—Wrong Result CfC-HtM—Hard to Maintain
Vragen?