Unità 7 / 11

Debugging u Analiżi tal-Ħbit b'Intelliġenza Artifiċjali

Qligħ:

  • Kapaċità li jonqos malajr il-kawżi ewlenin possibbli billi tagħti rekords tal-ħabta (stack traċċi) lill-intelliġenza artifiċjali bil-kodiċi rilevanti u l-kuntest tax-xenarju
  • Kapaċità li ssolvi b'mod permanenti l-kawża ewlenija aktar milli tivvalida d-dijanjosi tal-AI bħala ipoteżi fil-kodiċi u tittestja u sajlens is-sintomu
  • Protecting privacy while debugging by masking personal data in crash records and logs

Kull applikazzjoni tagħti żbalji; Dak li jiddistingwi żviluppatur tajjeb huwa kemm isibu u jiffissaw bugs malajr. Id-debugging mobbli — is-sejba u l-iffissar tas-sors ta 'problema — huwa partikolarment diffiċli minħabba li l-iżball iseħħ fuq it-tagħmir tal-utent, f'ambjent li ma tistax tara. Il-biċċa l-kbira tal-ħin, kull ma għandek huwa reġistru tal-ħabta (log tal-ħabta / traċċa tal-munzell — analiżi teknika ta’ fejn marret l-applikazzjoni meta ġġarraf). L-AI hija estremament qawwija biex taqra dawn ir-rekords kriptiċi, telenka l-kawżi possibbli u tipproponi soluzzjonijiet. F'din l-unità se nitgħallmu kif nużaw l-AI bħala "ditektif tal-bug" iżda nħalluk bir-responsabbiltà li tivverifika d-dijanjosi finali u tiffissa.

Qari tar-reġistru tal-ħabta: Fejn l-AI tiddi l-aktar

A crash log huwa test twil u intimidanti; żviluppatur bla esperjenza mhux se jkun jaf fejn ifittex. AI teżamina dan it-test f'sekondi: f'liema linja ġġarraf, liema eċċezzjoni ġiet mitfugħa, x'inhi r-raġuni possibbli. L-iżbalji komuni tal-mowbajl huma ovvji u l-AI tagħrafhom malajr: NullPointerException (tipprova taċċessa valur null), IndexOutOfBoundsException (aċċess għal element ta 'lista ineżistenti) fuq Android, EXC_BAD_ACCESS (aċċess għal memorja meħlusa) fuq iOS, misjuba bla mistenni nil (sfurzar nul fakultattiv).

L-aktar tipi komuni ta 'ħabtiet mobbli u l-kawżi tipiċi tagħhom huma kif ġej:

Żball (eċċezzjoni)

Pjattaforma

kawża tipika

NullPointerException

Android

Aċċess għal valur null

IndexOutOfBoundsException

Android

Aċċess għal element ta' lista ineżistenti

bla mistenni misjuba xejn

iOS

Forza l-iżball mhux obbligatorju (!)

EXC_BAD_ACCESS

iOS

Aċċess għall-memorja meħlusa

ANR/iffriżar

Android

Ipproċessar twil/tqil fuq il-ħajt prinċipali

Fluss ta' debugging pass pass:

  1. Iġbor ir-rekord. Poġġi flimkien ir-reġistru tal-ħabta, il-messaġġ ta 'żball, u l-passi biex tirriproduċih jekk possibbli.
  2. Agħti l-kuntest tal-AI. Għidli mhux biss l-iżball, iżda l-biċċa ta 'kodiċi rilevanti u dak li ġġarraf tagħmel.
  3. Staqsi għal kawżi possibbli. "Għidli t-3 kawżi l-aktar probabbli u kif tivverifika kull waħda."
  4. Ivverifika. Ikkonferma r-raġuni proposta fil-kodiċi u l-ittestjar; M'għandekx tiffissa dan billi guessing.
  5. Waħħalha u erġa' ttestja. Iċċekkja li l-iżball ikun fil-fatt marret u ma jiġu ġġenerati l-ebda żbalji ġodda.
Tip: Meta tagħti r-reġistru tal-ħabta lill-AI, inkludi wkoll is-snippet tal-kodiċi rilevanti. Biss b'traċċa tal-munzell l-AI tagħmel tbassir ġenerali; Meta tara l-kodiċi, il-probabbiltà li ssib il-linja eżatta u l-kawża reali tiżdied ħafna. Il-kuntest jiddetermina l-kwalità tad-dijanjosi.

