бирдиги 7 / 11

Жасалма интеллект менен мүчүлүштүктөрдү оңдоо жана каталарды анализдөө

Пайдалар:

  • Тиешелүү код жана сценарий контексти менен жасалма интеллектке кыйроонун жазууларын (стек издерин) берүү менен мүмкүн болгон негизги себептерди тез кыскартуу мүмкүнчүлүгү
  • Коддогу гипотеза катары AI диагнозун ырастоо жана симптомду тестирлөө жана өчүрүү эмес, түпкү себебин биротоло чечүү мүмкүнчүлүгү
  • Кырсык жазууларындагы жана журналдардагы жеке маалыматтарды маскалоо менен мүчүлүштүктөрдү оңдоо учурунда купуялуулукту коргоо

Ар бир колдонмо каталарды берет; Мыкты иштеп чыгуучунун айырмалоочу нерсеси - бул мүчүлүштүктөрдү канчалык тез таап, оңдоодо. Мобилдик мүчүлүштүктөрдү оңдоо — көйгөйдүн булагын табуу жана оңдоо — өзгөчө кыйын, анткени ката колдонуучунун түзмөгүндө, сиз көрө албаган чөйрөдө пайда болот. Көбүнчө, сизде бар болгон нерсе - бузулуу журналы (кырсык журналы/стектин изи — колдонмо кыйрап калганда кайда кеткендигинин техникалык бузулушу). AI бул сырдуу жазууларды окуп, мүмкүн болгон себептерди тизмектеп жана чечимдерди сунуштоодо абдан күчтүү. Бул бөлүмдө биз AIди "ката детективи" катары кантип колдонууну үйрөнөбүз, бирок акыркы диагнозду текшерүү жана оңдоо жоопкерчилигин сизге калтырабыз.

Кырсык журналын окуу: AI эң жаркыраган жерде

Кырсык журналы - бул узун жана коркунучтуу текст; тажрыйбасыз иштеп чыгуучу кайда издөөнү билбей калат. AI бул текстти секунданын ичинде талдайт: ал кайсы сапта кыйроого учураган, кайсы өзгөчөлүк ташталган, мүмкүн болгон себеп эмне. Жалпы мобилдик каталар ачык көрүнүп турат жана AI аларды тез тааныйт: NullPointerException (нөл мааниге жетүүгө аракет кылуу), Android'де IndexOutOfBoundsException (болбогон тизме элементине кирүү), iOS'то EXC_BAD_ACCESS (бошотулган эстутумга кирүү), күтүлбөгөн жерден табылды.

Мобилдик каталардын эң кеңири таралган түрлөрү жана алардын типтүү себептери төмөнкүлөр:

Ката (өзгөчө)

Платформа

типтүү себеп

NullPointerException

Android

Нөл мааниге жетүү

IndexOutOfBoundsException

Android

Болбогон тизме элементине кирүү

күтүлбөгөн жерден нөл табылган

iOS

нөлдү мажбурлап ачуу (!)

EXC_BAD_ACCESS

iOS

Бошогон эстутумга кирүү

ANR/тоңдуруу

Android

Негизги жипте узак/оор иштетүү

Кадам-кадам мүчүлүштүктөрдү оңдоо агымы:

  1. Жазууну чогултуу. Кырсык журналын, ката кабарын жана мүмкүн болсо, аны кайра чыгаруу үчүн кадамдарды чогуу кой.
  2. AI контекстин бериңиз. Мага катаны эле эмес, коддун тиешелүү бөлүгүн жана ал эмне кылып бузулганын айтыңыз.
  3. Мүмкүн болгон себептерди сураңыз. "Мага эң мүмкүн болгон 3 себепти жана ар бирин кантип текшерүү керектигин айтып бериңиз."
  4. Текшерүү. Коддо жана тестирлөөдө сунушталган себепти ырастаңыз; Божомолдоо менен аны оңдобоңуз.
  5. Аны оңдоп, кайра сынап көрүңүз. Ката чындыгында жок болгонун жана жаңы каталар жаралбагандыгын текшериңиз.
Кеңеш: Кырсык журналын AIга берип жатканда, тиешелүү код үзүндүсүн да кошуңуз. Стек изи менен гана AI жалпы божомол жасайт; Кодду көргөндө, так сызыкты жана чыныгы себепти табуу ыктымалдыгы абдан жогорулайт. Контекст диагноздун сапатын аныктайт.

