Pelnas:
- Galimybė atskirti, kur dirbtinis intelektas taupo realų laiką kokybės užtikrinimo procese, o kur kokybės sprendimai, pvz., „paruošta publikuoti“, paliekami žmonėms, atsižvelgiant į užduoties rizikos lygį
- Gebėjimas atpažinti klaidingų rezultatų riziką ir įdiegti patikros discipliną, kuri tikrina kiekvieną AI testą sąmoningai pažeidžiant kodą
- Galimybė apsaugoti testavimo duomenis, asmeninius duomenis ir raktus bei įgyti įprotį atlikti saugumo testavimą tik esant leidimui ir gynybos tikslais.
Apsvarstykite paleidimo naktį. Buvo atlikta šimtai testų, jie visi uždegė žalią šviesą, komandai palengvėjo ir programinė įranga pradėjo veikti. Kitą rytą klientas pranešė, kad sugedo mokėjimo ekranas. Testai buvo žali, bet jis nematė klaidos. Tai pats klastingiausias kokybės užtikrinimo (QA) profesijos košmaras, tai yra disciplina, kuri sistemingai užtikrina, kad programinė įranga būtų norimos kokybės: žaliai šviečiantis, bet faktiškai nieko nepatvirtinantis testas. Kai dirbtinis intelektas (AI - programinė įranga, kuri ištraukia šablonus iš istorinių duomenų ir generuoja tekstą bei kodą) patenka į šią profesiją, yra ir didžiulis pagreitis, ir būtent toks košmaras. Pradinis šio modulio pažadas yra aiškus: AI yra testavimo asistentas, planų generatorius ir idėjų daugiklis; Jūs esate bandytojas, kuris pasirašo sprendimą „ar ši programinė įranga paruošta išleisti“.
Šiame pirmajame skyriuje daugiausia dėmesio skirsime disciplinai, o ne įrankiui. Sužinosite, kur AI taupo realų laiką atliekant kokybės užtikrinimo procesą, kur tai pavojinga, kodėl apgaulingas žalias vadinamasis „false-pass“ yra didžiausia rizika, kaip patikrinti kiekvieną išvestį ir kokius duomenis galite pateikti kokiam įrankiui. Nepaklojus šio pagrindo, tolesni įrenginiai išliks ore.
Kur AI praverčia testavimo procese?
Padalinkime testavimo darbus į dvi dideles grupes. Pirma grupė: pasikartojantys, gaminami, juodraštiniai darbai. Bandomojo atvejo sudarymas pagal reikalavimą, lūžio taškų sąrašas, ekrano automatizavimo kodo skeleto rašymas, sudėtingo klaidos atvejo pavertimas tvarkinga klaidų ataskaita, šimtų eilučių žurnalo failų apibendrinimas, schemos ištraukimas iš API atsako. Atlikdamas šias užduotis AI sutrumpina minutes iki sekundžių ir nepavargsta.
Antrasis klasteris: sprendimai, kurių rezultatas yra kokybė, pasitikėjimas ir atsakomybė. Tokiems sprendimams kaip „ar ši versija gali pradėti veikti“, „ar ši klaida yra svarbi, ar ją galima atidėti“, „ar pakanka šio testo aprėpties“, „ar šis scenarijus apima realią vartotojo riziką“ ir tt reikalauja konteksto, žinių apie produktą ir atsakomybės. Čia AI generuoja parinktis, juodraščius, bet jūs nusprendžiate „išlaikyti/nepavykti“ ir „eiti/nepavykti“.
Paaiškinkime skirtumą vienu sakiniu: AI yra stiprus tuo, kad „kokiose situacijose galima išbandyti ir kaip parašyti tai tikrinantį kodą“; Jūs turite nuspręsti, ar ši programinė įranga tikrai veikia ir kas už ją garantuoja?
Patarimas: prieš perduodant darbą dirbtiniam intelektui, paklauskite: „Kas nutiks, jei ši išvestis neteisinga ir aš nepastebėsiu? Jei atsakymas yra „prarasiu kelias minutes“, lengvai deleguokite. Jei atsakymas yra „sugedusi programinė įranga pradeda veikti“, leiskite dirbtiniam intelektui parengti juodraštį, o jūs priimsite sprendimą ir patikrinkite.
Klaidingas leidimas: AI rizika numeris vienas kokybės užtikrinime
Kai testas užsidega žaliai, tai gali reikšti du dalykus: arba programinė įranga iš tikrųjų veikia tinkamai, arba ji nemato klaidos, nes testas buvo parašytas neteisingai. Antrasis vadinamas klaidingu išlaikymu – testas sako „išlaikytas“, bet iš tikrųjų nieko nepatvirtina. Ši rizika žymiai padidėja atliekant bandymus, pagamintus naudojant AI, nes AI labai sėkmingai rašo sklandžius, sklandžiai atrodančius, bet tuščius testus.
Trys dažniausiai pasitaikančios pseudo patvirtinimo formos yra: (1) Testavimas be tvirtinimo – kodas veikia, jame nėra tvirtinimų, visada išlaikomas. (2) savitikros testas – laukiama testo vertė apskaičiuojama iš bandomojo kodo išvesties; Tai yra, kad ir ką kodas sukurtų, testas priima kaip „teisingą“. (3) Testas, kuris patvirtina neteisingą dalyką – teiginys egzistuoja, bet patikrina kažką nereikšmingo (pvz., „atsakymas nėra niekinis“), o ne faktinę verslo taisyklę.
Dėmesio: žalias bandymo skydelis nėra kokybės įrodymas; Geriausiu atveju sakoma, kad „valdikliai, kuriuos parašėme, šiuo metu nesugadinti“. Nesijaudinkite matydami, kad dirbtinio intelekto testas „išlaikytas“ – tikrasis klausimas yra toks: ar šis testas taps raudonas, jei tyčia sulaužysiu kodą? Jei nesisuka, tas testas yra puošmena.
Auksinė taisyklė, kuri kartojasi visame šiame modulyje: išbandykite kiekvieną AI testą sąmoningai sulaužydami kodą. Jei testas vis dar yra žalias, šis testas neveikia. (Šią idėją pagilinsime kaip mutacijų testavimą 10 skyriuje.)
Tikrinimo disciplina: trys žingsniai
AI kalba su pasitikėjimu; Tai nereiškia, kad tai tiesa. Sukurkite trijų žingsnių refleksą, kuris būtų taikomas kiekvienam rezultatui:
- Susiekite jį su reikalavimu. Kiekvienas bandomasis atvejis ir tvirtinimas, kad dirbtinis intelektas turi būti pagrįstas realiais reikalavimais arba priėmimo kriterijais (sąlygomis, kurias turi atitikti darbas, kad jis būtų laikomas „atliktu“). „Kokią taisyklę patvirtina šis scenarijus? paklausti.
- Žiūrėkite raudoną. Vieną kartą paleiskite sugeneruotą testą, sulaužydami kodą. Jei jis nepasidaro raudonas, testas negalioja. Tai yra neaptartas AI testavimo žingsnis.
- Perduokite jį per konteksto filtrą. Ar produkcija atitinka tai, ką žinote, yra produkto elgsena, architektūra, faktinis vartotojų srautas? Jūsų domeno žinios yra galutinis filtras.
Duomenų privatumas ir saugumas: kas kur?
Duomenys, su kuriais dirbate bandomojoje aplinkoje, dažnai yra jautrūs: tikri klientų įrašai, gamybos duomenų bazės kopijos, API raktai, vidinės sistemos adresai, dar nepaskelbtos funkcijos. Padarykite paprastą klasifikaciją: atviri duomenys (dokumentuoti, viešai prieinami) gali patekti į bet kurią transporto priemonę. Vidiniai duomenys (pirminio kodo fragmentai, vidinė dokumentacija) tik agentūros patvirtintiems įrankiams. Konfidencialūs duomenys (tikrieji klientų duomenys, tapatybės informacija, pažeidžiamumo detalės, raktai) patenka tik į įstaigos sutartinius įrankius, kurių duomenys nepatenka į modelių mokymus, pageidautina užmaskuoti.
Saugumo testavimo kontekste yra papildomas apribojimas: viskas, kas išmokta šiame modulyje, skirta gynybos tikslams – autoritetingai patikrinti savo gaminio saugumą. Naudoti dirbtinį intelektą, norint be leidimo įsiskverbti į kažkieno sistemą, ginkluoti tikrus pažeidžiamumus arba išbandyti sistemą, kuriai neturite įgaliojimų, yra neetiška ir nusikalstama. Jokie įžeidžiantys bandymai nebus atliekami be leidimo (apimties ir leidimo).
Patarimas: naudokite sintetinius (dirbtinai pagamintus) bandymo duomenis, o ne tikrus klientų duomenis. Prašant dirbtinio intelekto „sugeneruoti tikroviškus, bet visiškai išgalvotus bandymo duomenis“, išsaugomas privatumas ir paįvairinamos ypatingos situacijos.
trys mini dėklai
1 atvejis – laiko taupymas tinkamoje vietoje. „Ekomerce“ komandos bandytojas praleido 6 valandas rankiniu būdu kurdamas bandymo scenarijų iš 30 puslapių reikalavimų dokumento kiekvienam leidimui. Jis atidavė dokumentą (dalį, kurioje nebuvo komercinių paslapčių) YZ ir paprašė struktūrizuoto scenarijaus projekto; Laikas buvo sumažintas iki 90 minučių. Sutaupytą laiką jis skyrė tam, kad pats patikrintų, pridėdamas verslo taisyklių pranašumus, kurių AI nepastebėjo. AI atėmė pasikartojančius darbus, palikdamas sprendimą žmogui.
2 atvejis – užfiksuotas netikras perdavimas. Kūrėjas turėjo AI parašyti 12 skaičiavimo funkcijos vienetų testų; jie visi buvo žali. Testeris įgyvendino veiksmą „žr. raudoną“: sąmoningai pakeitė funkcijos viduje esantį pridėjimo ženklą į dauginimą. Tik 3 iš 12 testų buvo raudoni. Kiti 9 testai nepateikė tikro patvirtinimo; Tiesiog parašyta: „Klaidos nepadarė“. 9 dekoratyviniai testai buvo ištrinti, o vietoj jų parašyti 5 realūs testai.
3 atvejis – grįžimas po privatumo pažeidimo. Stažuotojas į viešą įrankį įklijavo klaidų žurnalą, kuriame buvo tikri klientų el. laiškai ir paskutiniai keturi kortelės skaitmenys iš gamybos duomenų bazės, ir pasakė „paaiškinkite šią klaidą“. Įsikišo QA vadovas: tai buvo nekontroliuojami asmens duomenys ir KVKK (asmens duomenų apsaugos įstatymo) pažeidimas. Tas pats darbas buvo atliktas institucijos patvirtintoje transporto priemonėje, užmaskuojant asmenines vietas ir paliekant tik rietuvės pėdsaką.
Keturi kopijuojami šablonai
1) Tinkamumo darbui įvertinimas:
Jūsų vaidmuo: vyresnysis kokybės užtikrinimo vadovas. Aprašysiu jums testavimo darbą. Pasakykite man (1) ar šis darbas yra rengimo / analizės darbas, kurį galima saugiai perduoti dirbtiniam intelektui, ar kokybiškas sprendimas, kurį turi priimti žmogus, (2) galimas neteisingos išvesties išlaidas, (3) patikrinimą, kurį turėčiau atlikti prieš deleguodamas. Darbas: [įterpti darbą čia]
2) Pseudo-pradavimo valdymas:
Patikrinkite žemiau pateiktą testą. Pasakykite man: – Kokį elgesį patvirtina šis testas? (vienas sakinys)- Kaip galiu sugadinti bandomąjį kodą, kad testas taptų RAUDONAS?- Ar yra koks nors trūkumas, dėl kurio šis testas visada bus sėkmingas (trūksta tvirtinimo, savęs patvirtinimo, nereikšmingo patikrinimo)? Testas: [įklijuokite testą čia]
3) Bandymo duomenų maskavimo valdymas:
Žurnale/duomenyse, kuriuos jums pateiksiu, gali būti asmeniniai arba konfidencialūs laukai (el. paštas, vardas, kortelė, raktas, vidinis adresas). Pirmiausia surašykite laukus, kuriuos reikia užmaskuoti; Užmaskuosiu ir vėl atsiųsiu. Neanalizuokite taip, kaip yra.
4) Sintetinių bandymų duomenų generavimas:
Sugeneruokite 20 eilučių visiškai išgalvotų, tikroviškų bandymų duomenų [toliau nurodyta lauko struktūra]. Nenaudokite tikro asmens / organizacijos duomenų. Taip pat įtraukite kraštines raides: tuščia vieta, per ilgas tekstas, ribinės vertės, netinkamas formatas.
Silpnas raginimas / Stiprus raginimas
Silpnas: „Parašykite šio kodo testus“.
Stiprus: "Apskaičiuokite tai Rašykite vieneto testus nuolaidos funkcijai. Funkcijos priėmimo kriterijai: 10% nuolaida virš 1000 TL, 20% nuolaida virš 5000 TL; neigiama suma turėtų įvesti klaidą. Komentarų eilute nurodykite, kurią taisyklę patvirtinate kiekvienam testui. Išbandykite ribines vertes (999, 1000, 0,0 -01, 0,0). teiginiai, kurie taps raudoni, jei sulaužysiu kodą arba neparašysiu trivialaus tvirtinimo.
Galingas raginimas; Jame pateikiami priėmimo kriterijai, ribinės vertės, patvirtinimo lūkesčiai ir aiškios apsaugos nuo sukčiavimo instrukcijos. Silpnas raginimas kviečia AI parašyti dekoratyvinį testą.
Dažnos klaidos
- Pasitikėjimas žalia. Galvojimas, kad egzamino išlaikymas yra įrodymas. Tikrasis klausimas yra toks: ar jis tampa raudonas, kai sulaužote kodą?
- Prašymas atlikti testą nenurodant jokios priežasties. AI gamina bendrus, dažnai nenaudingus testus, nežinodamas, ką reikia patikrinti.
- Praleidžiamas patvirtinimas. Sakymas „AI parašė, tikriausiai tai tiesa“. Atsakomybė tenka asmeniui, naudojančiam produkciją.
- Tikrų / neskelbtinų duomenų įklijavimas į įrankį. Darbas su gamybos duomenimis, raktais ar asmeniniais duomenimis.
- Neteisėtas saugumo patikrinimas. Bandymas įžeidžiantis bandymas be apimties ir leidimo.
- AI naudojimas sprendimų priėmimui deleguoti. Užduodamas klausimą "Ar ši versija gali būti išleista?" į AI ir atsakymą įrašydami į parašą.
Apibendrinant
AI yra galingas kokybės užtikrinimo proceso asistentas, kuris pagreitina pasikartojantį ir produktyvų darbą; Tačiau atsakomybė už kokybišką sprendimą tenka žmogui. Pirmoji AI rizika šioje profesijoje yra pseudo-passas: ekologiški testai, kurie atrodo tvarkingai, bet nieko nepatvirtina. Išbandykite kiekvieną AI testą sąmoningai sulaužydami kodą; Jei jis neparaudo, tas testas yra puošmena. Susiekite jį su reikalavimu, pamatykite raudoną, perkelkite jį per konteksto filtrą. Užmaskuokite konfidencialius duomenis, atlikite saugumo testus tik įgaliotais ir gynybiniais tikslais.
Taikymo užduotis
Atlikite 5 AI sukurtus (arba AI sukurtus) vienetų testus iš savo projekto. Kiekvienam: (1) vienu sakiniu užrašykite, kokį elgesį jis patikrina, (2) sąmoningai sulaužykite ir paleiskite bandomąjį kodą ir pažymėkite, kiek jų nusidažo raudonai, (3) pažymėkite tuos, kurie nenusileidžia raudonai, kaip "dekoro testus" ir perrašykite juos tikru tvirtinimu. Įveskite rezultatą į lentelę: testo pavadinimas / taisyklė, kurią jis patikrino / ar jis sugadintas, kai buvo pažeistas / veiksmas.
kontrolinis sąrašas
- [ ] Prieš atiduodamas kūrinį uždaviau klausimą „ką aš prarasiu, jei nepavyks?“.
- [ ] Aš išbandžiau kiekvieną AI testą sulaužydamas kodą; Neparaudusį pakeičiau tikru testu.
- [ ] Bandomuosius atvejus susiejau su faktiniu reikalavimu / priėmimo kriterijais.
- [ ] Užmaskavau jautrius / tikrus duomenis, nepateikdamas jų įrankiui; Jei įmanoma, naudojau sintetinius duomenis.
- [ ] Saugumo testavimą svarsčiau tik valdžios ir gynybos tikslais.
- [ ] Sprendimą, „ar versija bus išleista“, palikau sau, o ne AI.