Naúrar 6 / 11

Ƙirƙirar Gwaji tare da Hankali na Artificial: Unit, Interface and Automation Tests

Riba:

  • Ikon samar da naúrar, haɗin kai da gwaje-gwajen UI tare da hankali na wucin gadi daidai da dala na gwaji da iyakacin rufewa da yanayin kuskure gami da yanayin farin ciki.
  • Ƙarfin zazzage gwaje-gwaje mara amfani / mara amfani da ɗaukar hoto ta hanyar duba cewa kowane gwajin da aka haifar yana tabbatar da ɗabi'a.
  • Tabbatar da gwajin ya kama kwaro kuma yana hana shi gyara kwaro ta hanyar gaya wa AI abin da lambar ya kamata ta yi.

Writing code is half the job; Tabbatar da cewa lambar tana aiki daidai shine sauran rabin. Ka'idodin wayar hannu sun haɗu da ɗaruruwan na'urori daban-daban, girman allo, nau'ikan tsarin aiki, da halayen mai amfani. Ba shi yiwuwa a gwada duk waɗannan da hannu; Shi ya sa gwaji ta atomatik (code test code — gwajin da ke gudana ba tare da danna mutum ba) shine ƙashin bayan ingancin wayar hannu. AI yana da ingantacciyar inganci a rubuce-rubucen gwaje-gwaje saboda gwaje-gwajen rubuce-rubuce shine ainihin irin aikin da yake so: tabbatar da takamaiman halaye don takamaiman abubuwan shigarwa. A cikin wannan rukunin, za mu koyi yadda ake haɓaka gwajin naúrar, gwajin mu'amala da aiki da kai tare da AI, amma tabbatar da ingancin gwajin ta idanun ɗan adam.

Gwajin dala: abin da za a gwada da nawa

Dabarar gwaji mai lafiya tayi kama da dala. Tushen ya haɗa da adadi mai yawa na gwaje-gwajen naúrar (gwajin gaggawa wanda ke gwada aiki ɗaya ko aji a keɓe); suna da sauri da arha. A tsakiya akwai ƙarancin gwajin haɗin kai (gwajin yadda sassa da yawa ke aiki tare). A saman akwai ƙaramin gwajin UI / ƙarshen-zuwa-ƙarshen (gwajin da aka yi ta danna kan allo kamar yadda mai amfani ke yi); suna da gaskiya amma a hankali kuma suna da rauni. AI yana taimakawa a kowane Layer, amma mafi ƙimar yana a tushe: da sauri samar da gwajin naúrar dabaru na kasuwanci.

Nau'in gwaji

Iyakar

gudun

AI inganci

gwajin naúrar

Aiki ɗaya/aji

da sauri sosai

mai girma

hadewa

interlayer

matsakaici

babba

UI / karshen-zuwa-ƙarshe

Duk rafi na allo

a hankali

Matsakaici (mai rauni)

Tukwici: Lokacin gaya wa AI don "ƙirƙira gwaje-gwaje don wannan aikin", a sarari a nemi shari'o'in gefen: shigarwar wofi, null, lambar mara kyau, ƙimar girma sosai, kuskuren hanyar sadarwa. AI yana samar da hanyar farin ciki cikin sauƙi; Kuskuren gaske suna ɓoye a cikin iyakoki kuma ku yi tsalle idan ba ku son su a can.

Matakan gwajin rubuce-rubuce tare da AI

  1. Ƙayyade halayen da za a gwada. "Wannan aikin ya kamata ya ba da wannan fitarwa ga wannan shigarwar."
  2. Ƙayyade tsarin. JUnit + MockK akan Android, XCTest akan iOS, Espresso (Android) ko XCUITest (iOS) don UI.
  3. Nemi jihohin iyaka. Labarin farin ciki + kuskure + wuraren karya.
  4. Sarrafa abubuwan ba'a. Abubuwan dogaro na waje kamar cibiyar sadarwa da bayanai ana yin koyi da su don gwaji (ba'a — izgili mai sarrafawa maimakon ainihin sabis).
  5. Yi gwajin kuma tabbatar. Shin gwajin ya wuce, yana tabbatar da wani abu mai ma'ana da gaske?

