Kontrola kódu - Code review

Kontrola kódu (někdy označovaná jako peer review ) je činnost zajišťující kvalitu softwaru, při které jeden nebo několik lidí kontroluje program hlavně prohlížením a čtením částí jeho zdrojového kódu , a to po implementaci nebo jako přerušení implementace. Alespoň jedna z osob nesmí být autorem kódu. Osobám provádějícím kontrolu, s výjimkou autora, se říká „recenzenti“.

Ačkoli hlavním cílem je často přímé zjištění problémů s kvalitou, kontroly kódu se obvykle provádějí, aby se dosáhlo kombinace cílů:

  • Lepší kvalita kódu  - zlepšit kvalitu a udržovatelnost interního kódu (čitelnost, uniformita, srozumitelnost atd.)
  • Hledání vad  - zlepšit kvalitu externích aspektů, zejména správnosti, ale také najít problémy s výkonem, zranitelná místa zabezpečení, injektovaný malware, ...
  • Učení / Přenos znalostí  - pomoc při přenosu znalostí o základně kódu, přístupech k řešení, očekáváních ohledně kvality atd .; recenzentům i autorovi
  • Zvýšení pocitu vzájemné odpovědnosti  - zvýšení pocitu vlastnictví a solidarity kolektivního kódu
  • Nalezení lepších řešení  - generujte nápady pro nová a lepší řešení a nápady, které přesahují konkrétní konkrétní kód.
  • Dodržování směrnic QA, ISO / IEC normy  - Code klientů jsou povinné v některých kontextech, například letecký provoz software, bezpečnostně kritický software

Výše uvedená definice kontroly kódu ji vymezuje oproti sousedním, ale samostatným technikám zajištění kvality softwaru : Při statické analýze kódu je hlavní kontrola prováděna automatizovaným programem, při vlastních kontrolách kód kontroluje pouze autor, při testování provádění kódu je nedílnou součástí a programování párů se provádí průběžně během implementace, nikoli jako samostatný krok.

Typy recenzí

Existuje mnoho variant procesů kontroly kódu, z nichž některé budou podrobně popsány níže. Další typy recenzí jsou součástí IEEE 1028

IEEE 1028-2008 uvádí následující typy recenzí:

  • Recenze vedení
  • Technické recenze
  • Inspekce
  • Procházky
  • Audity

Inspekce (formální)

Historicky první proces kontroly kódu, který byl studován a podrobně popsán, jeho vynálezce Michael Fagan nazval „Inspekce“ . Tato Faganova inspekce je formální proces, který zahrnuje pečlivé a podrobné provedení s více účastníky a více fázemi. Formální kontroly kódu jsou tradiční metodou kontroly, při které se vývojáři softwaru účastní řady schůzek a kontrolují kód řádek po řádku, obvykle pomocí tištěných kopií materiálu. Formální kontroly jsou mimořádně důkladné a ukázalo se, že jsou účinné při hledání vad v přezkoumávaném kodexu.

Pravidelná kontrola kódu na základě změn (návody)

V posledních letech zavedlo mnoho průmyslových týmů lehčí typ kontroly kódu. Jeho hlavní charakteristikou je, že rozsah každé kontroly je založen na změnách v základně kódu provedených v lístku, příběhu uživatele, potvrzení nebo jiné pracovní jednotce. Kromě toho existují pravidla nebo konvence, které začleňují úlohu kontroly do procesu vývoje (např. „Každý lístek musí být zkontrolován“), namísto výslovného plánování každé kontroly. Takový proces kontroly se nazývá „pravidelná kontrola kódu na základě změn“. Existuje mnoho variant tohoto základního procesu. Průzkum mezi 240 vývojovými týmy z roku 2017 zjistil, že 90% týmů používá proces kontroly, který je založen na změnách (pokud vůbec používají recenze), a 60% používá běžnou kontrolu kódu založenou na změnách. Také většina velkých softwarových společností, jako je Microsoft, Google a Facebook, postupuje podle procesu kontroly kódu založeného na změnách.

Účinnost a účinnost přezkumů

Průběžná analýza společnosti Capers Jones z více než 12 000 projektů vývoje softwaru ukázala, že míra odhalení skrytých vad formální kontroly je v rozmezí 60–65%. U neformální kontroly je to méně než 50%. Míra odhalení skrytých vad u většiny forem testování je přibližně 30%. Případová studie revize kódu publikovaná v knize Best Kept Secrets of Peer Code Review zjistila, že lehké recenze mohou odhalit tolik chyb jako formální recenze, ale byly rychlejší a nákladově efektivnější v rozporu se studií provedenou společností Capers Jones

Byly také studovány typy vad zjištěných při kontrole kódu. Empirické studie poskytly důkazy o tom, že až 75% defektů kontroly kódu ovlivňuje vývoj a údržbu softwaru spíše než funkčnost, takže kontroly kódu jsou vynikajícím nástrojem pro softwarové společnosti s dlouhými životními cykly produktů nebo systémů. To také znamená, že méně než 15% problémů popsaných v recenzích kódu souvisí s chybami.

Pokyny

Bylo zjištěno, že účinnost kontroly kódu závisí na rychlosti kontroly. Míra kontroly kódu by měla být mezi 200 a 400 řádky kódu za hodinu. Kontrola a kontrola více než několika stovek řádků kódu za hodinu pro kritický software (jako je například bezpečnostní kritický vestavěný software ) může být příliš rychlá na nalezení chyb.

Podpůrné nástroje

Software pro statickou analýzu kódu snižuje úlohu kontroly velkých částí kódu ve vývojáři systematickou kontrolou zdrojového kódu, zda neobsahuje známé chyby zabezpečení a typy defektů. Studie společnosti VDC Research z roku 2012 uvádí, že 17,6% dotázaných softwarových inženýrů v současné době používá automatizované nástroje k podpoře vzájemného hodnocení kódu a 23,7% očekává, že je využije do 2 let.

Viz také

externí odkazy

Reference