Egység 1 / 11

Bevezetés a mesterséges intelligenciába a szoftvertesztelésben és a minőségbiztosításban: szerepek, határok, hamisítási kockázat és érvényesítés

Nyereség:

  • Meg kell különböztetni, hogy a mesterséges intelligencia hol takarít meg valós időt a minőségbiztosítási folyamatban, és hol marad az emberre a minőségi döntés, például a „közzétételre kész” a feladat kockázati szintjétől függően.
  • Képes felismerni a hamis megfelelések kockázatát, és bevezetni egy olyan ellenőrzési szabályt, amely minden mesterséges intelligencia-tesztet tesztel a kód szándékos feltörésével
  • Képes a tesztadatok, személyes adatok és kulcsok védelmére, és elsajátítani azt a szokást, hogy biztonsági tesztelést csak felhatalmazáson belül és védelmi célból végezzen.

Gondolj egy szabadulási éjszakára. Több száz tesztet lefuttattak, mindegyik zöld utat kapott, a csapat megkönnyebbült, a szoftver pedig élesbe ment. Másnap reggel az ügyfél jelentette, hogy a fizetési képernyő összeomlott. A tesztek zöldek voltak, de nem látta a hibát. Ez a minőségbiztosítási (QA) szakma, vagyis a szoftverek kívánt minőségét szisztematikusan biztosító tudományág legálomosabb rémálma: a zölden világító, de valójában semmit nem erősítő teszt. Amikor a mesterséges intelligencia (AI — olyan szoftver, amely történelmi adatokból mintákat kinyer, szöveget és kódot generál) belép ebbe a szakmába, egy hatalmas felgyorsulás és pontosan ez a rémálom felnagyítása következik be. A modul kezdeti ígérete egyértelmű: a mesterséges intelligencia egy tesztelési asszisztens, tervkészítő és ötletszorzó; Ön a tesztelő, aki aláírja a „kész-e ez a szoftver kiadásra” döntést.

Ebben az első részben a fegyelemre fogunk összpontosítani, nem az eszközre. Megtudhatja, hogy a mesterséges intelligencia hol takarít meg valós időt a minőségbiztosítási folyamat során, hol veszélyes, miért a megtévesztő zöld, úgynevezett "false-pass" a legnagyobb kockázat, hogyan kell ellenőrizni az egyes kimeneteket, és milyen adatokat adhat meg melyik eszköznek. Ennek az alapnak a lerakása nélkül a következő egységek a levegőben maradnak.

Hol jön jól az AI a tesztelési folyamatban?

Osszuk fel a tesztelési feladatokat két nagy klaszterre. Első klaszter: ismétlődő, produkálható, vázlatos munkák. Teszteset elkészítése egy követelményből, töréspontok listázása, automatizálási kódváz írása egy képernyőhöz, összetett hibaeset lefordítása tiszta hibajelentésbe, több száz sornyi naplófájl összegzése, séma kinyerése egy API-válaszból. Ezekben a feladatokban az AI a perceket másodpercekre csökkenti, és nem fárad el.

Második klaszter: olyan döntések, amelyek eredménye minőség, bizalom és felelősség. Az olyan döntésekhez, mint „éles lehet-e ez a verzió”, „kritikus-e ez a hiba vagy elhalasztható-e”, „elegendő-e ez a teszt lefedettsége”, „megfelel-e ez a forgatókönyv valós felhasználói kockázat” stb. kontextust, termékismeretet és felelősséget igényelnek. Itt az AI opciókat, piszkozatokat generál – de Ön dönti el, hogy „megfelelt/nem” és „menni/nem megy”.

Tisztázzuk a különbséget egy mondatban: az AI abban erős, hogy „milyen helyzeteket lehet tesztelni, és hogyan írjunk azt tesztelő kódot”; A döntés az Öné, ha a "Valóban működik ez a szoftver, és ki vállalja érte?"

Tipp: Mielőtt átadna egy munkát az MI-nek, kérdezze meg: "Mi történik, ha ez a kimenet rossz, és nem veszem észre?" Ha a válasz "elveszítek néhány percet", könnyen delegáljon. Ha a válasz „a hibás szoftver életbe lép”, hagyja, hogy az AI készítse el a tervezetet, és Ön hozza meg a döntést és az ellenőrzést.

