Egység 4 / 12

Kód áttekintése és hibakeresés

Nyereség:

  • Lehetőség az AI használatára kezdeti felülvizsgálati szűrőként kategóriákkal és súlyossági címkékkel
  • Lehetőség a megállapítások emberi elmével történő szűrésére az ellenőrzés/hamis pozitív/alkalmazás érdekében
  • Képes emberi jóváhagyási követelmények érvényesítésére az üzleti szabályok, az architektúra és a biztonság szempontjából kritikus döntések során

A kódellenőrzés az, amikor egy fejlesztő által írt módosítást valaki más felülvizsgál az összevonás előtt. Jó értékelés; Korán észleli a hibákat, megosztja az információkat, és konzisztensen tartja a kódbázist. A vélemények azonban fárasztóak, hajlamosak a figyelemelterelésre, és az időkényszer miatt felületessé válnak. A mesterséges intelligencia itt kettős asszisztens: lehetővé teszi egyrészt a saját kód előzetes megtisztítását, amelyet felülvizsgálatra küldtél be, másrészt, hogy élesebb szemmel vizsgáld meg valaki más PR-jét (pull request).

A kritikus különbség a következő: az AI felgyorsítja és javítja az ellenőrzést, de nem tudja átvenni a jóváhagyás felelősségét. Az „AI kinézett, tiszta” mondat nem jóváhagyás. A végső „összevonási” döntés egy mérnökön múlik, aki ismeri a kódot és a kontextust.

Mi a jó és mi a rossz az AI-ról?

Jó a következőkhöz: Null ellenőrzés hiányosságai, erőforrás-szivárgás (a fájl/hivatkozás nyitva marad), nem elkapott kivételek, nyilvánvalóan hibás feltételek (>= > helyett), átnevezési javaslatok, olvashatóság, hiányzó éles-betűk, egyszerű biztonsági szagok (például SQL-karakterlánc összefűzése), duplikált kód észlelése.

Gyengeségek: Mély hibák, amelyek megsértik az üzleti szabályt, de kontextust és időzítést igényelnek, mint például a szintaktikailag helyes logika, az architektúra megfelelősége, a valós teljesítmény szűk keresztmetszete, párhuzamossági hibák. A mesterséges intelligencia emellett téves pozitív értékeket is produkál (azt, ami valójában nem probléma, összetéveszt egy problémával) és hamis negatívokat (hiányzik a valódi hiba). Ezért a kimenete egy "figyelmeztető lista", nem pedig egy végleges ítélet.

Vigyázat: Csak azért, mert az AI azt mondja, hogy "nincs probléma", még nem bizonyítja a kód helyességét. A hamis negatívok hallgatnak; A legveszélyesebb hibák azok, amelyeket soha nem említenek a felülvizsgálatban.

Szisztematikus felülvizsgálati lépések

  1. Adja meg a kontextust. Adja hozzá a módosítás célját, a vonatkozó problémát és az elfogadási feltételeket, ha vannak, a prompthoz. A céltalan felülvizsgálat céltalan értelmezést eredményez.
  2. Bontsd kategóriákra. Kérje meg a modellt, hogy a megállapításokat a „hiba/biztonság/teljesítmény/olvashatóság/stílus” kategóriába sorolja; így elkülöníti a kritikusat a zajtól.
  3. Kérjen súlyossági címkét. Minden egyes leletnek adjon "magas/közepes/alacsony" minősítést, és tüntesse fel az "okot" és az "javasolt korrekciót" is.
  4. Szűrje le a saját szemével. Értékelje az egyes leleteket: valódi-e (ellenőrizze), hamis pozitív-e (indoklást írjon), hiányzik-e valami (adja hozzá saját tudását).
  5. Ellenőrizze manuálisan a kritikus útvonalakat. Olvasson és hajtson végre pénzt, személyazonosságot, engedélyezést és adattörlést magában foglaló útvonalakat anélkül, hogy mesterséges intelligenciára támaszkodna.

Három mini tok

