Bölüm 6 / 11

Emeli intellekt bilen synag nesli: Bölüm, interfeýs we awtomatlaşdyryş synaglary

Girdeji:

  • Synag piramidasyna we örtük çägine we ýalňyşlyk ýagdaýlaryna, şeýle hem bagtly ssenariýalara laýyklykda emeli intellekt bilen birlik, integrasiýa we UI synaglaryny öndürip bilmek;
  • Boş / peýdasyz synaglary we her bir synagyň hakykatdanam özüni alyp barşyny tassyklaýandygyny barlamak bilen örtülen örtügi ýok etmek
  • Synagyň ýalňyşlygy tutýandygyny we koduň näme etmelidigini AI-e aýdyp, näsazlygy düzetmeginiň öňüni alýar

Kod ýazmak işiň ýarysy; Koduň dogry işleýändigini subut etmek beýleki ýarysy. Jübi programmalary ýüzlerçe dürli enjamlara, ekranyň ululyklaryna, operasiýa ulgamynyň wersiýalaryna we ulanyjynyň özüni alyp barşyna duş gelýär. Bularyň hemmesini el bilen barlamak mümkin däl; Şonuň üçin awtomatiki synag (kod synag kody - adam basmazdan işleýän synag) ykjam hiliň diregi bolup durýar. AI synaglary ýazmakda ajaýyp netijelidir, sebäbi ýazuw synaglary halaýan nagyş işiniň görnüşi: belli bir giriş üçin belli bir özüni alyp barşyny barlamak. Bu bölümde, AI bilen birlik synagyny, interfeýs synagyny we awtomatizasiýany nädip çaltlaşdyrmalydygyny öwreneris, ýöne synagyň hilini adam gözleri bilen üpjün ederis.

Piramida synagy: näme barlamaly we näçeräk

Sagdyn synag strategiýasy piramida meňzeýär. Esasy köp sanly bölüm synaglaryny öz içine alýar (bir funksiýany ýa-da synpy izolýasiýa synag edýän çalt synag); olar çalt we arzan. Ortada az integrasiýa synagy (köp bölekleriň bilelikde işleýändigini barlamak). Theokarsynda minimal UI / end-to-test bar (ulanyjynyň edişi ýaly ekrana basmak arkaly synag); realist, ýöne haýal we näzik. AI her gatlakda kömek edýär, ýöne iň gymmaty esasda: iş logikasynyň birlik synaglaryny çalt öndürýär.

Synag görnüşi

Ulanyş gerimi

tizlik

AI netijeliligi

birlik synagy

Funke funksiýa / synp

örän çalt

gaty beýik

integrasiýa

interlayer

orta

beýik

UI / ahyry

Screenhli ekran akymy

haýal

Orta (näzik)

Maslahat: AI-e "bu funksiýa üçin synaglary döretmeli" diýlende, gyradaky ýagdaýlary aç-açan soraň: boş giriş, null, negatiw san, gaty uly baha, tor ýalňyşlygy. AI aňsatlyk bilen bagtly ýol döredýär; Hakyky ýalňyşlyklar serhetlerde gizlenýär we şol ýerde islemeýän bolsaňyz bökýär.

AI bilen synag synaglaryny ýazmagyň ädimleri

  1. Synag ediljek özüni alyp barşyny kesgitläň. "Bu funksiýa bu çykyşy bu girişe bermeli."
  2. Çarçuwany kesgitläň. Android-de JUnit + MockK, iOS-da XCTest, Espresso (Android) ýa-da UI üçin XCUITest (iOS).
  3. Çäklendirilen ýagdaýlary soraň. Bagtly ssenariýa + ýalňyşlyk + bölekler.
  4. Masgaralaýjy zatlary dolandyryň. Tor we maglumat bazasy ýaly daşarky baglylyklar synag üçin emulýasiýa edilýär (hakyky hyzmatyň ýerine masgaralaýyn gözegçilik).
  5. Synagy işlediň we barlaň. Synag geçýärmi, hakykatdanam manyly bir zady tassyklaýarmy?