Mataki na biyar yana da mahimmanci. AI wani lokaci yana samar da gwaje-gwaje marasa amfani waɗanda "koyaushe ke wucewa"; misali gwajin da ba ya tantance komai ko duba bayanan karya nasa. Jarabawar wucewa da gwaji mai daraja abubuwa ne daban-daban.

Tsanaki: Kawai saboda AI na iya samarwa baya nufin gwajin yayi daidai. Wani lokaci AI ​​yana yarda da halin yanzu (watakila kuskure) halin lambar a matsayin "daidai" kuma yana rubuta gwaje-gwaje daidai. Irin wannan gwajin yana gyara kwaro maimakon kama shi. Kuna ƙayyade abin da gwajin ke tsammani; Faɗa wa AI abin da ya kamata ya yi, ba abin da lambar ke yi ba.

Gwaji ma'aunin ɗaukar hoto da kuskure

Keɓancewar gwaji (yawan adadin lambar da ake gudanar da gwaje-gwaje) yana da amfani amma ma'auni na yaudara. 90% ɗaukar hoto yana nuna cewa an aiwatar da 90% na lambar; amma ba a tabbatar da cewa wadannan layukan suna aiki daidai ba. Gwajin da ke tafiyar da layi kuma baya duba sakamakon yana haɓaka iyawa amma baya samar da tsaro. Manufar ba manyan lambobi ba ne, amma tabbatarwa mai ma'ana. Kuna iya haɓaka haɓaka da sauri tare da AI, amma tabbatar da cewa kowane gwaji yana gwada ɗabi'a.

uku mini lokuta

Case 1 - An kama halin da ake ciki a kan iyaka. An nemi AI don gwaje-gwaje don aikin canja wurin kuɗi a cikin aikace-aikacen banki, kuma musamman "mara kyau adadin" da "fiye da ma'auni" an ƙara yanayin yanayi. Gwajin ya nuna cewa ba a toshe canja wurin tare da mummunan adadin; wannan zai zama babban rashin tsaro a cikin samarwa. An rufe ta ƙara sarrafa layi ɗaya. Darasi: Gwajin iyaka sune gwaje-gwaje mafi mahimmanci.

Case 2 - Gwajin karya. Ƙungiya ɗaya ta sami sauƙi don ƙara ɗaukar hoto zuwa 85% tare da gwaje-gwajen raka'a 40 da AI ta samar. A lokacin dubawa, an ga cewa yawancin gwaje-gwajen ba su tabbatar da kowane fitarwa ba, kawai sun kira aikin kuma sun rubuta assertTrue (gaskiya). Rufewa ya yi girma amma kariyar ba ta kasance ba. An sake gyara gwaje-gwajen kuma an sake rubuta su tare da ingantaccen inganci. Darasi: Lambobin ɗaukar hoto na iya yin ƙarya.

Case 3 - An haɓaka gwajin UI. Ƙungiyar kasuwancin e-commerce ta rubuta rubutun XCUITest na ƙara-zuwa-cart tare da AI a cikin minti 20; Idan da hannu aka rubuta shi, zai ɗauki rabin yini. AI hasashen abubuwan gano allo; Ƙungiyar ta daidaita su da ainihin lambar kuma ta gyara su. Gudun daftarin aiki na gaske ne, amma tabbatar da ganowa aikin ɗan adam ne.

Rauni mai ƙarfi / Ƙarfi mai ƙarfi

Rauni mai sauri: "Rubuta gwaji don wannan aikin."

Ƙarfin ƙarfi: "Samar da gwaje-gwajen naúrar don wannan aikin Kotlin tare da JUnit5 + MockK. Aiki: canja wurin kuɗi (yawan, tushen, manufa). Halayen don gwadawa (abin da lambar ya kamata YI): Canja wuri mai dacewa dole ne ya yi nasara- Korau ko adadin sifili dole ne a ƙi - Adadin da ya fi ma'auni dole ne a ƙi- Kuskuren cibiyar sadarwa dole ne a jefar da ya dace da kuskuren cibiyar sadarwa, dole ne a yi la'akari da wani abu na waje, kowane gwajin ya kamata ya zama abin da ya dace ya zama wani abu na waje. tabbatarwa."

Samfura masu kwafi

Samfurin gwaji na raka'a: "Ƙirƙirar gwaje-gwajen naúrar [JUnit/XCTest] don wannan aikin don [harshe]. Halin da ake tsammani: [abin da za a yi]. Haɗa: yanayin farin ciki, shigarwa mara kyau, wuraren karya, shari'ar kuskure. Bari kowane gwaji ya tabbatar da hali guda ɗaya; yi amfani da tabbaci mai ma'ana; izgili. [code]"