1. eset – Silent null error észlelt. Az egyik csapat mesterséges intelligencia előzetesen felülvizsgált egy 380 soros PR-t. A modell megjelölte azt a módot, ahogyan egy külső szolgáltatási válasz nulla lehet, de a kódban ezt nem ellenőrizték. Az emberi felülvizsgáló ellenőrizte ezt az elérési utat, és hozzáadott egy null ellenőrzést; Hasonló hiba az előző negyedévben 2 órás termeléskiesést okozott.

2. eset – Hamis pozitív elimináció. Az AI „lehetséges teljesítményproblémát” jelölt meg egy hurokban. A lektor ezt hamis pozitívként zárta le, mivel tudta, hogy a ciklus legfeljebb 5 elemmel működik (egy enum felett hurkol). A modell, aki nem ismerte a kontextust, figyelmeztetett; Az a személy, aki ismerte a kontextust, helyesen döntött.

3. eset – AI kihagyott üzleti szabály hiba. Míg a kampányszabály szerint a kedvezményszámla maximum 30%-a lehet, addig a kód 50%-ot engedélyezett. Az AI soha nem vette észre ezt a szintaktikailag tökéletes logikai hibát; mert nem ismerte a szabályt. A hibát a termék tulajdonosa kapta el a felülvizsgálat során, aki ismerte az elfogadási feltételeket. Tanulság: Az üzleti szabályok érvényesítése emberi munka.

Négy másolható sablon

Célorientált, kategorizált áttekintés:

Szerep: aprólékos kódellenőr. A változtatás célja: {{cél / probléma}}Tekintse át ezt a különbséget. Adja meg a megállapításokat a következő kategóriákban: [Hiba] [Biztonság][Teljesítmény] [Olvashatóság] [Stílus]. Minden egyes megállapításnál: fájl:sor, súlyosság (magas/közepes/alacsony), ok, javasolt javítás. Ha nem biztos benne, jelölje be a „lehetséges” lehetőséget. Nem ismeri az üzletszabályzatot; Kérdezzen meg olyan helyekről, ahol szabályokra van szükség.{{diff}}

A saját kód felülvizsgálatának előkészítése:

Tekintse át ezt a változást, mielőtt megnyit egy PR-t. Keresse meg: hiányzó null/bugcheck, erőforrás-szivárgás, szélső eset, titkos, teszteletlen ág. Sorolja fel a megállapításokat fontossági sorrendben; javasoljon javítást 1 sort mindegyikhez.{{code}}

Edge case vadászat:

Sorolja fel azokat a bemeneteket és helyzeteket, ahol ez a funkció meghibásodhat: üres, nulla, túl nagy, negatív, egyidejű hívás, hálózati hiba, részleges adat. Minden esetben írja be a várt viselkedést, és azt, hogy mit fog tenni az aktuális kód.{{function}}

Biztonsági illatszkennelés (előszűrés):

Keresse a gyakori biztonsági szagokat ebben a kódban: SQL/parancs-összefűzés, érvényesítetlen bemenet, megváltoztathatatlan beágyazott titok, nem biztonságos deszerializálás, a jogosultságok ellenőrzésének hiánya. A megállapításokat különítse el "bizonyos / valószínű / tudás"-ra. Ez egy előzetes átvilágítás; Ez nem végleges határozat.{{code}}

Gyenge felszólítás / Erős felszólítás

Gyenge: "Van hiba ebben a PR-ban?"
Erős: "Cél: adjon hozzá kuponkedvezményt a kosár végösszegéhez (a kedvezmény nem haladhatja meg a 30%-ot – ezt a szabályt Ön nem tudja ellenőrizni, csak mondja meg, ha a kód felső határt ír elő). Vizsgálja meg a különbséget; adja meg a megállapításokat kategória szerint + súlyosság + javasolt korrekció, ha bizonytalan, jelölje meg a "lehetséges". [diff]"

Az erős változat egyértelműen kimondja az AI szándékát, üzleti szabályát és határait; Így hasznos eredmények születnek, és a modell számára ismeretlen terület tiszta marad.

Típus keresése

AI megbízhatóság

férfi szerepe

Null/hiba ellenőrzés hiányzik

magas

Ellenőrizze és alkalmazza