Bäşinji ädim möhümdir. AI käwagt “hemişe geçýän” peýdasyz synaglary öndürýär; meselem, hiç zady tassyklamaýan ýa-da öz galp maglumatlaryny barlamaýan synag. Geçen synag we gymmatly synag dürli zatlar.

Üns beriň: Diňe AI öndürip biljekdigi synagyň dogrydygyny aňlatmaýar. Käwagt AI koduň häzirki (belki nädogry) özüni alyp barşyny "dogry" diýip kabul edýär we şoňa görä synaglar ýazýar. Şeýle synag, ýalňyşlygy tutman, düzedýär. Synagyň nämä garaşýandygyny kesgitleýärsiňiz; AI-e koduň däl-de, näme etmelidigini aýdyň.

Synag gurşawy we ýalňyşlyk

Synag gurşawy (koduň haýsy göterimi synaglar bilen dolandyrylýar) peýdaly, ýöne ýalňyş görkeziji. 90% gurşaw koduň 90% ýerine ýetirilendigini görkezýär; ýöne bu setirleriň dogry işleýändigi tassyklanmady. Bir setir işleýän we netijäni barlamaýan synag gerimini ýokarlandyrýar, ýöne howpsuzlygy üpjün etmeýär. Maksat köp san däl, manyly tassyklamak. AI bilen çalt ulaldyp bilersiňiz, ýöne her synagyň hakykatdanam özüni alyp barşyny barlaýandygyna göz ýetiriň.

üç sany kiçi halat

1-nji waka - Serhet ýagdaýy tutuldy. AI bank programmasynda pul geçirmek funksiýasy üçin synaglar soraldy we ýörite "negatiw mukdar" we "balansdan köp" ssenariýalary goşuldy. Synag, geçirişiň negatiw mukdarda petiklenmändigini ýüze çykardy; bu önümçilikde esasy howpsuzlyk gowşaklygy bolar. Bir setir dolandyryşy goşmak bilen ýapylýar. Sapak: serhet synaglary iň gymmatly synaglardyr.

2-nji waka - galp synag. Bir topar AI tarapyndan öndürilen 40 birlik synagy bilen gurşawy 85% -e ýetirmek üçin rahatlandy. Barlag wagtynda synaglaryň köpüsiniň aslynda hiç hili netijäni barlamaýandygy, diňe funksiýa jaň edendikleri we assertTrue (dogry) ýazandyklary göründi. Daşky gurşaw ýokarydy, ýöne gorag nola deňdi. Synaglar düýpli abatlandy we hakyky tassyklamalar bilen gaýtadan ýazyldy. Sapak: gurşaw nomerleri ýalan bolup biler.

3-nji hadysa - UI synagy çaltlaşdyryldy. Elektron söwda topary, 20 minutda AI bilen goşma araba akymynyň XCUITest skriptini ýazdy; El bilen ýazylan bolsa, ýarym gün gerek bolar. AI çak edilýän ekran elementini kesgitleýjiler; Topar olary hakyky kod bilen gabat getirdi we düzedi. Taslamanyň tizligi hakyky, ýöne kesgitleýjini barlamak adam işi.

Gowşak haýyş / Güýçli haýyş

Gowşak haýyş: "Bu funksiýa üçin synag ýazyň."

Güýçli teklip: "JUnit5 + MockK bilen bu Kotlin funksiýasy üçin birlik synaglaryny öndüriň. Funksiýa: pul geçirmek (mukdar, çeşme, maksat). Synag üçin özüni alyp barşyňyz (kod näme etmeli): - Hakyky geçiriş üstünlikli bolmaly - ativearamaz ýa-da nol mukdar ret edilmeli - Balansdan uly mukdar ret edilmeli - Ulgam ýalňyşlygy diňe bir ýazgy ýazmaly, daşarky ýazgylar bolmaly. tassyklamak. "

Göçürip boljak galyplar

Bölüm synag şablony: "[Dil] üçin bu funksiýa üçin [JUnit / XCTest] birlik synaglaryny dörediň. Garaşylýan özüni alyp barş: [näme etmeli]. Goşuň: bagtly ssenariýa, null giriş, nokatlar, ýalňyşlyk. Her synag ýeke özüni alyp barşyny barlasyn; manyly tassyklamany ulanyň; masgaralaň. [Kod]."