Жеке маалымат капкан

Кырсык журналдары жана журналдары көбүнчө колдонуучунун маалыматтарын камтыйт: электрондук почта, колдонуучунун идентификатору, жайгашкан жери, ал тургай форманын мазмуну. Бул жазууну AI'га ошол бойдон чаптоо жеке маалыматтарды үчүнчү тарапка агызып жиберет жана KVKK / GDPRди бузуу болуп саналат. Жазууну тапшыруудан мурун жеке жерлерди тазалаңыз (маскалаңыз). Ошондой эле, башынан эле арызыңыздын журналдарына жеке маалыматтарды жазуудан сак болуңуз; Жакшы журнал көйгөйдү сүрөттөйт, бирок ким экендигин көрсөтпөйт.

Эскертүү: AI сунуш кылган оңдоо "катанын үнүн басышы" мүмкүн, бирок негизги себебин чечпейт. Мисалы, NullPointerExceptionти нөл чек менен ороп коюу кыйроону токтотот, бирок эмне үчүн маани нөл экенин түшүнбөсөңүз, чыныгы логикалык ката улана берет. Симптомду эмес, ооруну дарылаңыз.

Түпкү себептерди талдоо

Кесипкөй мүчүлүштүктөрдү оңдоонун максаты катаны өчүрүү эмес, анын түпкү себебин табуу. Мен AIдан "эмне үчүн бул нөл болушу мүмкүн, ал маалымат агымында кайда жоголушу мүмкүн?" деп сурадым. "Мен муну кантип өчүрөм?" Бул суроого караганда алда канча баалуу. Негизги себеп табылгандан кийин, бир эле катанын ондогон вариациялары бир эле учурда чечилет. AI бул чынжырча ой жүгүртүүдө жакшы: маалыматтарды киргизүүдөн чыгарууга чейин ээрчип, анын кайда бузулаары жөнүндө ойлонушун сураныңыз.

үч мини учурлар

1-жагдай — 10 мүнөттө 2 сааттык жумуш. Иштеп чыгуучу белгилүү бир Samsung моделинде гана бузулган мүчүлүштүктөрдү издөөгө 2 саат коротту. Кырсык журналын (жеке аймактарды тазалоо) AIга берди; YZ ката бул аппараттын камерасынын башка чечилиши менен пайда болгон эс тутумдун ашып кетишин көрсөтөт деп билдирди. Ичи менен, себеби 10 мүнөттө табылган. AI издөөнү тездетти, адам чечимди текшерди.

2-жагдай - Унчукпаган ката кайтып келди. Бир команда аны кармап көрүү үчүн AI сунушун колдонуу менен кайталануучу кыйроонун үнүн басышты. Кырсык токтоду, бирок колдонуучулар "маалымат сакталбай жатат" деп нааразы боло башташты; анткени чыныгы көйгөй (маалымат базасына туташуу) дагы эле бар болчу, ал жаңы эле көрүнбөй калган. Негизги себеп табылгандан кийин, ката жана маалымат жоготуу да чечилди. Сабак: унчукпай коюу чечпейт.

3-жагдай - Маалыматтар журналга чыгып кетти. Аудит колдонуучулардын толук аты-жөнү жана телефон номерлери колдонмонун бузулуу журналдарына жазылганын аныктаган. Иштеп чыгуучулар бул журналдарды AI жана каталарды оңдоп коюшкан; Ошентип, жеке маалыматтар ай бою чыгып жатат. Журналдар маскаланып, процесс оңдолду. Сабак: конфиденциалдуулук мүчүлүштүктөрдү оңдоодо да колдонулат.

Алсыз тездик / Күчтүү тездик

Начар эскертүү: "Эмне үчүн бул ката пайда болот? [стек изи]"

Күчтүү эскертүү: "Бул бузулуу менин Android колдонмомдо болуп жатат. Контекст:- Колдонуучу өнүмдөрдүн чоо-жайынан арабага кошууда- Кээ бир түзмөктөрдө гана, аз RAM моделдеринде- Байланыштуу код: [ViewModel жана Репозиторий бөлүгү]- Кырсык журналы (жеке маалыматтар тазаланды): [стек изи]Эң ыктымалдуу 3 негизги себептерди тизмектеңиз (1) Кантип оңдой албайм: 2) Тынчсыздануу).