Nassa tad-dejta personali

Żkuk u zkuk tal-ħabta ħafna drabi jkun fihom dejta tal-utent: email, ID tal-utent, post, anke kontenut tal-forma. It-twaħħil ta' dan ir-rekord fl-AI kif inhu qed joħroġ dejta personali lill-parti terza u huwa ksur tal-KVKK / GDPR. Ċara (maskra) iż-żoni personali qabel tissottometti r-reġistrazzjoni. Ukoll, oqgħod attent li ma tiktebx data personali fir-reġistri tal-applikazzjoni tiegħek mill-bidu; Ġurnal tajjeb jiddeskrivi l-problema iżda ma jiżvelax l-identità.

Attenzjoni: It-tiswija ssuġġerita mill-AI tista '"sikket il-bug" iżda tista' ma ssolvix il-kawża ewlenija. Pereżempju, it-tgeżwir ta 'NullPointerException b'kontroll null se jwaqqaf il-ħabta, imma jekk ma tifhemx għaliex il-valur huwa null l-iżball loġiku attwali se jkompli. Ittratta l-marda, mhux is-sintomu.

Analiżi tal-kawża ewlenija

L-għan tad-debugging professjonali mhuwiex li jissikket l-iżball iżda li ssib il-kawża ewlenija. Staqsejt lill-AI "għaliex dan jista' jkun null, fejn seta' ntilef fil-fluss tad-dejta?" jistaqsi, “kif insikket dan?” Huwa ħafna aktar siewi milli tistaqsi. Ladarba tinstab il-kawża ewlenija, għexieren ta 'varjazzjonijiet tal-istess żball jiġu solvuti f'daqqa. L-AI hija tajba f'dan ir-raġunament tal-katina: segwi d-dejta mill-input sal-output u staqsiha biex taħseb dwar fejn tkisser.

tliet każijiet żgħar

Każ 1 — 2 sigħat ta 'xogħol f'10 minuti. Żviluppatur qatta' sagħtejn ifittex bug li ġġarraf biss fuq mudell Samsung speċifiku. Agħti r-reġistru tal-ħabta (tnaddaf iż-żoni personali) lill-AI; YZ qal li l-iżball jipponta għal overflow tal-memorja li jseħħ b'riżoluzzjoni tal-kamera differenti ta 'dak l-apparat. Bil-ħjiel, ir-raġuni nstabet f'10 minuti. L-AI aċċellerat it-tfittxija, il-bniedem ivverifika s-soluzzjoni.

Każ 2 — Il-bug imsikkta reġa'. Tim wieħed isikket ħabta rikorrenti billi uża suġġeriment tal-AI biex jipprova jaqbadha. Il-ħabta waqfet, iżda l-utenti bdew jilmentaw li "id-dejta mhix qed tissejvja"; minħabba li l-problema reali (konnessjoni tad-database) kienet għadha hemm, kienet għadha kemm saret inviżibbli. Ladarba l-kawża ewlenija instabet, kemm il-ħabta kif ukoll it-telf tad-dejta ġew solvuti. Lezzjoni: is-sajlenser mhux qed isolvi.

Każ 3 — Data leaked fil-log. Verifika sabet li l-ismijiet sħaħ u n-numri tat-telefon tal-utenti nkitbu fir-reġistri tal-ħabta tal-app. L-iżviluppaturi b'mod rutina pastew dawn ir-zkuk fl-AI u ffissaw bugs; Allura data personali ilha toħroġ xhur. Zkuk ġew mgħottija u l-proċess ġie kkoreġut. Lezzjoni: il-kunfidenzjalità tapplika anke waqt id-debugging.

Pront dgħajjef / Pront qawwi

Pront fqir: "Għaliex iseħħ dan l-iżball? [traċċa tal-munzell]"

Prompt qawwi: "Din il-ħabta qed isseħħ fl-app Android tiegħi. Kuntest:- Waqt li qed tagħmel: utent li jżid mal-karrettun minn dettall tal-prodott- Biss fuq xi apparati, mudelli RAM baxxi- Kodiċi relatat: [Parti ViewModel u Repożitorju]- Log tal-ħabta (data personali mneħħija): [traċċa munzell] Elenka t-3 kawżi l-aktar probabbli. żgur."

Mudelli kopjabbli

