Пайдалар:
- Ката билдирүүсү, стек изи жана эң кичинекей репродукция үлгүсү менен катаны AI үчүн эффективдүү сүрөттөп берүү мүмкүнчүлүгү
- AI менен системалуу мүчүлүштүктөрдү оңдоо агымын жүргүзүү мүмкүнчүлүгү, гипотезалоо жана аны кадам сайын кыскартуу аркылуу түпкү себебин табуу
- AI сунуш кылган оңдоо көйгөйдү кайра чыгаруу жана регрессиялык тестирлөө аркылуу чечкендигин текшерүү мүмкүнчүлүгү
Мүчүлүштүктөрдү оңдоо – бул программа эмне үчүн күтүлгөндөн башкача иш жүргүзүп жатканын аныктоо жана аны оңдоо милдети жана ал көпчүлүк инженерлердин көп убактысын талап кылат. Жакшы мүчүлүштүктөрдү оңдоо болжолдоо оюнуна эмес, системалуу түрдө кыскартууга негизделет: симптомду тактаңыз, гипотеза жасаңыз, гипотезаны текшериңиз, түпкү себебине барыңыз. AI бул циклде абдан күчтүү өнөктөш болуп саналат; Бирок ага туура маалымат бергенде гана. "Код иштебейт, аны оңдоңуз" деп айтуу AIны болжолдоого жана жалпы сунуштарды берүүгө мажбурлайт. Ага толук ката кабарын, стек изин жана эң кичине репродукция үлгүсүн бериңиз, ошондо сиз чогуу негизги себебин табасыз.
Бул бөлүмдө биз AI үчүн катаны кантип эффективдүү сүрөттөп, гипотезаларды этап-этабы менен кыскартууну жана сунушталган оңдоо чындыгында көйгөйдү чечкендигин регрессиялык тестирлөө аркылуу текшеребиз. Эсиңизде болсун: катаны "оңдоо" жана "ката симптомун басуу" эки башка нерсе; Түпкү себебин таппай жасалган оңдоо катаны башка жерге жылдырат.
Түшүнүктөр: Стек изи: Ката болгон учурда кайсы функциялар кандай тартипте чакырылганын көрсөтүүчү таштанды. Минималдуу репро: Катага себеп болгон эң жөнөкөй, эң кыска код/киргизүү. Негизги себеп: Симптом эмес, көйгөйдүн чыныгы булагы. Регрессиялык тест: Ошол эле ката кайталанбасын камсыз кылуучу тест.
AI үчүн мүчүлүштүктөрдү сүрөттөө
AI түпкү себебин табуу ыктымалдыгы сиз берген маалыматтын сапатына түз пропорционалдуу. Катанын жакшы сүрөттөмөсү төмөнкүлөрдү камтыйт: сиз эмне кылууга аракет кылдыңыз, эмнени күттүңүз, эмне болду, катанын так тексти жана стек изи, тартылган код, чөйрө (тил/версия/OS) жана катаны жараткан эң кичинекей үлгү.
- Симптомду тактаңыз. "Күтүлгөн X, актуалдуу У" форматында.
- Толук ката текстин жана стек изин чаптаңыз. Аны кыскартпа, цензура, бирок структурасын бузба.
- Эң кичинекей репродукцияны бериңиз. Катага себеп болгон минималдуу киргизүү жана код.
- Айлана-чөйрөнү тактаңыз. Тил версиясы, китепкана версиясы, иштөө чөйрөсү.
Натыйжалуу ката сүрөттөмөсү: "Мен мүчүлүштүктөрдү оңдоп жатам. Маалымат:- Мен эмне кылууга аракет кылып жатам: [X]- Күтүлгөн жүрүм-турум: [Y]- Чыныгы жүрүм-турум: [Z]- Толук ката билдирүүсү жана стек изи: [чаптоо]- Курчап турган чөйрө: [тил/версия, китепкана/версия]- Минималдуу код тартылган: [код] Биринчиден, эң негизги себептердин тизмесин бериңиз3. ыктымалдуулукту жана ар бири үчүн кандай текшерүүнү текшерүү керектигин айтыңыз."
Гипотеза боюнча агымдын тарышы
Системалык мүчүлүштүктөрдү оңдоо - бул мүмкүнчүлүктөрдү бирден жок кылуу искусствосу. Гипотезаларды түзүү жана ар бир гипотезаны текшерүү үчүн экспериментти долбоорлоо үчүн AI колдонуңуз; Андан кийин экспериментти жүргүзүп, натыйжаны кайтарыңыз. Бул цикл "мылтык оңдоо" деп аталган кокус өзгөрүүлөрдү жасоо жана токтоп калуу адатынан бир топ ылдамыраак.
Бинардык издөө (бинарлык) жардамчы чакырыгы: "Бул ката кечээ болгон эмес, бүгүн бар. Мен акыркы 20 өзгөртүүнүн кайсынысы бисект менен ката алып келгенин билгим келет. Мага этап-этабы менен план бериңиз: натыйжага жараша кайсы пунктту сынап көрүшүм керек, кайсы жарымына өтүшүм керек. Ошондой эле ар бир кадамда эмнени текшерүү керектигин так айтыңыз."
Журналды киргизүү стратегиясынын чакырыгы: "Мен катаны таба албайм, анткени бул функциядагы ортоңку маанилерди көрө албайм. Кайсы пункттарда кайсы өзгөрмөлөрдү басып чыгарган журнал сызыктарын кошушум керектигин айтыңыз. Ар бир журнал үчүн "бул журналдан эмне үйрөнөм" деген түшүндүрмө кошуңуз. Ошондой эле мага купуя маалыматтарды киргизүүгө тоскоол боло турган эскертүүлөрдү белгилеңиз."
Кеңеш: Эгер сиз катаны чече албасаңыз, көп учурда көйгөй сиз туура эмес деп ойлогон жерде болот. AIдан "менин кандай божомолум туура эмес болушу мүмкүн?" деп сураңыз. Сураган сокурдугуңду сындырат. Эң катаал каталар "мен бул туура иштеп жатканына ишенем" деген жерде катылат.
Алсыз тездик / Күчтүү эскертүү
АЛСЫЗ:"Менин коду ката кетирип жатат, аны оңдоңуз: [200 код саптары]"(Натыйжа: AI бул кандай ката экенин, эмне күтүлүп жатканын билбейт; божомолдорго негизделген жалпы сунуштарды берет, алардын көбү пайдасыз.)КҮЧТҮҮ:"Мен NullPointerException алдым. Күтүлүүчү: колдонуучулардын тизмеси кайтарылышы керек. Иш жүзүндө: [Stavi:Enter] чалуу учурунда жарылат). 17. Минималдуу кайталануу: Бул колдонуучулардын тизмеси бош болгондо пайда болот, бирок ал толгондо болбойт. Байланыштуу 15 сап: [код] негизги себебин жана эмне үчүн бошотуп коюуну сунуштаңыз."
Күчтүү чакырык катаны контекстке коет: кайсы учурда ал болот (бош тизме), кайсы учурда болбойт (толук тизме). Бул жалгыз белги («бош болгондо пайда болот») дээрлик түздөн-түз түпкү себебин көрсөтөт. Бул маалымат алсыз тез арада жеткиликтүү болбогондуктан, AI сокур божомол жасайт.
Түзөтүүнү текшерүү
Оңдоо үч нерсени аткарса гана чыныгы оңдоо болот:
контролдоо
Суроо
Кантип текшерүү керек
Ката кеттиби?
Ошол эле жазуу азыр иштейби?
Минималдуу кайталоону кайра иштетиңиз
Жаңы каталар жокпу?
Дагы бир нерсе бузулдубу?
Бүт тест топтомун иштетиңиз
Кайталанбайбы?
Ошол эле ката кайталанабы?
Бул сценарий үчүн регрессиялык тестти кошуңуз
Негизги себебин таппай жасалган оңдоолор көбүнчө симптомду басышат. Мисалы, "эгер нөл болсо өткөрүп жиберүү" менен нөл катасын жылтыратуу "эмне үчүн маалыматтар нөл болуп жатат?" көрүнбөйт жана ката башка жерде кайталанат.
Mini Cases
1-жагдай - Симптомдорду басуу тузагы. Команда кээде нөлдүк катаны тындыруу аракети менен өчүрөт; Ката жок болот, бирок 2 жумадан кийин маалыматтар жок болуп чыгат. Чыныгы себеби, кызмат күтүү учурунда нөлгө кайтып келет. Сиз AI "эмне үчүн нөл болуп жатат?" деп сураганда, негизги себеби пайда болот; Чыныгы оңдоо 1 саатты талап кылат, бирок туруктуу.
2-жагдай - Минималдуу кайра күч. Иштеп чыгуучу "ал маал-маалы менен бузулат" деген катаны оңдой албайт. Ал AI сунушу менен катаны эң кичине киргизүүгө чейин азайтат: көйгөй түрк тамгаларын камтыган файл аталыштарында гана пайда болот (коддоо катасы). 300 сызык белгисиздик 5 сапка чейин кыскартылганда, чечим айкын болуп калат.
3-жагдай — регрессияга каршы тест. AI датаны эсептөө катасын оңдойт. Инженер буга канааттанбайт; ката сценарий үчүн регрессиялык тестти кошот (айдын аягы, 31-январь + 1 ай). 4 айдан кийин дагы бир өзгөрүү ошол эле аймакка тийгенде, сыноо кызылга айланат жана ката өндүрүшкө жеткенге чейин кармалат.
Жалпы каталар
- Бул “иштебей жатат, оңдоңуз” дегенди билдирет. Ката тексти, күтүү жана репро жок, AI болжолдойт.
- Стектин изин бербейт. Стек изи көбүнчө түпкү себебин түздөн-түз көрсөтөт.
- Кокус өзгөрүүлөрдү жасай бериңиз. Гипотезаны түзбөй эксперименттер убакытты текке кетирет.
- Симптомду басуу жана негизги себебин жок кылуу. Ката башка жерде кайра жаралат.
- Регрессиялык тест менен оңдоону камсыз кылуу эмес. Ошол эле ката келечекте унчукпай кайтып келет.
Кыскача айтканда
Натыйжалуу мүчүлүштүктөрдү аныктоо - бул болжолдоо эмес, системалуу тароо. AIга катанын толук текстин, стек изи, минималдуу кайра чыгаруу жана айлана-чөйрө жөнүндө маалымат берүү түпкү себебин табуу мүмкүнчүлүгүн экспоненциалдуу түрдө жогорулатат. Гипотезаларды түзүү жана ар бир гипотезаны текшерүү үчүн экспериментти долбоорлоо үчүн AI колдонуңуз; Сиз эксперимент жүргүзүңүз. Мүчүлүштүк жок болуп, жаңы мүчүлүштүктөр киргизилбегенин жана регрессиялык тестирлөө менен корголгондугун көргөндө гана оңдоону "бүттү" деп эсептеңиз.
Колдонмо тапшырмасы
Чыныгы же жасалма катаны карап көрөлү. Адегенде катаны эң кичине репродукцияга чейин азайтыңыз (кайсысында кирсе, кайсылында болбойт). Натыйжалуу мүчүлүштүктөрдүн рецептин колдонуу менен, AIдан 3 негизги себеп гипотезасын жана ар бири үчүн текшерүү кадамын сураңыз. Гипотезаларды бир-бирден сынап, түпкү себебин табыңыз, аны оңдоңуз, андан кийин ката кеткенин жана сыноо коргоону камсыз кылуу үчүн бул сценарий үчүн регрессия тестин жазып, иштетиңиз.
текшерүү тизмеси
- [ ] Мен симптомду "күтүлгөн жана ишке ашкан" деп түшүндүрдүм.
- [ ] Мен толук ката текстин жана стек изин AIга бердим.
- [ ] Мен катаны эң кичинекей репродукцияга чейин азайттым.
- [ ] Гипотезаларды бир-бирден сынап, мен түпкү себебин таптым.
- [ ] Симптомду басуунун ордуна, мен негизги себебин чечтим.
- [ ] Мен ошол эле ката үчүн регрессиялык тестти кошуп, иштеттим.