Qazanclar:
- Müvafiq kod və ssenari konteksti ilə süni intellektə qəza qeydləri (yığın izləri) verməklə mümkün əsas səbəbləri tez bir zamanda daraltmaq bacarığı
- AI diaqnozunu kodda bir fərziyyə kimi təsdiqləmək və simptomu sınamaq və susdurmaq əvəzinə kök səbəbi daimi olaraq həll etmək bacarığı
- Qəza qeydlərində və qeydlərdə şəxsi məlumatları maskalamaqla sazlama zamanı məxfiliyin qorunması
Hər proqram səhvlər verir; Yaxşı bir tərtibatçını fərqləndirən, səhvləri nə qədər tez tapması və düzəltməsidir. Mobil sazlama — problemin mənbəyini tapmaq və aradan qaldırmaq — xüsusilə çətindir, çünki səhv istifadəçinin cihazında, sizin görə bilmədiyiniz mühitdə baş verir. Çox vaxt sizdə olan tək şey qəza jurnalıdır (qəza qeydi/stack izi — proqram qəzaya uğradığı zaman hara getdiyinin texniki bölgüsü). Süni intellekt bu sirli qeydləri oxumaqda, mümkün səbəbləri sadalamaqda və həll yolları təklif etməkdə son dərəcə güclüdür. Bu bölmədə biz süni intellektdən “səhv detektivi” kimi necə istifadə edəcəyimizi öyrənəcəyik, lakin son diaqnozu yoxlamaq və həll etmək məsuliyyətini sizə buraxacağıq.
Qəza jurnalının oxunması: AI-nin ən parlaq olduğu yer
Qəza jurnalı uzun və qorxuducu mətndir; təcrübəsiz tərtibatçı hara baxacağını bilməyəcək. AI bu mətni saniyələr ərzində təhlil edir: hansı sətirdə qəzaya uğradı, hansı istisna atıldı, mümkün səbəb nədir. Ümumi mobil xətalar göz qabağındadır və AI onları tez tanıyır: NullPointerException (null dəyərinə daxil olmağa çalışır), Android-də IndexOutOfBoundsException (mövcud olmayan siyahı elementinə daxil olur), iOS-da EXC_BAD_ACCESS (boşalmış yaddaşa daxil olur), gözlənilmədən tapıldı.
Mobil qəzaların ən çox yayılmış növləri və onların tipik səbəbləri aşağıdakılardır:
Xəta (istisna)
Platforma
tipik səbəb
NullPointerException
Android
Null dəyərinə daxil olmaq
IndexOutOfBoundsException
Android
Mövcud olmayan siyahı elementinə giriş
gözlənilmədən sıfır tapdı
iOS
Sıfır isteğe bağlı (!)
EXC_BAD_ACCESS
iOS
Boşalmış yaddaşa daxil olmaq
ANR/dondurmaq
Android
Əsas ipdə uzun/ağır emal
Addım-addım sazlama axını:
- Rekord toplayın. Mümkünsə, qəza jurnalını, xəta mesajını və onu təkrar etmək üçün addımları bir yerə qoyun.
- AI kontekstini verin. Mənə yalnız səhvi deyil, müvafiq kod parçasını və onun nə ilə bağlı qəzaya uğradığını deyin.
- Mümkün səbəbləri soruşun. "Mənə ən çox ehtimal olunan 3 səbəbi və hər birini necə yoxlamaq lazım olduğunu deyin."
- Doğrulayın. Təklif olunan səbəbi kodda və testdə təsdiqləyin; Bunu təxmin etməklə düzəltməyin.
- Onu düzəldin və yenidən sınaqdan keçirin. Xətanın həqiqətən getdiyini və yeni xətaların yaranmadığını yoxlayın.
İpucu: Qəza jurnalını AI-yə verərkən müvafiq kod parçasını da daxil edin. Yalnız yığın izi ilə AI ümumi proqnoz verir; Kodu görəndə, dəqiq xətti və əsl səbəbi tapmaq ehtimalı çox artır. Kontekst diaqnozun keyfiyyətini müəyyən edir.
Şəxsi məlumat tələsi
Qəza qeydləri və qeydləri tez-tez istifadəçi məlumatlarını ehtiva edir: e-poçt, istifadəçi ID, yer, hətta forma məzmunu. Bu qeydin AI-yə olduğu kimi yapışdırılması şəxsi məlumatların üçüncü tərəfə sızmasıdır və KVKK / GDPR-nin pozulmasıdır. Qeydi təqdim etməzdən əvvəl şəxsi sahələri təmizləyin (maskalayın). Həmçinin, əvvəldən ərizənizin qeydlərinə şəxsi məlumatları yazmamağa diqqət edin; Yaxşı bir jurnal problemi təsvir edir, lakin şəxsiyyəti aşkar etmir.
Diqqət: Süni intellekt tərəfindən təklif olunan düzəliş “səhvləri susdura” bilər, lakin əsas səbəbi həll etməyə bilər. Məsələn, NullPointerException-ı null yoxlaması ilə bağlamaq qəzanı dayandıracaq, lakin dəyərin niyə sıfır olduğunu anlamasanız, faktiki məntiq xətası davam edəcək. Semptomu deyil, xəstəliyi müalicə edin.
Kök səbəb təhlili
Peşəkar sazlamanın məqsədi səhvi susdurmaq deyil, kök səbəbini tapmaqdır. AI-dən soruşdum "niyə bu boş ola bilər, məlumat axınında harada itmiş ola bilər?" soruşur: "Bunu necə susdurum?" Bu, soruşmaqdan daha dəyərlidir. Kök səbəb tapıldıqdan sonra eyni xətanın onlarla variasiyası bir anda həll edilir. Süni intellekt bu zəncirvari mülahizələrdə yaxşıdır: məlumatları girişdən çıxışa qədər izləyin və ondan onun harada parçalanacağı barədə düşünməsini xahiş edin.
üç mini qutu
1-ci hal - 10 dəqiqə ərzində 2 saatlıq iş. Bir tərtibatçı yalnız müəyyən bir Samsung modelində qəzaya uğrayan bir səhv axtarmağa 2 saat sərf etdi. Qəza jurnalını (şəxsi sahələrin təmizlənməsi) AI-yə verdi; YZ, səhvin həmin cihazın fərqli kamera qətnaməsi ilə baş verən yaddaş daşmasına işarə etdiyini söylədi. İpucu ilə səbəb 10 dəqiqə ərzində tapılıb. AI axtarışı sürətləndirdi, insan həlli təsdiqlədi.
Case 2 - Susdurulmuş səhv geri döndü. Bir komanda onu tutmaq üçün AI təklifindən istifadə edərək təkrarlanan qəzanı susdurdu. Qəza dayandı, lakin istifadəçilər "məlumat saxlanmır" deyə şikayət etməyə başladılar; çünki əsl problem (verilənlər bazası bağlantısı) hələ də orada idi, sadəcə görünməz hala gəldi. Əsas səbəb aşkar edildikdən sonra həm qəza, həm də məlumat itkisi həll edildi. Dərs: susdurmaq həll etmir.
3-cü hal - Məlumat jurnalda sızdı. Yoxlama nəticəsində məlum olub ki, istifadəçilərin tam adları və telefon nömrələri proqramın qəza qeydlərinə yazılıb. Tərtibatçılar müntəzəm olaraq bu qeydləri AI-yə yapışdırdılar və səhvləri düzəldirlər; Beləliklə, şəxsi məlumatlar aylardır ki, çıxır. Günlüklər maskalanıb və proses düzəldildi. Dərs: məxfilik hətta sazlama zamanı da tətbiq edilir.
Zəif məlumat / Güclü göstəriş
Zəif sorğu: "Bu xəta niyə baş verir? [stack trace]"
Güclü xəbərdarlıq: "Bu qəza mənim Android tətbiqimdə baş verir. Kontekst:- Bunu edərkən: istifadəçi məhsul təfərrüatlarından səbətə əlavə edir- Yalnız bəzi cihazlarda, aşağı RAM modellərində- Əlaqədar kod: [ViewModel və Repozitor hissəsi]- Qəza qeydi (şəxsi məlumatlar silindi): [stack izi]3 ən çox ehtimal olunan kök səbəbləri sadalayın (1) hər biri üçün necə həll etməliyəm: 2) susdurmaq).
Kopyalana bilən şablonlar
Qəza təhlili şablonu:"Aşağıdakı qəzanı təhlil edin. Kontekst: [nə edirsiniz, hansı cihaz/versiya]. Müvafiq kod: [kod]. Qəza jurnalı (şəxsi məlumatlar silindi): [izləmə]. Çox güman ki, 3 əsas səbəb və hər biri üçün doğrulama + daimi həlli qeyd edin. Simptomu susduran həll yollarını da qeyd edin."
Kök səbəb şablonu: "Bu dəyər gözlənilmədən [null/false] gəlir. Girişdən bu nöqtəyə qədər məlumat axınını izləyin: harada itirilə və ya zədələnə bilər? Hər mərhələdə harada yoxlamalı olduğumu deyin. [kod]"
Jurnal oxu şablonu: "Bu jurnal çıxışını şərh edin: hansı hadisələr ardıcıllıqla baş verdi, anormallıq haradadır, xətadan əvvəl son sağlam addım hansı idi? [log — şəxsi məlumatlar silindi]"
Reproduksiya şablonu: "Hansı addımlar, cihaz vəziyyətləri və məlumatları bu xətanı etibarlı şəkildə təkrar etməyə çalışmalıyam? Ehtimal sırasına görə xətaya səbəb ola biləcək şərtləri sadalayın. [təsvir]"
Ümumi səhvlər
- Kontekstsiz yığın izinin verilməsi. Müvafiq kod və ssenari olmadan AI ümumi proqnoz verir.
- Şəxsi məlumatların loglarla birlikdə AI-yə yapışdırılması. Məxfiliyin pozulması; əvvəlcə maska.
- Semptomu susdurun. Try-catch ilə qəzanı gizlətmək əsas problemi tərk edir və yeni problemlər yaradır.
- İlk təklifi yoxlamadan tətbiq etmək. AI diaqnozu bir fərziyyədir; Kodda təsdiqləyin.
- Onu emulyatorda çoxaltmağa çalışırıq. Bəzi səhvlər yalnız faktiki cihazda/vəziyyətdə görünür.
- Düzəlişdən sonra təkrar sınaqdan keçirilmir. Düzəliş başqa bir şeyi pozmuş ola bilər; Reqressiyanı yoxlayın.
Xülasə
AI-nin üstün olduğu sahələrdən biri qəza qeydlərini oxumaq və mümkün səbəbləri sıralamaqdır; Kontekst verildikdə diaqnozun keyfiyyəti xeyli yaxşılaşır. Ancaq son diaqnoz və düzəliş insana aiddir: AI-nin təklifi kod və sınaqda təsdiqlənmiş bir fərziyyədir. Məqsəd simptomu susdurmaq deyil, əsas səbəbi həll etməkdir; Susdurulmuş xəta adətən başqa formada qayıdır. Qəza qeydlərində şəxsi məlumatlar ola bilər; Süni intellektə verməzdən əvvəl onu maskalayın və əvvəldən şəxsi məlumatları qeydlərinizə yazmayın.
Tətbiq tapşırığı
Əlinizdə olan qəza jurnalını (və ya AI-dən yaratdığınız nümunəni) götürün, oradakı hər hansı şəxsi/fərqləndirici məlumatı maskalayın və “Qəza analizi şablonu” ilə onu AI-yə verin. AI siyahılarının əsas səbəblərindən hansının faktiki düzəlişlər olduğunu və hansının sadəcə susdurulduğunu ayırd edin. Seçdiyiniz daimi düzəlişi tətbiq edin və xətanın aradan qalxdığını və yeni problemlərin yaranmadığını yoxlayın.
yoxlama siyahısı
- [ ] Mən müvafiq kod və ssenari konteksti ilə qəza jurnalını vermişəm
- [ ] Mən qeydlərdə şəxsi/fərqləndirici məlumatları maskaladım
- [ ] Mən süni intellektdən susdurma yox, kök səbəb və daimi düzəliş istədim
- [ ] Diaqnozu kodda və testdə təsdiqlədim, kor-koranə tətbiq etmədim
- [ ] Düzəlişdən sonra mən sınaqdan keçirdim ki, xəta aradan qalxıb və heç bir reqressiya olmayıb
- [ ] Mən yoxladım ki, ərizəm öz jurnallarında şəxsi məlumatları yazmır