Code inspecties

Post on 24-Jun-2015

1.029 views 0 download

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?