Upimaji wa programu umekuwa daima mbio dhidi ya wakati. Muda wa kutoa matoleo unapungua. Misingi ya kodi (codebases) inakua. Timu zinatarajiwa kutoa bidhaa haraka zaidi bila kuharibu kitu. Hivi karibuni, AI imeingia katika hali hii ya shinikizo ikiahidi utulivu. Inaweza kutengeneza mifano ya majaribio (test cases) kwa sekunde chache, kukagua maelfu ya mistari ya kodi kutafuta hitilafu, na kuendesha mfululizo wa majaribio yanayojirudia wakati timu yako imelala. Kasi hiyo ni halisi. Lakini kasi bila mwelekeo ni njia ya haraka zaidi ya kupata ajali.
Ukweli ni kwamba AI katika upimaji hufanya kazi vizuri zaidi kama kichochezi (accelerator), si kama rubani wa kiotomatiki (autopilot). Ikichochewa vizuri, inapunguza kazi nzito za mikono na kuibua hitilafu mapema. Ikichochewa bila uangalifu, inatengeneza maeneo yasiyoonekana (blind spots) na kukupa hisia ya uongo ya usalama. Kuelewa wapi AI inasaidia na wapi inafeli ndiyo tofauti kati ya kutoa programu imara na kutoa kodi iliyoharibika ambayo ilifika kwa wakati.
Mahali AI Inapostahili
Anza na kile ambacho AI inashughulikia vizuri. Upimaji wa urejeo (regression testing) unaojirudia ni ushindi wa wazi. Kuendesha mfululizo uleule wa kuingia (login flows), uhakiki wa fomu, na hatua za malipo kwenye mchanganyiko wa vivinjari na vifaa vingi ni kazi inayochosha akili kwa binadamu lakini ni rahisi kwa mashine. Programu za majaribio zinazoendeshwa na AI zinaweza kutekeleza mfululizo huu usiku kucha na kuashiria mabadiliko ya kuonekana (visual regressions) au kushuka kwa utendaji ambao mhandisi aliyechoka angeweza kuupuuza.
Uundaji wa data za majaribio (test data generation) ni uwezo mwingine mkubwa. Unapohitaji rekodi elfu kumi zenye majina, anwani, historia za miamala, na saa za maeneo (time zones) halisi lakini za bandia, AI inaweza kuzitengeneza papo hapo. Hili ni muhimu unapofanya upimaji wa mzigo (load-testing) kwenye kanzidata (database) au unapoangalia jinsi dashibodi yako ya uchambuzi inavyoshughulikia data nyingi (high-cardinality data). Kutengeneza kiasi hicho kwa mkono si tu polepole; si halisi pia.
AI pia inaongeza kasi ya kuandika skripti za majaribio za msingi (boilerplate test scripts). Ikiwa unahitaji upimaji wa kiwango (unit test) wa kawaida kwa API endpoint mpya au skripti ya msingi ya kuhakiki kuwa ukurasa unapakia, msaidizi wa AI anaweza kuandaa muundo huo. Unapata muundo, viingizo vya bandia (dummy inputs), na sehemu za uthibitisho (assertion placeholders) bila kuhitaji kuandika kila kitu kuanzia mwanzo. Ni hatua nzuri ya kuanzia.
Faida hizi ni dhahiri. Hitilafu zinakamatwa mapema kwa sababu gharama ya kuendesha majaribio mapana inapungua. Kazi zinazojirudia zinaacha kutumia saa za binadamu. Timu inaweza kuzingatia matatizo magumu zaidi.
Maeneo Yasiyoonekana Ambayo Hakuna Anayeyazungumzia
Tatizo linaanza timu zinapochanganya upana wa ulinzi (broad coverage) na kina cha ulinzi (deep coverage). AI inatafuta mifumo. Inatabiri jinsi hitilafu ya kawaida inavyoonekana kulingana na data iliyofundishwa. Hiyo inamaanisha inafanya vizuri katika mambo ya kawaida na inafeli mara kwa mara katika mambo ya ajabu.
Fikiria matukio ya ukingoni (edge cases). Mtindo (model) uliofunzwa kwenye safari za kawaida za watumiaji huenda ukakosa hitilafu inayochochewa tu wakati mtumiaji anapofungua madialogi matatu ya kutoa taarifa (modal dialogs), kubonyeza kitufe cha kurudi cha kivinjari, na kuonyesha upya ukurasa (refresh) wakati wa kuhifadhi kwa njia isiyo ya moja kwa moja (asynchronous save). Haya si mawazo tu. Matukio ya uzalishaji mara nyingi hutokana na mfuatano ambao hakuna seti ya data ya mafunzo inayoweza kuwakilisha kikamilifu kwa sababu ni adimu kitakwimu. AI inafuata katikati ya mchoro wa kulinganisha (bell curve). Hitilafu zako mbaya zaidi huishi pembeni mwa mchoro huo.
Hisia za binadamu (human intuition) ni muhimu hapa. Mtesaji (tester) mwenye uzoefu huangalia kipengele kipya na kufikiria hatari ya kibiashara. Wanauliza jinsi mtumiaji aliyekasirika anavyoweza kutumia fomu vibaya, au nini kinatokea wakati lango la malipo linachelewa (times out) wakati wa ongezeko la trafiki wakati wa sikukuu. Hii ni fikra ya muktadha (contextual thinking). AI haihisi shinikizo la kibiashara. Haijui kwamba mfumo wako wa hesabu (inventory system) ni dhaifu kwa sababu ya muunganisho wa zamani wa miaka mingi iliyopita. Inaandika kile kinachoonekana kuwa sahihi, si kile kilicho sahihi kwa eneo lako mahususi.
Pia kuna suala la hallucination na otomatiki dhaifu (brittle automation). Skripti za majaribio zinazozalishwa na AI zinaonekana kuwa na mantiki lakini zinaweza kuwa na selectors zisizo sahihi, uthibitisho (assertions) mbaya, au dhana kuhusu muundo wa DOM zinazobadilika katika awamu inayofuata (next sprint). Ukizitumia skripti hizi bila kuzisoma, unapata matokeo chanya ya uongo (false positives) yanayopoteza muda au matokeo hasi ya uongo (false negatives) yanayoruhusu hitilafu kupita. Alama ya tiki ya kijani kwenye dashibodi ya majaribio haina maana ikiwa jaribio hilo halithibitishi tabia sahihi.