False pass: az AI első számú kockázata a minőségbiztosításban

Ha egy teszt zölden világít, az két dolgot jelenthet: vagy a szoftver valóban megfelelően működik, vagy nem látja a hibát, mert a tesztet rosszul írták meg. A másodikat hamis sikeresnek nevezik – a teszt azt mondja, hogy „megfelelt”, de valójában nem erősít meg semmit. Ez a kockázat jelentősen megnő az AI-val készített teszteknél, mivel az AI nagyon sikeres a gördülékeny, simán kinéző, de üres tesztek megírásában.

A pszeudo-pass három leggyakoribb formája a következő: (1) Tesztelés állítás nélkül – a kód fut, nem tartalmaz állításokat, mindig megfelel. (2) Önellenőrző teszt – a teszt várható értékét a tesztelt kód kimenetéből számítják ki; Vagyis bármit is produkál a kód, a teszt „helyesnek” fogadja el. (3) Teszt, amely ellenőrzi a rossz dolgot – az állítás létezik, de valami triviálist (pl. „a válasz nem nulla”) ellenőrzi, nem pedig a tényleges üzleti szabályt.

Figyelem: A zöld tesztpanel nem bizonyítja a minőséget; Legjobb esetben azt írja, hogy "az általunk írt vezérlők jelenleg nincsenek elromolva". Ne vigasztalódjon, ha azt látja, hogy a mesterséges intelligencia tesztje „megfelelt” – az igazi kérdés az, hogy ez a teszt piros lesz, ha szándékosan megtöröm a kódot? Ha nem forog, az a teszt dekoráció.

Az aranyszabály, amely ebben a modulban is megismétlődik: minden AI-tesztet teszteljen a kód szándékos feltörésével. Ha a teszt továbbra is zöld, akkor a teszt nem működik. (Ezt a gondolatot mutációtesztként elmélyítjük a 10. egységben.)

Ellenőrzési fegyelem: három lépés

A mesterséges intelligencia magabiztosan beszél; Ez nem azt jelenti, hogy igaz. Alakíts ki egy háromlépcsős reflexet, amely minden eredményre alkalmazható:

  1. Kösd a követelményhez. Minden tesztesetnek és kijelentésnek, hogy az MI-nek valódi követelményen vagy elfogadási kritériumon kell alapulnia (feltételek, amelyeknek egy munkát teljesítenie kell ahhoz, hogy „elvégzettnek” lehessen tekinteni). "Melyik szabályt erősíti meg ez a forgatókönyv?" kérdez.
  2. Megdühödik. Futtassa le egyszer a generált tesztet, megtörve a kódot. Ha nem vált pirosra, a teszt érvénytelen. Ez a mesterséges intelligencia tesztelésének nem megtárgyalható lépése.
  3. Adja át a környezetszűrőn. A kimenet megfelel annak, amiről tudja, hogy a termék viselkedése, architektúrája és tényleges felhasználói áramlása? A domain ismerete a végső szűrő.

Adatvédelem és biztonság: mi hová megy?

A tesztkörnyezetben használt adatok gyakran érzékenyek: valós ügyfélrekordok, éles adatbázis-példányok, API-kulcsok, belső rendszercímek, még be nem jelentett szolgáltatások. Készíts egy egyszerű osztályozást: Nyílt adatok (dokumentált, nyilvánosan elérhető) bármely járműbe bekerülhetnek. Belső adatok (forráskód töredékek, belső dokumentáció) csak az ügynökség által jóváhagyott eszközökhöz. A bizalmas adatok (valós ügyféladatok, személyazonossági információk, sebezhetőségi adatok, kulcsok) csak az intézmény szerződött eszközeibe kerülnek, amelyek adatai nem mennek modellképzésre, lehetőleg maszkolva.