Mudell ta' analiżi tal-ħabta: "Analizza l-ħabta li ġejja. Kuntest: [x'qed tagħmel, liema apparat/verżjoni]. Kodiċi rilevanti: [kodiċi]. Registr tal-ħabta (dejta personali mneħħija): [traċċa]. Agħti 3 kawżi ewlenin l-aktar probabbli u verifika + tiswija permanenti għal kull wieħed. Immarka wkoll soluzzjonijiet li jsikket is-sintomu."

Root cause template: "Dan il-valur jiġi [null/falz] bla mistenni. Segwi l-fluss tad-dejta mill-input sa dan il-punt: fejn jista 'jintilef jew korrotta? Għidli fejn għandi niċċekkja f'kull stadju. [kodiċi]"

Mudell ta' qari ta' log: "Interpreta dan l-output ta' log: x'avvenimenti ġraw fl-ordni, fejn tinsab l-anormalità, x'kien l-aħħar pass b'saħħtu qabel l-iżball? [log — data personali mneħħija]"

Mudell ta' riproduzzjoni: "X'passi, stati tal-apparat, u data għandi nipprova nirriproduċi dan l-iżball b'mod affidabbli? Elenka l-kundizzjonijiet li jistgħu jikkawżaw l-iżball f'ordni ta' probabbiltà. [deskrizzjoni]"

Żbalji komuni

  • Tingħata traċċa munzell mingħajr kuntest. Mingħajr kodiċi u xenarju rilevanti, l-AI tagħmel tbassir ġenerali.
  • Twaħħal id-dejta personali fl-AI flimkien ma' zkuk. Ksur tal-kunfidenzjalità; maskra l-ewwel.
  • Isikket is-sintomu. Il-ħabi tal-ħabta bi try-catch tħalli l-problema tal-għeruq u toħloq problemi ġodda.
  • Applika l-ewwel suġġeriment mingħajr ma tivverifikah. Id-dijanjosi tal-AI hija ipoteżi; Ikkonferma fil-kodiċi.
  • Jipprova jirriproduċiha fl-emulatur. Xi żbalji jidhru biss fuq l-apparat/kundizzjoni attwali.
  • Mhux testjar mill-ġdid wara l-korrezzjoni. It-tiswija setgħet kisret xi ħaġa oħra; Iċċekkja r-rigressjoni.

Fil-qosor

Wieħed mill-oqsma fejn l-AI jeċċella huwa l-qari tar-reġistri tal-ħabta u l-issolvi l-kawżi possibbli; Il-kwalità tad-dijanjosi titjieb ħafna meta jingħata l-kuntest. Iżda d-dijanjosi u l-korrezzjoni finali jappartjenu lill-bniedem: is-suġġeriment tal-AI huwa ipoteżi, verifikata fil-kodiċi u l-ittestjar. L-għan mhuwiex li ssikket is-sintomu iżda li ssolvi l-kawża ewlenija; L-iżball imsikkta normalment jirritorna f'forma oħra. Ir-reġistri tal-ħabta jista' jkun fihom data personali; Maskraha qabel tagħtiha lill-AI u tiktebx data personali fir-reġistri tiegħek mill-bidu.

Kompitu ta' applikazzjoni

Ħu log tal-ħabta li għandek (jew il-kampjun li tiġġenera mill-AI), maskra kwalunkwe dejta personali/distinttiva fiha, u agħtiha lill-AI bil-"Crash analysis template". Iddistingwi liema mill-kawżi ewlenin listi AI huma soluzzjoni attwali u liema huma biss sajlenser. Applika t-tiswija permanenti li għażilt u vverifika li l-iżball ikun marret u ma jinqalgħu l-ebda problema ġdida.

lista ta' kontroll

  • [ ] Gejt ir-reġistru tal-ħabta bil-kodiċi rilevanti u l-kuntest tax-xenarju
  • [ ] Ħajt id-dejta personali/distinttiva fir-reġistri
  • [ ] Staqsejt lill-AI għall-kawża ewlenija u l-iffissar permanenti, mhux is-sajlenser
  • [ ] Ivverifikajt id-dijanjosi fil-kodiċi u l-ittestjar, ma applikajtx bl-addoċċ
  • [ ] Wara l-iffissar, ittestjajt li l-iżball kien marret u ma kien hemm l-ebda rigressjoni
  • [ ] Ivverifikajt li l-applikazzjoni tiegħi ma tiktebx data personali fir-reġistri tagħha