Kód átvizsgálás (Code review) 2 Irodalom! Jason Cohen: Best kept secrets of peer code review,smart Bear Inc., 2006
3 Célok, el!nyök! Jobb min!ség" kód! jobban karbantartható! Kevesebb hiba a kódban! rövidebb tesztelés! Kóddal kapcsolatos kommunikáció javítása! Kezd! programozók képzése 4 Kód min!ség :)
5 Szoftver folyamatok Kódolás Tesztelés és hibajavítás Kódolás Review Tesztelés és hibajavítás 6 Az átvizsgálás Tervezés Fájlok el!készítése Résztvev!k meghívása Átvizsgálás Hibakeresés Megvitatás Lezárás Fájlok verzió kezelése Átdolgozás Hibajavítás Javítások érvényesítése
7 Az átvizsgálás (folyt.)! Szerepl!k! menedzser! átvizsgálás megtervezése! moderátor! átvizsgálás vezetése! szerz!! átvizsgálandó anyagok biztosítása! átvizsgáló! jegyz! 8 Kódolvasás! Kezdeti áttekintés! kódsorok 80%-a! header scanning! 4-5 soros koncentrált vizsgálat! Back-tracks! deklarációk! ciklusok
9 Kódolvasás (folyt.) Az átvizsgálás kauzális modellje 10 Küls! tényez!k 77% Küls! tényez!k 57% Olvasási id! 35% Hibaszám 23% 8% Kódméret
11 Kódméret 12 Átvizsgálási id!
13 Felkészülés az átvizsgálásra 14 Szociális effektusok! Ego effektus! hatás a fejlesztési stílusra! Kölcsönös tanulás! reviewer is!! Szisztematikus személyes fejl!dés! Sért!dések, Big Brother effektus! Tudatosítani: minél több hiba kiderül, annál jobb
15 Review technikák! Formális átvizsgálás! Váll feletti átvizsgálás! E-mailben átküldéses átvizsgálás! Eszközzel támogatott átvizsgálás! Páros programozás 16 Formális átvizsgálás! Tervezés! Nyitó meeting! Átvizsgálási meetingek! Átdolgozás! Verifikálási meeting! Lezárás! Követ! meetingek! átvizsgálási eljárás javítása
17 Váll feletti átvizsgálás! El!készítés! Átvizsgálás! fejleszt!é a vezet! szerep! hibák feljegyzése! Átdolgozás! Lezárás E-mailben átküldéses átvizsgálás 18! Kód elérhet!vé tétele! automatizált folyamat (SCM)! reviewerek értesítése! Átvizsgálás! egyéni értékelés! kérdéses helyzetek feloldása! Átdolgozás! követhet! változtatások a fejleszt!k részér!l! Lezárás
Eszközzel támogatott átvizsgálás 19! Automatizált fájl kigy"jtés! Kombinált megjelenítés! Változások! Megyjegyzések, threaded kommunikáció! Hiba követés! Automatizált metrika gy"jtés! kloc/h! hiba találat/h! hiba/kloc! Integrálás IDE-kkel 20 Objektum orientált technikák! Ellen!rz! listás átvizsgálás! hibamodell alapú ellen!rzés! Szisztematikus átvizsgálás! osztály hierarchia alkalmas részének átvizsgálása (el!készítés)! Use-case átvizsgálás! átvizsgálás kód felhasználás alapján
21 Könny" súlyú peer review! Review el!nyök megtartása, ráfordítás csökkentése! Workflow integrálás! Speciális eszköz támogatás! átvizsgálási szabályok betartása! metrika gy"jtés! jelentés generálás! tool integrálás Könny" súlyú peer review (folyt.) 22! Forrás kód el!készítés egyszer"sítése! Átvizsgálási folyamat nyomonkövetése! Javítások nyomonkövetése! Közvetlenül elérhet! metrikák! Térben és id!ben elosztott átvizsgálás
Speciális kollaborációs eszközök 23 CodeCollaborator Speciális kollaborációs eszközök (folyt.) 24 CodeCollaborator