A biztonsági teszteléssel kapcsolatban van egy további korlát: minden, amit ebben a modulban tanulunk, védekezési célokat szolgál – a saját terméke biztonságának hiteles tesztelésére. A mesterséges intelligencia használata valaki más rendszerébe engedély nélkül való behatolásra, valódi sebezhetőségek felfegyverzésére vagy olyan rendszer tesztelésére, amelyre nincs felhatalmazása, etikátlan és bűnöző. Engedély (hatókör és engedély) nélkül nem végeznek sértő tesztelést.

Tipp: A valós ügyféladatok helyett használjon szintetikus (mesterségesen előállított) tesztadatokat. Ha arra kérik az AI-t, hogy „hozzon létre valósághű, de teljesen kitalált tesztadatokat”, megőrzi a magánélet védelmét és változatossá teszi a szélsőséges eseteket.

három mini tok

1. eset – Időmegtakarítás a megfelelő helyen. Az Ekomerce csapatának tesztelője 6 órát töltött manuálisan egy tesztforgatókönyv elkészítésével a 30 oldalas követelménydokumentumból minden kiadáshoz. A dokumentumot (az üzleti titkot nem tartalmazó részt) átadta YZ-nek, és kért egy strukturált forgatókönyv-tervezetet; Az idő 90 percre csökkent. A megspórolt időt arra fordította, hogy saját maga igazolja, és hozzáadja azokat az üzleti szabályok szélső eseteit, amelyeket az AI kihagyott. A mesterséges intelligencia elvette az ismétlődő munkát, az ítéletet az emberre bízta.

2. eset – Hamis passzolást kaptak. Egy fejlesztő az AI-val 12 egységtesztet írt egy számítási függvényhez; mind zöldek voltak. A tesztelő végrehajtotta a "lásd a pirosat" lépést: szándékosan megváltoztatta a függvényen belüli összeadás jelét szorzásra. 12 tesztből csak 3 kapott pirosat. A többi 9 teszt nem adott valódi megerősítést; Csak annyit írt, hogy "nem dobott hibát". 9 dekoratív tesztet töröltek, helyette 5 valódi tesztet írtak.

3. eset – Visszatérés a magánélet megsértéséből. Egy gyakornok beillesztett egy hibanaplót, amely valódi ügyfelek e-mailjeit és a kártya utolsó négy számjegyét tartalmazza az éles adatbázisból egy nyilvános eszközbe, és azt mondta: "magyarázd meg ezt a hibát". A minőségbiztosítási vezető közbelépett: ez ellenőrizhetetlen személyes adat volt, és megsértette a KVKK-t (személyes adatvédelmi törvény). Ugyanezt a munkát az intézmény által jóváhagyott járművön végezték el, a személyes területeket elfedve, és csak veremnyomot hagyva.

Négy másolható sablon

1) Munkaköri alkalmasság felmérése:

Az Ön szerepe: vezető minőségbiztosítási vezető. Leírok egy tesztelési munkát. Mondja el, (1) ez a munka egy olyan tervezési/elemzési munka, amely biztonságosan delegálható az MI-re, vagy egy minőségi döntés, amelyet az embernek kell meghoznia, (2) a helytelen kimenet lehetséges költsége, (3) az ellenőrzés, amelyet a delegálás előtt el kell végeznem. Munka: [feladat beszúrása ide]

2) Ál-pass vezérlés:

Nézze meg az alábbi tesztet. Mondja meg: - Milyen viselkedést erősít meg ez a teszt? (egy mondat)- Hogyan törhetem fel a teszt alatt lévő kódot, hogy a teszt PIROS színűvé váljon?- Van valami gyengeség, ami miatt ez a teszt mindig sikeres lesz (hiányzó állítás, önellenőrzés, triviális ellenőrzés)? Teszt: [teszt beillesztése ide]

3) Tesztadat-maszkolási vezérlés:

Az általam átadott napló/adatok tartalmazhatnak személyes vagy bizalmas mezőket (e-mail, név, kártya, kulcs, belső cím). Először sorolja fel azokat a mezőket, amelyeket maszkolni kell; Maszkírozom és újra elküldöm. Ne elemezze úgy, ahogy van.

4) Szintetikus tesztadatok előállítása:

Hozzon létre 20 sor teljesen kitalált, valósághű tesztadatot [a következő mezőszerkezethez]. Ne használjon valós személyi/szervezeti adatokat. Tartalmazzon éles eseteket is: üres hely, túl hosszú szöveg, határértékek, érvénytelen formátum.

