Fitimet:
- Të jesh në gjendje të dallosh se ku inteligjenca artificiale kursen kohë reale në procesin e sigurimit të cilësisë dhe ku vendimet cilësore si 'gati për publikim' u lihen njerëzve, në varësi të nivelit të rrezikut të detyrës
- Aftësia për të njohur rrezikun e kalimeve të rreme dhe për të zbatuar një disiplinë verifikimi që teston çdo test të AI duke thyer qëllimisht kodin
- Aftësia për të mbrojtur të dhënat e testimit, të dhënat personale dhe çelësat, dhe për të fituar zakonin e kryerjes së testimit të sigurisë vetëm brenda autorizimit dhe për qëllime mbrojtëse.
Konsideroni një natë lëshimi. U kryen qindra teste, të gjitha morën dritën jeshile, ekipi u lehtësua dhe softueri u ndez. Të nesërmen në mëngjes, klienti raportoi se ekrani i pagesës ishte rrëzuar. Testet ishin jeshile, por ai nuk e pa gabimin. Ky është makthi më tinëzar i profesionit të sigurimit të cilësisë (QA), domethënë, disiplinës që siguron sistematikisht që softueri të jetë i cilësisë së dëshiruar: testi që shkëlqen jeshil, por në fakt nuk konfirmon asgjë. Kur inteligjenca artificiale (AI - softuer që nxjerr modele nga të dhënat historike dhe gjeneron tekst dhe kod) hyn në këtë profesion, ka një përshpejtim të madh dhe një zmadhim të pikërisht këtij makthi. Premtimi fillestar i këtij moduli është i qartë: AI është një asistent testimi, gjenerues i planeve dhe shumëzues idesh; Ju jeni testuesi që nënshkruan vendimin "a është ky softuer gati për lëshim".
Në këtë njësi të parë do të fokusohemi te disiplina, jo te mjeti. Do të mësoni se ku AI kursen kohë reale në procesin e QA, ku është e rrezikshme, pse e ashtuquajtura "false-pass" e gjelbër mashtruese është rreziku më i madh, si të verifikoni çdo dalje dhe çfarë të dhënash mund t'i jepni cilit mjet. Pa hedhur këtë themel, njësitë e mëvonshme do të mbeten në ajër.
Ku vjen në ndihmë AI në procesin e testimit?
Le t'i ndajmë punët e testimit në dy grupime të mëdha. Grupi i parë: punë të përsëritura, të prodhuara, projektuese. Hartimi i një rasti testimi nga një kërkesë, renditja e pikave të ndërprerjes, shkrimi i një skeleti kodi automatizimi për një ekran, përkthimi i një rasti kompleks gabimi në një raport gabimi të rregullt, përmbledhja e qindra rreshtave të skedarëve të regjistrit, nxjerrja e një skeme nga një përgjigje API. Në këto detyra, AI redukton minutat në sekonda dhe nuk lodhet.
Grupi i dytë: vendimet, rezultati i të cilave është cilësia, besimi dhe përgjegjësia. Vendime të tilla si "a mund të fillojë ky version", "a është ky gabim kritik apo mund të shtyhet", "a është i mjaftueshëm ky mbulim i testit", "a kap ky skenar rrezikun real të përdoruesit" etj. kërkojnë kontekst, njohuri për produktin dhe përgjegjësi. Këtu AI gjeneron opsione, drafte - por ju vendosni "kaloni/dështoni" dhe "shko/mos shko".
Le të sqarojmë dallimin me një fjali: AI është i fortë në "çfarë situatash mund të testohen dhe si të shkruhet kodi që e teston atë"; Vendimi është i juaji kur bëhet fjalë për pyetjen "A funksionon vërtet ky softuer dhe kush garanton për të?"
Këshillë: Përpara se t'ia dorëzoni një punë AI, pyesni: "Çfarë ndodh nëse ky rezultat është i gabuar dhe unë nuk e vërej?" Nëse përgjigjja është "Do të humbas disa minuta", delegojeni lehtësisht. Nëse përgjigja është "softueri i gabuar shkon drejtpërdrejt", lëreni AI të prodhojë draftin dhe ju merrni vendimin dhe verifikimin.
Kalimi i rremë: rreziku numër një i AI në QA
Kur një test ndizet jeshile, mund të nënkuptojë dy gjëra: ose softueri po funksionon në të vërtetë si duhet, ose nuk po e sheh defektin sepse testi është shkruar gabim. E dyta quhet kalim i rremë - testi thotë "kaloni", por në fakt nuk konfirmon asgjë. Ky rrezik rritet ndjeshëm në testet e prodhuara me AI, sepse AI është shumë i suksesshëm në shkrimin e testeve të rrjedhshme, me pamje të qetë, por boshe.
Tre format më të zakonshme të pseudo-kalimit janë: (1) Testimi pa pohim - kodi ekzekutohet, nuk përmban pohime, gjithmonë kalon. (2) Testi vetë-verifikues - vlera e pritshme e testit llogaritet nga dalja e kodit nën testim; Kjo do të thotë, çfarëdo që prodhon kodi, testi e pranon si "të saktë". (3) Testi që verifikon gjënë e gabuar - pohimi ekziston, por ai kontrollon diçka të parëndësishme (p.sh. "përgjigja nuk është e pavlefshme"), jo rregullin aktual të biznesit.
Kujdes: Një panel testimi i gjelbër nuk është provë e cilësisë; Në rastin më të mirë thotë "kontrollet që kemi shkruar nuk janë prishur tani". Mos u ngushëlloni duke parë një "kalim" në testin që prodhon AI - pyetja e vërtetë është: a do të bëhet ky test i kuq nëse unë e thyej qëllimisht kodin? Nëse nuk rrotullohet, ai test është një dekorim.
Rregulli i artë që përsëritet gjatë gjithë këtij moduli: testoni çdo test të AI duke thyer qëllimisht kodin. Nëse testi është ende i gjelbër, ai test nuk funksionon. (Ne do ta thellojmë këtë ide si testim mutacioni në njësinë 10.)
Disiplina e verifikimit: tre hapa
AI flet me besim; Kjo nuk do të thotë se është e vërtetë. Zhvilloni një refleks me tre hapa për t'u zbatuar për çdo rezultat:
- Lidheni atë me kërkesën. Çdo rast testimi dhe pohimi që AI prodhon duhet të bazohet në një kërkesë reale ose kritere pranimi (kushtet që duhet të plotësojë një punë në mënyrë që të konsiderohet "e kryer"). "Cilin rregull konfirmon ky skenar?" pyesni.
- Shihni të kuqe. Ekzekutoni testin e gjeneruar një herë, duke thyer kodin. Nëse nuk bëhet e kuqe, testi është i pavlefshëm. Ky është hapi i panegociueshëm në testimin e AI.
- Kaloni atë përmes filtrit të kontekstit. A përputhet rezultati me atë që dini se është sjellja e produktit, arkitektura, rrjedha aktuale e përdoruesit? Njohuritë tuaja për domenin janë filtri përfundimtar.
Privatësia dhe siguria e të dhënave: çfarë shkon ku?
Të dhënat me të cilat punoni në mjedisin e testimit janë shpesh të ndjeshme: të dhënat reale të klientëve, kopjet e bazës së të dhënave të prodhimit, çelësat API, adresat e brendshme të sistemit, veçoritë që ende nuk janë shpallur. Bëni një klasifikim të thjeshtë: Të dhënat e hapura (të dokumentuara, të disponueshme publikisht) mund të hyjnë në çdo automjet. Të dhënat e brendshme (fragmentet e kodit burimor, dokumentacioni i brendshëm) vetëm për mjetet e miratuara nga agjencia. Të dhënat konfidenciale (të dhënat reale të klientit, informacioni i identitetit, detajet e cenueshmërisë, çelësat) hyjnë vetëm në mjetet e kontraktuara të institucionit, të dhënat e të cilëve nuk shkojnë në trajnimin e modeleve, mundësisht të maskuara.
Ekziston një kufi shtesë në kontekstin e testimit të sigurisë: gjithçka që mësohet në këtë modul është për qëllime mbrojtëse - për të testuar me autoritet sigurinë e produktit tuaj. Përdorimi i AI për të depërtuar në sistemin e dikujt tjetër pa leje, për të armatosur dobësitë reale ose për të testuar një sistem për të cilin nuk keni autoritet është joetik dhe kriminal. Asnjë testim fyes nuk do të bëhet pa autorizim (fushëveprimi dhe leje).
Këshillë: Përdorni të dhëna testimi sintetike (të prodhuara artificialisht) në vend të të dhënave reale të klientit. Kërkimi i AI-së për të "gjeneruar të dhëna testimi realiste, por plotësisht fiktive" ruan privatësinë dhe diversifikon rastet e skajshme.
tre mini kuti
Rasti 1 — Kursimi i kohës në vendin e duhur. Testuesi i një ekipi të Ekomerce kaloi 6 orë duke krijuar manualisht një skenar testimi nga dokumenti i kërkesave prej 30 faqesh për çdo version. Ai ia dha dokumentin (pjesën që nuk përmbante sekrete tregtare) YZ dhe kërkoi një draft të strukturuar të skenarit; Koha u reduktua në 90 minuta. Ai i kushtoi kohën e kursyer për të verifikuar vetë duke shtuar rastet e avantazhit të rregullave të biznesit që AI kishte humbur. AI hoqi punën e përsëritur, duke ia lënë gjykimin njeriut.
Rasti 2 - Kapja e kalimit të rremë. Një zhvillues kishte që AI të shkruante 12 teste njësi për një funksion llogaritës; ishin të gjitha të gjelbra. Testuesi zbatoi hapin "shih të kuqen": ndryshimi i qëllimshëm i shenjës së mbledhjes brenda funksionit në shumëzim. Vetëm 3 nga 12 teste u kthyen me ngjyrë të kuqe. 9 testet e tjera nuk dhanë konfirmim të vërtetë; Thjesht thoshte "nuk bëri një gabim". U fshinë 9 teste dekorative dhe në vend të tyre u shkruan 5 teste reale.
Rasti 3 - Kthimi nga shkelja e privatësisë. Një praktikant ngjiti një regjistër gabimesh që përmban email-et reale të klientëve dhe katër shifrat e fundit të kartës nga baza e të dhënave të prodhimit në një mjet publik dhe tha "shpjego këtë gabim". Ndërhyri drejtuesi i SC: këto ishin të dhëna personale jashtë kontrollit dhe shkelje e KVKK-së (Ligji për Mbrojtjen e të Dhënave Personale). E njëjta punë u krye në një automjet të miratuar nga institucioni, duke maskuar zonat personale dhe duke lënë vetëm një gjurmë pirg.
Katër shabllone të kopjueshëm
1) Vlerësimi i përshtatshmërisë së punës:
Roli juaj: udhëheqës i lartë i SC. Unë do t'ju përshkruaj një punë testimi. Më thuaj (1) nëse kjo punë është punë hartuese/analitike që mund t'i delegohet në mënyrë të sigurt AI ose një vendim cilësor që njeriu duhet të marrë, (2) kostoja e mundshme e rezultatit të pasaktë, (3) verifikimi që duhet të bëj përpara delegimit. Puna: [fut punën këtu]
2) Kontrolli pseudo-kalimi:
Shikoni testin më poshtë. Më thuaj:- Çfarë sjellje konfirmon ky test? (një fjali)- Si mund ta thyej kodin nën provë në mënyrë që testi të kthehet në KUQ?- A ka ndonjë dobësi që mund të bëjë që ky test të kalojë gjithmonë (pohimi që mungon, vetëvleftësimi, kontrolli i parëndësishëm)? Testi: [ngjit testin këtu]
3) Testoni kontrollin e maskimit të të dhënave:
Regjistri/të dhënat që do t'ju jap mund të përmbajnë fusha personale ose konfidenciale (e-mail, emër, kartë, çelës, adresë të brendshme). Së pari, listoni fushat që duhet të maskohen; Unë do ta maskoj dhe do ta dërgoj përsëri. Mos e analizoni ashtu siç është.
4) Gjenerimi i të dhënave të testit sintetik:
Gjeneroni 20 rreshta të dhënash testimi plotësisht imagjinare dhe realiste për [strukturën e mëposhtme të fushës]. Mos përdorni të dhëna reale të personit/organizatës. Përfshi gjithashtu rastet e skajeve: hapësirë boshe, tekst shumë i gjatë, vlera kufi, format i pavlefshëm.
Prompt i dobët / Prompt i fortë
E dobët: "Shkruani teste në këtë kod."
Strong: "Llogaritni këtë Shkruani testet e njësisë për funksionin e zbritjes. Kriteret e pranimit për funksionin: 10% zbritje mbi 1000 TL, 20% zbritje mbi 5000 TL; shuma negative duhet të sjellë një gabim. Specifikoni me një rresht komenti se cilin rregull po vërtetoni për çdo test. Testoni vlerat kufi (9010, 500, 1 -1) Përdorni pohime reale që do të kthehen në të kuqe nëse e thyej kodin ose nuk shkruaj pohim të parëndësishëm.
Prompt i fuqishëm; Ai siguron kriteret e pranimit, vlerat kufitare, pritjet e vërtetimit dhe udhëzimet e qarta kundër mashtrimit. Prompti i dobët fton AI të shkruajë një test dekorativ.
Gabimet e zakonshme
- Besimi i gjelbër. Të mendosh se kalimi i testit është provë. Pyetja e vërtetë është: a bëhet e kuqe kur thyen kodin?
- Kërkoni një test pa dhënë asnjë arsye. AI prodhon teste gjenerike, shpesh të padobishme, pa e ditur se çfarë duhet verifikuar.
- Po kalon verifikimin. Duke thënë "AI e ka shkruar atë, ndoshta është e vërtetë". Përgjegjësia i takon personit që përdor produktin.
- Ngjitja e të dhënave reale/sensitive në mjet. Puna me të dhënat e prodhimit, çelësat ose të dhënat personale.
- Testim i paautorizuar i sigurisë. Përpjekja për testim fyes pa qëllim dhe leje.
- Përdorimi i AI për të deleguar vendimmarrjen. Duke bërë pyetjen "A mund të lëshohet ky version?" tek UA dhe vendosja e përgjigjes në nënshkrim.
Në përmbledhje
AI është një asistent i fuqishëm në procesin e SC që përshpejton punën e përsëritur dhe të prodhimit; Por përgjegjësia për vendimin cilësor i takon njeriut. Rreziku numër një i AI në këtë profesion është pseudo-kalimi: teste të gjelbra që duken të rregullta, por nuk konfirmojnë asgjë. Testoni çdo test të AI duke thyer qëllimisht kodin; Nëse nuk bëhet e kuqe, ai test është një dekorim. Lidheni atë me kërkesën, shihni të kuqe, kaloni përmes filtrit të kontekstit. Maskojini të dhënat konfidenciale, kryeni testimin e sigurisë vetëm për qëllime të autorizuara dhe mbrojtëse.
Detyra e aplikimit
Merrni 5 teste të njësive të krijuara nga AI (ose të gjeneruara nga AI) nga projekti juaj. Për secilën: (1) shkruani në një fjali se cilën sjellje verifikon, (2) thyeni dhe ekzekutoni qëllimisht kodin në test dhe vini re se sa prej tyre kthehen në të kuqe, (3) shënoni ato që nuk kthehen në të kuqe si "teste dekori" dhe rishkruani ato me pohimin e vërtetë. Vendosni rezultatin në një tabelë: emri i testit / rregulli që u verifikua / a ishte thyer kur u prish / veprimi.
listë kontrolli
- [ ] Para se të dorëzoja veprën, bëra pyetjen "çfarë do të humbas nëse shkon keq?"
- [ ] Kam testuar çdo test të AI duke thyer kodin; Atë që nuk u bë e kuqe e zëvendësova me testin e vërtetë.
- [ ] I lidha rastet e testimit me kërkesat aktuale/kriteret e pranimit.
- [ ] Kam maskuar të dhëna të ndjeshme/reale pa ia dhënë mjetit; Kam përdorur të dhëna sintetike nëse është e mundur.
- [ ] Kam konsideruar testimin e sigurisë vetëm brenda autoritetit dhe për qëllime mbrojtëse.
- [ ] Vendimin "nëse versioni do të dalë" ia lashë vetes, jo AI.