UI synag şablony: "[Espresso / XCUITest] bilen aşakdaky akymyň UI synagyny ýazyň: [ulanyjy akymy ädimme-ädim]. Elýeterlilik ID-si bolan ekran elementlerini saýlaň, tekstiň ýerine id ulanyň. Garaşmak strategiýasyny goşuň.

Synag auditi şablony: "Bu synaglary gözden geçiriň: 1) Çykyş / özüni alyp barşyny barlaýarmy ýa-da güýji ýokmy? 2) Çäklendirilen ýagdaýlary öz içine alýarmy? 3) Kody düzedýärlermi ýa-da dogry hereketlere garaşýarlarmy? Gowşak synaglary belläň we güýçlendiriň. [Synaglar]"

Örtügi optimizasiýa şablony: "Bu synpyň synag edilmedik böleklerini kesgitläň we manyly synaglary teklip ediň. Diňe örtükleriň sanyny däl-de, hakyky töwekgelçilikli ýollary ileri tutuň. [Kod]"

Adaty ýalňyşlyklar

  • Diňe bagtly ssenariýany synap görmek. Rorsalňyşlyklar çäkli ýagdaýda saklanýar; Olary aç-açan soraň.
  • Boş / peýdasyz synagy kabul etmek. AssertTrue (hakyky) görnüşiniň synaglary gerimini ýokarlandyrýar we hiç hili gorag üpjün etmeýär.
  • AI-e eýe bolmak, koduň näme edýändigini barlaň. Synag, koduň näme etmelidigine garaşmalydyr; bolmasa ýalňyşlygy düzedýär.
  • Maksat üçin çäk belgisini ýalňyşdyrmak. 90% gurşaw 90% takyklygy aňlatmaýar.
  • UI synagynda tekste baglanyşyk. Synag tekst üýtgedilende bozulýar; Durnuk kesgitleýjini (id) ulanyň.
  • Masgaralary nädogry düzmek. Hakyky hyzmaty çagyrýan "birlik synagy" haýal we döwük bolar.

Gysgaça

Synag ykjam hiliň diregi bolup, AI bu ugurda, esasanam birlik synagynda örän täsirli. Synag piramidasyna eýeriň: köp birlik, orta integrasiýa, az UI synagy. AI-den bagtly ssenariýany aç-açan soraň, şeýle hem ýagdaýlary we ýalňyş ýollary çäklendiriň. Döredilen her synagyň özüni alyp barşyny tassyklaýandygyna göz ýetiriň; Boş synaglar we çişirilen örtük ýalňyşdyr. Iň esasy zat, AI-e koduň näme etmelidigini däl-de, näme etmelidigini aýdyň, şonuň üçin synag näsazlygy ele alýar, ony düzetmeýär.

Programma meselesi

Işewür logika funksiýasy (meselem, arzanladyş hasaplamasy ýa-da forma tassyklamasy) üçin “Bölüm synag şablony” ulanyp, AI-den synaglary talap ediň we çäklendirilen ýagdaýlary aç-açan kesgitläň (null, negatiw, gaty uly). Döredilen synaglary işlediň, soňra "Synag audit şablony" bilen şol bir synaglary barlaň. Iň bolmanda bir gowşak synagy tapyň, güýçlendiriň we synaglaryň funksiýanyň hakyky ýalňyşlygyny ýa-da ýokdugyny barlaň (kiçijik bir näsazlyk goşup).

gözegçilik sanawy

  • [] Synag piramidasy üçin degişli gatlagy saýladym (ileri tutulýan bölüm)
  • [] Bagtly ssenariýadan başga-da çäk we ýalňyşlyk ýagdaýlaryny isledim
  • [] Her synagyň manyly tassyklamanyň bardygyny tassykladym
  • [] AI-e koduň näme etmelidigini däl-de, näme etmelidigini aýtdym
  • [] Men örtükleriň sanyna däl-de, hakyky töwekgelçilik ýollaryna ünsi jemledim
  • [] UI synaglarynda durnuk kesgitleýjini ulandym, tekste baglamadym