Olvashatóság/stílus

magas

Válasszon preferencia szerint

Egyszerű biztonsági illat

közepes

Véglegesítse, szkennelje a járművel

Üzleti szabályok betartása

alacsony

Ez teljesen emberi.

Párhuzam/architektúra

alacsony

Szakértői felülvizsgálat szükséges

Az AI Review nem helyettesíti az emberi felülvizsgálatot

A mesterséges intelligencia áttekintése „első szűrőként”: olcsó, gyors, fáradhatatlan előzetes bérlet. Ez a szűrő megszabadítja az emberi értékelő figyelmét a lényegtelen részletektől (egy szóköz, név), és olyan helyekre irányítja, amelyek valóban átgondolást igényelnek – az üzleti szabály, az architektúra, a biztonsági eredmény. Az egyesülés jóváhagyása azonban a csapaton belüli felelős személy aláírása. A biztonság szempontjából kritikus változtatások esetén legalább egy hozzáértő mérnök által végzett független felülvizsgálat kötelező.

Tipp: Olvassa el azon megállapítások listáját, amelyeket az AI produkál „ellenőrizendő dolgokként”, nem pedig „teendőként”. Ellenőrizd és alkalmazd az egyes tételeket, vagy írd le egy mondatban, hogy miért teljesítetted; ez a nyomkövetés auditálhatóvá teszi a felülvizsgálatot.

Gyakori hibák

  • Ez azt jelenti, hogy „Megnéztem, tiszta”. Ez hamis önbizalom érzése a hamis negatívumok miatt.
  • Nem ad kontextust. Cél és elfogadási kritériumok nélkül a modell csak felületes stílusértelmezéseket produkál.
  • Hamis pozitív eredmények vak alkalmazása. A modell minden figyelmeztetésének kijavítása megszakíthatja a futó kódot.
  • A modell megkérdezése az üzleti szabályról. A modell nem ismeri a szabályt; Ezt az embernek kell ellenőriznie.
  • Ne tegyen megkülönböztetést az erőszakkal szemben. Ha egy kritikus biztonsági megállapítást és egy névjavaslatot teszünk egy táskába, az beárnyékolja a fontosat.

Összefoglalva

A mesterséges intelligencia egy fáradhatatlan első szűrő a kód áttekintésében: jól érzékeli a null/error misseket, az éles eseteket és az egyszerű biztonsági szagokat; de gyenge az olyan kontextust igénylő hibákkal szemben, mint az üzleti szabály, az architektúra és a párhuzamosság, és hamis pozitív és hamis negatív értékeket is produkál. Kérjen leleteket kategória és súlyosság szerint, szűrje mindegyiket emberi intelligencia alapján, manuálisan ellenőrizze a kritikus útvonalakat. A jóváhagyás mindig egy felelős mérnök aláírása.

Pályázati feladat

Válasszon ki egy valós vagy friss PR/diff. Először kérje meg az AI-t, hogy vizsgálja felül az „objektív-orientált, kategória-áttekintés” sablonnal. Tedd egy táblázatba a megállapításokat, és mindegyiknél döntsd el: igaz (ellenőriztem), hamis pozitív (íme az érvelésem), vagy végrehajtandó. Ezután tegyen egy kört saját maga, és próbáljon meg legalább egy olyan dolgot (főleg egy üzleti szabályt vagy szélső esetet) találni, amely hiányzik az AI-ból, és írja le.

ellenőrző lista

  • [ ] A mesterséges intelligencia áttekintését első szűrőként használom, nem jóváhagyásként.
  • [ ] A célt és az elfogadási feltételeket hozzáadom a felülvizsgálati prompthoz.
  • [ ] A leleteket a zajtól kategóriánként különválasztom, és erősen kívánom őket.
  • [ ] Minden egyes leletet tudatosan szűrök, hogy megerősítsem/hamis pozitívnak/alkalmazzam.
  • [ ] Emberként ellenőrzöm az üzleti szabályok és az építészeti megfelelést.
  • [ ] A biztonság szempontjából kritikus változtatásokhoz szakképzett mérnök jóváhagyását kérem.