Samfuran gwaji na UI: "Rubuta gwajin UI na gudana mai zuwa tare da [Espresso/XCUITest]: [matakin mai amfani mataki-mataki]. Zaɓi abubuwan allo tare da id mai isa, amfani da id maimakon rubutu. Ƙara dabarun jira. Tunatar da ni in daidaita ids zuwa ainihin lambar."

Gwajin duba samfuri: "Yi nazarin waɗannan gwaje-gwaje: 1) Shin a zahiri sun tabbatar da fitarwa / halayensu ko kuma ba su da tushe? 2) Shin suna rufe shari'o'in iyaka? 3) Shin suna gyara lambar ko suna tsammanin halayen daidai? Tuta da ƙarfafa gwaje-gwaje masu rauni. [gwaji]"

Samfurin inganta ɗaukar hoto: "Gano sassan da ba a gwada su na wannan aji kuma ku ba da shawarar gwaje-gwaje masu ma'ana. Ba da fifikon hanyoyi tare da haƙƙin gaske, ba kawai adadin ɗaukar hoto ba. [code]"

Kuskuren gama gari

  • Kawai gwada yanayin farin ciki. Ana adana kurakurai a cikin iyakokin jihohi; Ka tambaye su a fili.
  • Karɓar gwajin fanko/marasa amfani. Gwaje-gwajen nau'in assertTrue(gaskiya) suna haɓaka iyakar kuma ba su da kariya.
  • Samun AI don tabbatar da abin da lambar ke yi. Gwaji ya kamata ya sa ran abin da lambar ya kamata ya yi; in ba haka ba yana gyara kwaro.
  • Kuskure lambar iyaka don manufar. 90% ɗaukar hoto baya nufin 90% daidaito.
  • Haɗa zuwa rubutu a gwajin UI. Gwajin yana karye lokacin da rubutun ya canza; Yi amfani da tsayayyen mai ganowa (id).
  • Saita izgili ba daidai ba. "Gwajin naúrar" da ke kiran ainihin sabis ɗin zai kasance a hankali da gallagewa.

a takaice

Gwaji shine kashin bayan ingancin wayar hannu, kuma AI yana da inganci sosai a wannan yanki, musamman a gwajin naúrar. Bi dala na gwaji: raka'a da yawa, matsakaicin haɗin kai, ƙaramin gwajin UI. A zahiri tambayi AI don yanayin farin ciki tare da iyakance lokuta da hanyoyin kuskure. Tabbatar cewa kowane gwajin da aka haifar yana tabbatar da haƙiƙa; Gwaje-gwajen da ba kowa da kowa da abin rufe fuska yaudara ne. Mafi mahimmanci, gaya wa AI abin da lambar ya kamata ta yi, ba abin da yake yi ba, don haka gwajin ya kama kwaro, ba gyara shi ba.

Aikin aikace-aikace

Nemi gwaje-gwaje daga AI ta amfani da "samfurin gwaji na Unit" don aikin dabaru na kasuwanci (misali lissafin rangwame ko ingantaccen tsari) da ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun bayanai (rauni, korau, da girma da yawa). Gudanar da gwaje-gwajen da aka ƙirƙira, sannan a yi gwajin gwaje-gwaje iri ɗaya tare da "Test audit template". Nemo aƙalla gwajin rauni ɗaya, ƙarfafa shi, kuma gwada ko gwaje-gwajen sun sami ainihin kuskuren aikin (ta ƙara ƙaramin kwaro).

jerin abubuwan dubawa

  • [ ] Na zaɓi abin da ya dace don dala na gwaji (rashin fifiko)
  • [ ] Ina son iyaka da kurakurai ban da yanayin farin ciki
  • [ ] Na tabbatar da cewa kowane gwaji ya ƙunshi tabbataccen tabbaci
  • [ ] Na gaya wa AI abin da lambar ya kamata ta yi, ba abin da yake yi ba
  • [ ] Na mai da hankali kan ainihin hanyoyin haɗari, ba adadin ɗaukar hoto ba
  • [ ] Na yi amfani da tsayayyen mai ganowa a gwajin UI, ban ɗaure da rubutu ba