Ieguvumi:
- Iespēja izmantot AI kā sākotnējās pārskatīšanas filtru ar kategorijām un nopietnības atzīmēm
- Spēja filtrēt konstatējumus ar cilvēka prātu, lai pārbaudītu/viltus pozitīvus/piemērotu
- Spēja ieviest cilvēku apstiprinājuma prasības biznesa noteikumiem, arhitektūrai un drošībai kritiskiem lēmumiem
Koda pārskatīšana ir tad, kad izstrādātāja rakstītās izmaiņas pirms tās apvienošanas pārskata kāds cits. Labs apskats; Tas agri uztver kļūdas, koplieto informāciju un saglabā koda bāzes konsekvenci. Taču atsauksmes ir nogurdinošas, mēdz novērst uzmanību un kļūst virspusējas laika spiediena ietekmē. Mākslīgais intelekts šeit ir divkāršs palīgs: tas ļauj gan iepriekš notīrīt savu kodu, ko iesniedzat pārskatīšanai, gan ar asāku aci pārbaudīt kāda cita PR (pievilkšanas pieprasījumu).
Būtiskākā atšķirība ir šāda: AI paātrina un uzlabo pārskatīšanu, taču tas nevar uzņemties atbildību par apstiprināšanu. Teikums "AI izskatījās, tas ir tīrs" nav apstiprinājums. Galīgo "apvienošanas" lēmumu pieņem inženieris, kurš zina kodu un kontekstu.
Pārskatā par to, kas AI ir labs un slikts
Piemērots: nulles pārbaudes izlaidumiem, resursu noplūdēm (fails/saite paliek atvērta), nenotverti izņēmumi, acīmredzami nepareizi nosacījumi (>= vietā >), pārdēvēšanas ieteikumi, lasāmība, trūkstošais burts, vienkāršas drošības smakas (piemēram, SQL virknes savienošana), dublikāta koda noteikšana.
Trūkumi: dziļi trūkumi, kas pārkāpj jūsu uzņēmējdarbības noteikumus, bet kuriem nepieciešams konteksts un laiks, piemēram, sintaktiski pareiza loģika, arhitektūras atbilstība, reālas veiktspējas vājās vietas, vienlaicīguma kļūdas. AI rada arī viltus pozitīvus rezultātus (jaukt kaut ko, kas patiesībā nav problēma ar problēmu) un viltus negatīvus (trūkst īstās kļūdas). Tāpēc tā iznākums ir "piesardzības saraksts", nevis galīgs spriedums.
Uzmanību: tas, ka AI saka "nav problēmu", nepierāda, ka kods ir pareizs. Viltus negatīvi ir klusi; Visbīstamākās kļūdas ir tās, kuras recenzijā nekad nav pieminētas.
Sistemātiskas pārskatīšanas soļi
- Dodiet kontekstu. Uzvednei pievienojiet izmaiņu mērķi, attiecīgo problēmu un pieņemšanas kritērijus, ja tādi ir. Bezmērķīga pārskatīšana rada bezmērķīgu interpretāciju.
- Sadaliet to kategorijās. Lūdziet modelim klasificēt konstatējumus kā "kļūda/drošība/veiktspēja/lasāmība/stils"; tāpēc jūs nošķirat kritisko no trokšņa.
- Pieprasiet smaguma etiķeti. Katram atradumam piešķiriet vērtējumu “augsts/vidējs/zems” un iekļaujiet “cēlonis” un “ieteicamais labojums”.
- Filtrējiet to ar savām acīm. Novērtējiet katru atradumu: vai tas ir īsts (pārbaudiet), vai tas ir kļūdaini pozitīvs (rakstiet pamatojumu), vai kaut kā trūkst (pievienojiet savas zināšanas).
- Manuāli pārbaudiet kritiskos ceļus. Pats lasiet un izpildiet maršrutus, kas saistīti ar naudu, identitāti, autorizāciju un datu dzēšanu, nepaļaujoties uz AI.
Trīs mini futrāļi
1. gadījums — konstatēta klusuma nulles kļūda. Vienai komandai bija AI iepriekšēja pārskatīšana 380 rindu PR. Modelis atzīmēja veidu, kā ārējā pakalpojuma atbilde var būt nulle, taču kodā tas netika pārbaudīts. Cilvēka pārskatītājs pārbaudīja šo ceļu un pievienoja nulles pārbaudi; Līdzīga kļūda izraisīja 2 stundu ražošanas pārtraukumu iepriekšējā ceturksnī.
2. gadījums — viltus pozitīva izslēgšana. AI cilpā atzīmēja “iespējamu veiktspējas problēmu”. Recenzents to noslēdza kā kļūdaini pozitīvu, zinot, ka cilpa darbojas tikai ar ne vairāk kā 5 elementiem (tā cilpa pāri enum). Modele, kura nezināja kontekstu, brīdināja; Persona, kas zināja kontekstu, pieņēma pareizo lēmumu.
3. gadījums — AI nokavēta biznesa noteikuma kļūda. Lai gan saskaņā ar kampaņas kārtulu atlaides kontam ir jābūt ne vairāk kā 30%, kods pieļauj 50%. AI nekad nav pamanījis šo sintaktiski perfekto loģisko kļūdu; jo viņš nezināja likumu. Pārskatā kļūdu pamanīja produkta īpašnieks, kurš zināja pieņemšanas kritērijus. Nodarbība: biznesa noteikumu apstiprināšana ir cilvēka darbs.
Četras kopējamas veidnes
Mērķtiecīgs, kategorijās iedalīts pārskats:
Loma: rūpīgs kodu pārskatītājs. Izmaiņu mērķis: {{mērķis / problēma}}Pārskatiet šo atšķirību. Sniedziet konstatējumus šādās kategorijās: [Kļūda] [Drošība][Veiktspēja] [Lasāmība] [Stils]. Katram atradumam: fails:rinda, smaguma pakāpe (augsta/vidēja/zema), cēlonis, ieteicamais labojums. Ja neesat pārliecināts, atzīmējiet "iespējams". Jūs nezināt uzņēmējdarbības noteikumus; Jautājiet man par vietām, kurām ir nepieciešami noteikumi.{{diff}}
Lai sagatavotos sava koda pārskatīšanai:
Pirms PR atvēršanas pārskatiet šīs izmaiņas. Meklējiet: trūkst nulles/bugcheck, resursa noplūde, malas gadījums, noslēpums, nepārbaudīts atzars. Uzskaitiet konstatējumus prioritārā secībā; ieteikt labojumu 1 rindiņai katram.{{code}}
Edge korpusa medības:
Uzskaitiet ievades un situācijas, kurās šī funkcija var nedarboties: tukša, nulle, pārāk liela, negatīva, vienlaicīgs zvans, tīkla kļūda, daļēji dati. Katram gadījumam ierakstiet sagaidāmo darbību un to, ko darīs pašreizējais kods.{{function}}
Drošības smaržu skenēšana (iepriekšēja pārbaude):
Meklējiet šajā kodā izplatītas drošības smakas: SQL/komandu savienošana, nevalidēta ievade, nemainīgs iegultais noslēpums, nedroša deserializācija, privilēģiju pārbaudes trūkums. Sadaliet konstatējumus "noteikti / iespējams / zināšanas". Šī ir sākotnējā pārbaude; Tas nav galīgs nolēmums.{{code}}
Vāja uzvedne / spēcīga uzvedne
Vājš: "Vai šajā PR ir kļūda?"
Spēcīgs: "Mērķis: pievienot kupona atlaidi groza kopsummai (atlaide nedrīkst būt lielāka par 30% — jūs pats nevarat pārbaudīt šo noteikumu, vienkārši pasakiet man, vai kods nosaka augšējo robežu). Izpētiet atšķirību; sniedziet konstatējumus pēc kategorijas + smaguma pakāpes + ieteiktais labojums, atzīmējiet "iespējams", ja neesat pārliecināts. [atšķirība]."
Spēcīgā versija skaidri nosaka AI nolūku, uzņēmējdarbības noteikumus un robežas; Tādējādi tiek iegūti noderīgi atklājumi, un modelim nezināmā zona paliek skaidra.
Veida atrašana
AI uzticamība
vīrieša loma
Trūkst nulles/kļūdas pārbaudes
augsts
Pārbaudiet un piesakieties
Lasāmība/stils
augsts
Izvēlieties pēc izvēles
Vienkārša drošības smarža
vidējs
Pabeigt, skenēt ar transportlīdzekli
Biznesa noteikumu ievērošana
zems
Tas ir pilnībā cilvēciski.
Vienlaicība/arhitektūra
zems
Nepieciešama eksperta pārbaude
AI apskats neaizstāj cilvēku apskatu
Nosakiet AI apskatu kā “pirmo filtru”: lēta, ātra, nenogurstoša sākotnējā caurlaide. Šis filtrs atbrīvo cilvēka recenzenta uzmanību no nesvarīgām detaļām (atstarpes, vārda) un novirza to uz vietām, kas patiešām prasa pārdomāšanu — biznesa noteikums, arhitektūra, drošības rezultāts. Bet apvienošanas apstiprinājums ir atbildīgas personas paraksts komandā. Vismaz viena kompetenta inženiera neatkarīga pārbaude ir obligāta drošībai būtisku izmaiņu gadījumā.
Padoms: izlasiet to atklājumu sarakstu, kurus AI rada kā “lietas, kas jāpārbauda”, nevis kā “jāveic”. Vai nu pārbaudiet un pielietojiet katru vienumu vai vienā teikumā pierakstiet, kāpēc jūs to nokārtojāt; šī izsekošana padara pārskatu revidējamu.
Biežas kļūdas
- Tas nozīmē "AI izskatījās, tas ir tīrs". Tā ir nepatiesa pārliecības sajūta viltus negatīvu iemeslu dēļ.
- Nesniedzot kontekstu. Bez mērķa un pieņemšanas kritērijiem modelis rada tikai virspusējas stila interpretācijas.
- Akli piemērojot viltus pozitīvus rezultātus. Katra modeļa brīdinājuma labošana var sabojāt darbības kodu.
- Jautājot modelim par uzņēmējdarbības noteikumiem. Modelis nezina likumu; Cilvēka ziņā ir to pārbaudīt.
- Nediskriminē vardarbību. Svarīgo drošības konstatējumu un nosaukuma ieteikuma ievietošana vienā maisiņā aizēno to, kas ir svarīgi.
Rezumējot
AI ir nenogurstošs pirmais koda pārskatīšanas filtrs: tas labi uztver nulles/kļūdas kļūdas, malas gadījumus un vienkāršas drošības smaržas; bet tas ir vājš attiecībā uz tādiem konteksta trūkumiem kā biznesa noteikumi, arhitektūra un vienlaicība, un tas rada gan viltus pozitīvus, gan viltus negatīvus. Pieprasiet konstatējumus pēc kategorijas un smaguma pakāpes, filtrējiet katru ar cilvēka inteliģenci, manuāli pārbaudiet kritiskos ceļus. Apstiprinājums vienmēr ir atbildīga inženiera paraksts.
Lietojumprogrammas uzdevums
Atlasiet reālu vai nesenu PR/atšķirību. Pirmkārt, palūdziet AI to pārskatīt, izmantojot veidni “uz objektīvi orientēts, kategoriju pārskats”. Ievietojiet rezultātus tabulā un izlemiet par katru: patiess (es pārbaudīju), kļūdaini pozitīvs (šeit ir mans pamatojums) vai jāīsteno. Pēc tam dodieties ekskursijā pats un mēģiniet atrast vismaz vienu lietu (īpaši biznesa noteikumu vai malas gadījumu), kuras AI trūkst, un pierakstiet to.
kontrolsaraksts
- [ ] Es izmantoju AI pārskatīšanu kā pirmo filtru, nevis apstiprinājumu.
- [ ] Es pievienoju pārskatīšanas uzvednei mērķi un pieņemšanas kritērijus.
- [ ] Es nošķiru secinājumus no trokšņa pēc kategorijas un ļoti vēlos tos.
- [ ] Es apzināti filtrēju katru atradumu, lai apstiprinātu/viltus pozitīvu/piemērotu.
- [ ] Kā cilvēks es pārbaudu biznesa noteikumu un arhitektūras atbilstību.
- [ ] Man ir jāsaņem apstiprinājums no kvalificēta inženiera, lai veiktu drošības ziņā būtiskas izmaiņas.