Көчүрмө шаблондор

Кырсыктын анализинин үлгүсү:"Төмөнкү кыйроону талдаңыз. Контекст: [эмне кылып жатасыз, кайсы түзмөк/версия]. Тиешелүү код: [код]. Кырсык журналы (жеке маалыматтар тазаланды): [издөө]. Эң ыктымалдуу 3 негизги себептерди жана ар бири үчүн текшерүүнү + туруктуу оңдоону бериңиз. Симптомдун үнүн басуучу убактылуу жолдорду белгилеңиз."

Түпкү себептин шаблону: "Бул маани күтүлбөгөн жерден келет [null/false]. Киргизилгенден ушул чекитке чейин маалымат агымын ээрчиңиз: ал кайда жоголуп же бузулушу мүмкүн? Ар бир этапта кайсы жерде текшеришимди айтыңыз. [код]"

Журналды окуу шаблоны: "Бул журналдын жыйынтыгын чечмелеңиз: кандай окуялар ирети менен болду, аномалия кайда болду, катага чейинки эң акыркы кадам кандай болду? [журнал — жеке маалыматтар тазаланды]"

Репродукция үлгүсү: "Бул катаны ишенимдүү кайра чыгаруу үчүн кандай кадамдар, түзмөктүн абалы жана берилиштери аракет кылышым керек? Ыктымалдуулук иретинде катаны козгой турган шарттарды тизмектеңиз. [сүрөттөө]"

Жалпы каталар

  • Контекстсиз стек изин берүү. Тиешелүү код жана сценарийсиз AI жалпы божомолду жасайт.
  • Жеке маалыматтарды журналдар менен бирге AIге чаптоо. купуялуулукту бузуу; биринчи маска.
  • Симптомду басыңыз. try-catch менен катаны жашыруу негизги көйгөйдү калтырып, жаңы көйгөйлөрдү жаратат.
  • Биринчи сунушту аны текшербестен колдонуу. AI диагнозу гипотеза болуп саналат; Код менен ырастаңыз.
  • Эмулятордо аны кайра чыгарууга аракет кылууда. Кээ бир каталар чыныгы түзмөктө/шартта гана пайда болот.
  • Коррекциялангандан кийин кайра текшерүүдөн өтпөйт. Оңдоо дагы бир нерсени бузушу мүмкүн; Регрессияны текшерүү.

Кыскача айтканда

AI артыкчылыкка ээ болгон аймактардын бири - авария журналдарын окуу жана мүмкүн болуучу себептерди иреттөө; Контекст берилгенде диагноздун сапаты бир топ жакшырат. Бирок акыркы диагноз жана оңдоо адамга таандык: AIнын сунушу код жана тестирлөө менен тастыкталган гипотеза. Максат симптомду басуу эмес, негизги себебин чечүү; Унчукпаган ката адатта башка формада кайтат. Кырсык журналдары жеке маалыматтарды камтышы мүмкүн; Аны AIга берүүдөн мурун маска жана башынан баштап журналдарыңызга жеке маалыматтарды жазбаңыз.

Колдонмо тапшырмасы

Колуңузда болгон бузулуу журналын (же AIдан чыгарган үлгүнү) алыңыз, андагы жеке/айырмалоочу маалыматтарды жаап, аны AIга "Crash анализинин шаблону" менен бериңиз. Түпкү себептердин кайсынысы AI тизмелеринин иш жүзүндө оңдолгону жана кайсынысы жөн гана үнүн басуучу экенин ажыратыңыз. Сиз тандаган туруктуу оңдоону колдонуңуз жана ката кеткендигин жана жаңы көйгөйлөр жаралбагандыгын текшериңиз.

текшерүү тизмеси

  • [ ] Мен тиешелүү код жана сценарий контексти менен бузулуу журналын бердим
  • [ ] Мен журналдардагы жеке/айырмалоочу маалыматтарды жашырдым
  • [ ] Мен AIдан үн катууну эмес, түпкү себебин жана туруктуу оңдоону сурадым
  • [ ] Мен диагнозду коддо жана тестирлөөдө текшердим, мен аны сокур түрдө колдонгон жокмун
  • [ ] Оңдогондон кийин, мен ката кеткенин жана регрессия болбогонун сынап көрдүм
  • [ ] Менин арызым өзүнүн журналдарына жеке маалыматтарды жазбай турганын текшердим