Hagnaður:
- Geta til að lýsa villu til gervigreindar á áhrifaríkan hátt með villuskilaboðum, stafla rekstri og minnsta afritunartilviki
- Geta til að keyra kerfisbundið villuleitarflæði með gervigreind til að finna grunnorsökina með því að setja fram tilgátur og þrengja hana skref fyrir skref
- Geta til að sannreyna að lagfæringin sem gervigreindin lagði til lagaði í raun vandamálið með endurgerð og aðhvarfsprófun
Villuleit er það verkefni að finna út hvers vegna forrit hegðar sér öðruvísi en búist var við og laga það, og það tekur mikinn tíma flestra verkfræðinga. Góð kembiforrit byggist ekki á getgátuleik heldur á kerfisbundinni þrengingu: skýra einkennin, setja fram tilgátu, prófa tilgátuna, komast að rót orsökarinnar. AI er mjög öflugur samstarfsaðili í þessari lotu; En aðeins ef þú gefur honum réttar upplýsingar. Að segja „kóði virkar ekki, laga hann“ neyðir gervigreindina til að giska á og koma með almennar tillögur. Gefðu henni öll villuboðin, staflasporið og minnsta afritunarsýni, og saman muntu finna undirrót.
Í þessari einingu munum við sjá hvernig á að lýsa villu fyrir gervigreind á áhrifaríkan hátt, þrengja tilgátur skref fyrir skref og sannreyna með aðhvarfsprófun að fyrirhuguð lagfæring leysi vandamálið í raun. Mundu: „að laga“ villu og „bæla einkenni villunnar“ eru tveir ólíkir hlutir; Leiðrétting sem gerð er án þess að finna grunnorsök færir villuna á annan stað.
Hugtök: Stack trace: Afrit sem sýnir hvaða aðgerðir voru kallaðar í hvaða röð þegar villan kom upp. Lágmarks repro: Einfaldasti, stysta kóðinn/inntakið sem kallar fram villuna. Orsök: Raunveruleg uppspretta vandans, ekki einkennin. Aðhvarfsprófun: Prófun sem tryggir að sama villa endurtaki sig ekki.
Lýsir villu í gervigreind
Líkurnar á því að gervigreind finni rót orsökarinnar eru í beinu hlutfalli við gæði upplýsinganna sem þú gefur upp. Góð villulýsing inniheldur: hvað þú reyndir að gera, hverju þú varst að búast við, hvað gerðist, nákvæmur villutexti og staflaspor, kóðann sem um ræðir, umhverfið (tungumál/útgáfa/OS) og minnsta sýnishornið sem framkallaði villuna.
- Skýrðu einkennin. Á sniðinu "Væntanlegt X, raungert Y".
- Límdu allan villutextann og stafla rekja. Ekki stytta það, ritskoða það, en ekki brjóta uppbygginguna.
- Gefðu minnstu endurgerð. Lágmarksinntak og kóði sem kallar fram villuna.
- Tilgreindu umhverfið. Tungumálaútgáfa, bókasafnsútgáfa, keyrsluumhverfi.
Skilvirk villulýsing: "Ég er að kemba villu. Upplýsingar:- Það sem ég er að reyna að gera: [X]- Vænt hegðun: [Y]- Raunveruleg hegðun: [Z]- Full villuskilaboð og staflaspor: [líma]- Umhverfi: [tungumál/útgáfa, bókasafn/útgáfa]- Lágmarkskóði sem kemur til greina: [kóði] Ekki segja mér hvaða rótarleiðir eru líklegar í beinni 3 röð. athugaðu til að staðfesta fyrir hvern."
Minnkun flæðis eftir tilgátu
Kerfisbundin kembiforrit er listin að útrýma möguleikum einn af öðrum. Notaðu gervigreind til að búa til tilgátur og hannaðu tilraunina til að prófa hverja tilgátu; Keyrðu síðan tilraunina og skilaðu niðurstöðunni. Þessi hringrás er miklu hraðari en venjan að gera tilviljunarkenndar breytingar og hætta, sem kallast "haglabyssuleit".
Hjálparkvaðning fyrir tvöfalda leit (tvöfaldur): "Þessi villa var ekki til staðar í gær, hún er til staðar í dag. Ég vil komast að því hver af síðustu 20 breytingunum leiddi villuna með bisect. Gefðu mér skref-fyrir-skref áætlun: hvaða punkt ætti ég að prófa, í hvaða helming ætti ég að fara eftir niðurstöðunni. Segðu mér líka nákvæmlega hvað ég á að athuga í hverju skrefi."
Innsetningaráætlun um innsetningarskrá: "Ég get ekki fundið villuna vegna þess að ég get ekki séð milligildin í þessari aðgerð. Segðu mér á hvaða stöðum ég þarf að bæta við loglínum sem prenta hvaða breytur. Bættu við 'hvað mun ég læra af þessum annál' útskýringu fyrir hverja skráningu. Tilgreindu einnig viðvaranirnar sem koma í veg fyrir að ég skrái trúnaðargögn."
Ábending: Ef þú getur ekki leyst villu, er vandamálið oftast einhvers staðar sem þú hefur rangt gert ráð fyrir. Spyrðu gervigreindina „hvaða forsenda mín gæti verið röng? Að spyrja mun brjóta blindu þína. Erfiðustu mistökin leynast á þeim stað þar sem þú segir "ég er viss um að þetta virkar rétt".
Veik kvaðning / sterk kvaðning
WEAK:"Kóðinn minn gefur villu, laga hana: [200 línur af kóða]"(Niðurstaða: gervigreind veit ekki hvaða villa það er, hvað er gert ráð fyrir; hann gefur almennar tillögur byggðar á getgátum, flestar eru gagnslausar.)STERKT:"Ég fæ NullPointerException. Væntanleg: notendalisti ætti að skila. Raunverulegt: Sprengur við símtal til getUsers: tranpa1. Java. Lágmark: tranEnvir1.(). endurtekning: Það gerist þegar notendalistinn er tómur, en ekki þegar hann er fullur. Tengdar 15 línur: [kóði] Útskýrðu grunnorsökina og hvers vegna tómur listi er ræstur.
Öflug hvetja setur villuna í samhengi: í því tilviki gerist hún (tómur listi), í því tilviki gerist hún ekki (heill listi). Þessi eina vísbending ("gerist þegar tóm") bendir næstum beint á rót orsökarinnar. Þar sem þessar upplýsingar eru ekki tiltækar í veiku hvetjunni gerir gervigreind blinda getgátu.
Staðfestir lagfæringuna
Lagfæring er aðeins raunveruleg lagfæring ef hún gerir þrennt:
stjórna
Spurning
Hvernig á að sannreyna
Er villan horfin?
Virkar sama færslan núna?
Keyra lágmarks repro aftur
Engar nýjar villur?
Er eitthvað annað bilað?
Keyrðu alla prófunarsvítuna
Mun það ekki endurtaka sig?
Mun sama villa koma upp aftur?
Bættu við aðhvarfsprófi fyrir þessa atburðarás
Leiðréttingar sem gerðar eru án þess að finna orsökina bæla oft einkennin. Til dæmis, að slökkva á núllvillu með "sleppa ef núll" gerir raunverulega ástæðuna, "af hverju koma gögnin núll?" ósýnileg og villan kemur aftur annars staðar.
Mini Cases
Tilfelli 1 - Einkennabælingargildran. Lið þaggar niður einstaka núllvillu með tilraunaveiði; Villan hverfur en eftir 2 vikur virðast gögnin vanta. Raunveruleg ástæðan er sú að þjónusta skilar núll þegar tíminn rennur út. Þegar þú spyrð gervigreind "af hverju er það að verða að engu?", kemur upp orsökin; Raunveruleg leiðrétting tekur 1 klukkustund en er varanleg.
Tilfelli 2 — Lágmarks endurvinnsluafli. Framkvæmdaraðili getur ekki lagað villu sem segir "það hrynur öðru hvoru." Það minnkar villuna í minnstu inntak með tillögu gervigreindar: vandamálið kemur aðeins upp með skráarnöfnum sem innihalda tyrkneska stafi (kóðun villa). Þegar 300 línur af óvissu eru minnkaðar í 5 línur af endanlegri endurskoðun, verður lausnin augljós.
Tilfelli 3 - Andhvarfspróf. AI lagar villu í dagsetningarútreikningi. Verkfræðingurinn er ekki sáttur við þetta; bætir við aðhvarfsprófi fyrir ranga atburðarás (mánaðarlok, 31. janúar + 1 mánuður). Þegar önnur breyting snertir sama svæði 4 mánuðum síðar verður prófið rautt og gallinn veiðist áður en hún nær framleiðslu.
Algeng mistök
- Það þýðir "það er ekki að virka, lagaðu það". Án villutexta, væntinga og endurskoðunar, giskar á gervigreind.
- Ekki gefa staflanum spor. Staflasporið gefur oft bein orsök til kynna.
- Haltu áfram að gera tilviljunarkenndar breytingar. Tilraunir án þess að setja fram tilgátu sóa tíma.
- Að bæla einkennin og missa af grunnorsökinni. Villan endurfæðist annars staðar.
- Tryggir ekki lagfæringuna með aðhvarfsprófun. Sama villa kemur aftur hljóðlaust í framtíðinni.
Í stuttu máli
Árangursrík kembiforrit er kerfisbundin þrenging, ekki ágiskun. Með því að gefa gervigreindinni allan villutextann, staflaspor, lágmarksfjölgun og umhverfisupplýsingar eykur það líkurnar á að finna undirrót. Notaðu gervigreind til að búa til tilgátur og hannaðu tilraunina til að prófa hverja tilgátu; Þú keyrir tilraunina. Íhugaðu að lagfæring sé „gerð“ aðeins þegar þú sérð að villan er horfin, engar nýjar villur eru kynntar og hún er vernduð með aðhvarfsprófun.
Umsóknarverkefni
Íhuga raunverulega eða tilbúna villu. Minnkaðu fyrst villuna í minnstu endurgerð (í hvaða inntak hún á sér stað, þar sem hún gerist ekki). Notaðu árangursríka villuuppskriftarskynið, biddu gervigreindina um 3 rótartilgátur og sannprófunarskref fyrir hverja. Finndu grunnorsökina með því að prófa tilgáturnar eina í einu, lagfærðu hana, skrifaðu síðan og keyrðu aðhvarfspróf fyrir þessa atburðarás til að sýna að villan er horfin og prófið veitir vernd.
gátlisti
- [ ] Ég útskýrði einkennin sem „vænt og að veruleika“.
- [ ] Ég gaf gervigreindinni allan villutextann og staflasporið.
- [ ] Ég minnkaði villuna í minnstu endurgerð.
- [ ] Með því að prófa tilgáturnar eina af annarri fann ég undirrót.
- [ ] Í stað þess að bæla einkennin lagaði ég grunnorsökina.
- [ ] Ég bætti við og keyrði aðhvarfspróf fyrir sömu villu.