Gyenge felszólítás / Erős felszólítás

Gyenge: "Írjon teszteket erre a kódra."
Erős: "Számítsd ki ezt az Egységtesztek írása a diszkont függvényhez. A függvény elfogadási feltételei: 1000 TL felett 10% kedvezmény, 5000 TL felett 20% kedvezmény; a negatív összeg hibát dobjon. Megjegyzéssorral adja meg, hogy melyik szabályt érvényesíti az egyes teszteknél. Tesztelje külön a határértékeket (999, 1000, 0,10 -01, 0,10) állítások, amelyek pirosra váltanak, ha megtöröm a kódot, vagy nem írok triviális állítást."

Erőteljes felszólítás; Elfogadási kritériumokat, határértékeket, érvényesítési elvárásokat és kifejezett hamisítás elleni utasításokat tartalmaz. A gyenge prompt felkéri az AI-t, hogy írjon egy dekoratív tesztet.

Gyakori hibák

  • A zöldben bízva. Azt gondolni, hogy a teszt sikeres teljesítése bizonyíték. Az igazi kérdés az: pirosra vált, ha feltöri a kódot?
  • Teszt kérése indoklás nélkül. Az AI általános, gyakran haszontalan teszteket készít anélkül, hogy tudná, mit kell ellenőrizni.
  • Ellenőrzés kihagyása. Az a mondás, hogy "MI írta, valószínűleg igaz". A felelősség a kimenetet használó személyt terheli.
  • Valós/érzékeny adatok beillesztése az eszközbe. Gyártási adatokkal, kulcsokkal vagy személyes adatokkal végzett munka.
  • Jogosulatlan biztonsági tesztelés. Támadó tesztelés kísérlete hatókör és engedély nélkül.
  • AI használata a döntéshozatal delegálására. Felteszi a kérdést: "Kiadható ez a verzió?" a mesterséges intelligencia felé, és beírja a választ az aláírásba.

Összefoglalva

Az AI hatékony asszisztens a minőségbiztosítási folyamatban, amely felgyorsítja az ismétlődő és termelhető munkát; De a minőségi döntés felelőssége az embert terheli. A mesterséges intelligencia első számú kockázata ebben a szakmában a pszeudo-pass: zöld tesztek, amelyek jól néznek ki, de nem erősítenek meg semmit. Teszteljen minden AI-tesztet a kód szándékos feltörésével; Ha nem válik pirosra, az a teszt egy dekoráció. Kösd a követelményhez, lásd a pirosat, engedd át a környezetszűrőn. A bizalmas adatok elfedése, biztonsági tesztek végrehajtása csak engedélyezett és védelmi célból.

Pályázati feladat

Végezzen 5 AI által generált (vagy mesterséges intelligencia által generált) egységtesztet saját projektjéből. Mindegyiknél: (1) írja le egy mondatban, hogy melyik viselkedést igazolja, (2) szándékosan törje meg és futtassa le a tesztelt kódot, és jegyezze meg, hány pirosra vált, (3) jelölje meg "dekortesztként" azokat, amelyek nem váltanak pirosra, és írják át a valódi állítással. Tedd az eredményt egy táblázatba: teszt neve / szabály ellenőrizte / hibás volt-e, amikor megtört / akció.

ellenőrző lista

  • [ ] A mű átadása előtt feltettem a "mit veszítek, ha rosszul sül el?"
  • [ ] Minden AI tesztet teszteltem a kód feltörésével; Azt, amelyik nem vált pirosra, lecseréltem az igazi tesztre.
  • [ ] A teszteseteket a tényleges követelmény/elfogadási kritériumokhoz kötöttem.
  • [ ] Maszkíroztam az érzékeny/valós adatokat anélkül, hogy megadtam volna az eszköznek; Lehetőség szerint szintetikus adatokat használtam.
  • [ ] A biztonsági tesztelést csak hatóságon belül és védekezési célból vettem figyelembe.
  • [ ] A "kiadják-e a verziót" döntését magamra bíztam, nem az AI-ra.