Jednotka 11 / 11

Kompletní pracovní postup, integrace CI/CD, etika a zabezpečení: zodpovědné používání umělé inteligence

zisky:

  • Schopnost navrhnout roli umělé inteligence a lidských schvalovacích bodů v komplexním toku kontroly kvality od nápadu po vydání v kontextu CI/CD
  • V CI/CD neautorizuje AI automaticky „projít“ testem, ale aplikuje limity na ochranu důvěrných dat a klíčů
  • Schopnost provádět bezpečnostní testování v rámci autority a pro obranné účely a přijímat zásady odpovědného zveřejňování a etické transparentnosti.

V předchozích deseti jednotkách jsme AI používali v jednotlivých úlohách: generování scénářů, automatizační kód, hlášení chyb, analýza pokrytí, testování mutací. Tato závěrečná jednotka je všechny spojuje do jednoho zodpovědného pracovního postupu. Moderní QA není práce, která končí u stolu jedné osoby; Je to proces, který žije v rámci CI/CD (Continuous Integration / Continuous Delivery — potrubí, kde je kód neustále kombinován, automaticky testován a připravován k publikování, často a bezpečně). AI se může dotknout každé fáze tohoto procesu. Ale jak roste síla umělé inteligence, roste i význam jejího zodpovědného používání: soukromí, autorita při testování zabezpečení, etika a především ponechání rozhodnutí o kvalitě na člověku. V této jednotce se naučíte end-to-end tok a hranice.

End-to-end tok QA poháněný umělou inteligencí

Role umělé inteligence na cestě funkce od nápadu k vydání:

1. Analýza požadavků. AI označí nejednoznačnosti v požadavku a chybějící kritéria přijetí („toto pravidlo neříká, kolik znaků je heslo minimální“).

2. Návrh testu. Mezi kritéria přijatelnosti patří návrhy scénáře a případu (jednotka 2), okrajové případy (jednotka 3).

3. Automatizace. Návrhy testovacího kódu jednotky (6), API (5) a uživatelského rozhraní (4); každý je potvrzen mutací (10).

4. Integrace CI/CD. Testy se spouštějí automaticky při každém sloučení kódu. AI navrhuje konfiguraci potrubí (YAML), shrnuje protokoly neúspěšných testů a navrhuje možnou hlavní příčinu.

5. Rozhodnutí o propuštění. Shromažďují se výsledky analýzy rizik (8) a regrese (9), ale zda může být úspěšná, rozhoduje odborník.

6. Monitorování výroby a zpětná vazba. Chyby v přímém přenosu se stanou budoucími testy; AI navrhuje případ regrese z výrobní vady.

Tip: Nastavte AI jako vrstvu v CI/CD, která „urychluje návrhy kontrolované člověkem“ spíše než „píše testy a přijímá rozhodnutí“. Žádné automaticky generované testy by neměly vstupovat do potrubí, aniž by je člověk zkontroloval a schválil.

AI v CI/CD: kde ano, kde ne

Jeviště

AI fit

člověk je nezbytný

Návrh testovacího kódu

Ano

Revize + mutace

Návrh potrubí YAML

Ano

Autentizace + kontrola tajného klíče

Shrnutí protokolu se nezdařilo

Ano

Potvrzení hlavní příčiny

Diagnostika křehkého testu

Ano

Rozhodnutí o trvalém řešení

"Může existovat verze?"

ne

Odborný úsudek a odpovědnost

Automaticky „projít“ testem

nikdy

Upozornění: Nikdy nedávejte AI příkaz jako „opravte to, aby prošlo neúspěšným testem“ v CI/CD. To maří účel testování a automaticky zakrývá chyby. AI může vysvětlit chybu, navrhnout opravu; ale "natírat zkušební zelenou" musí být vědomé, odůvodněné rozhodnutí člověka.

Soukromí, data a bezpečnost: neměnné hranice

soukromí. V testovacím prostředí jsou skutečná zákaznická data, kopie produkční databáze, klíče API a interní systémové informace citlivé. Nedávejte je veřejným nástrojům umělé inteligence. Osobní údaje podléhají KVKK a podobným předpisům; Maskovat protokoly a snímky obrazovky. Kdykoli je to možné, používejte syntetická (fiktivní) testovací data.

Bezpečnostní testování — defenzivní a autorizované. Bezpečnostní testy naučené v tomto modulu (autorizační/IDOR testy, limity nahrávání souborů, validace vstupu) jsou pouze pro testování vašeho vlastního produktu v rámci písemného oprávnění a definovaného rozsahu. Používání umělé inteligence k přístupu do systému někoho jiného bez povolení, zbrojení skutečných zranitelností nebo provádění testování mimo rozsah je neetické i nezákonné. Když najdete zranitelnost zabezpečení, dodržujte zásadu odpovědného zveřejnění – uchovejte zranitelnost v tajnosti a nahlaste ji příslušné straně, aby mohla být opravena.

Etika a transparentnost. Neprezentujte testy vytvořené AI jako svou vlastní práci; Prohlášení, že v týmu používáte AI, je transparentní. Jste zodpovědní za nepřesnost výstupu vytvořeného AI – „AI to napsala“ není omluva.

Slabá výzva / Silná výzva

Slabé: "Nastavit testovací kanál pro CI."
Strong: "Navrhněte pracovní postup CI YAML pro GitHub Actions: spusťte testy jednotky + API na každém PR, vygenerujte zprávu o pokrytí, spusťte testování mutací (Stryker) každý týden. Nevkládejte tajná tajemství do kódu; používejte pouze odkaz na tajná tajemství. Pokud jsou testy červené, zablokujte sloučení. Toto je NÁVRH; zkontroluji a upravím kroky pro správu a ověřování tajného klíče.

Výkonná výzva; Ukládá omezení důvěrnosti, kontroly člověkem a „žádné automatizované testování“.

Čtyři kopírovatelné šablony

1) Plán end-to-end testování:

Vaše role: senior QA leader. Vypracujte plán komplexního testování od nápadu po vydání pro následující funkci: [funkce + kritéria přijetí]. Fáze: analýza požadavků (nejistoty), návrh testu, automatizační vrstvy (jednotka/API/UI), integrace CI/CD, kritéria rozhodnutí o vydání, sledování výroby. Určete roli AI a HUMAN bodů schválení v každé fázi zvlášť.

2) Náčrt potrubí CI/CD:

Návrh CI YAML pro [GitHub Actions/GitLab CI/Azure Pipelines]:- Jednotka + test API + rozsah v PR- Zabránit sloučení v červeném testu- Tajné hodnoty ​​pouze s tajnými; vložení do kóduToto je koncept; Prověřím kroky správy klíčů a schvalování. Přidání kroku automatické opravy/úspěšného testu.

3) Neúspěšná analýza protokolu testu:

Na tomto výtisku CI jsou testy červené. Prozkoumejte protokol; seskupte poruchy, rozlište možnou hlavní příčinu a KTERÉ může být skutečné selhání a které může být křehkým problémem testu/prostředí. Pokud existují osobní údaje, maskujte je. Rozhodnutí a náprava bude na mně. Log: [vložit]

4) Předběžná kontrola zabezpečení/ochrany soukromí:

Před odesláním těchto testovacích dat/protokolů do nástroje AI zkontrolujte: obsahují osobní údaje, klíč API, adresu interního systému, výrobní údaje? Uveďte, které oblasti, pokud existují, je třeba maskovat/odstranit. Zpracování tak, jak je. Obsah: [vložit]

tři mini pouzdra

Případ 1 — Rychlost toku mezi koncovými body. Jeden tým se zabýval novou funkcí „obnovení předplatného“ s end-to-end tokem poháněným umělou inteligencí: předem označené nejistoty požadavků, navrženy třívrstvé testy a ověřené mutace, spojené s CI. Tato funkce zkrátila testovací cyklus, který v tradičním procesu trval 5 dní, na 2 dny; ale souhlas člověka byl zachován v každé fázi a nejistota požadavků (co se stane, když selže aktualizace) byla uzavřena před spuštěním.

Případ 2 – Návrat z úniku klíče. Vývojář nechal AI vygenerovat CI YAML a AI vložila do YAML jako příklad skutečně vypadající klíč API. Krok „předběžná kontrola zabezpečení/ochrany soukromí“ to zachytil; klíč převeden na tajný odkaz. Bez kroku auditu by klíč unikal do správy verzí (historie git).

Případ 3 – Omezení pravomoci. Člen týmu chtěl použít test IDOR, který se naučil, na živý systém obchodního partnera z „Byl jsem zvědavý“. Vedoucí QA se zastavil: je nezákonné provádět bezpečnostní testování na jiném systému bez písemného povolení a definovaného rozsahu. Testování bylo prováděno pouze v testovacím prostředí jejich vlastních produktů s autoritou; Otevřená odpovědná strana byla informována příslušnému týmu.

Časté chyby

  • Umělá inteligence činí rozhodnutí o vydání. Položení otázky "Lze to uvolnit?" na AI a uvedení odpovědi na místo podpisu.
  • "Absolvování" automatizovaného testu. V CI, když AI vybarví testovací zelenou; zakrývání chyb.
  • Předání důvěrných dat/klíče vozidlu. Sdílení produkčních dat, osobních údajů nebo API klíčů bez dohledu.
  • Neautorizované bezpečnostní testování. Testování útočníka na jiném systému bez rozsahu a povolení.
  • Zavádění testů do potrubí bez kontroly. Automaticky spusťte náčrt AI bez souhlasu člověka.
  • Svalování viny na AI. Obhajoba nesprávného výstupu slovy „AI to napsala“.

V souhrnu

End-to-end QA je proces, který sahá od požadavků až po sledování výroby a žije v rámci CI/CD; V každé fázi AI vytváří návrhy, shrnuje protokol a navrhuje základní příčiny. Ale hranice jsou neměnné: lidé rozhodují o testování a schvalují vydání; Umělá inteligence nikdy nemá oprávnění automaticky „projít“ testem; důvěrné údaje a klíče nevstupují do vozidla; Testování bezpečnosti se provádí pouze na vašem vlastním produktu, v rámci písemného oprávnění a definovaného rozsahu, pro obranné účely a nálezy jsou hlášeny s odpovědným zveřejněním. Buďte transparentní, když používáte AI; Jste odpovědní za správnost výstupu. AI zrychluje; Zaručujete kvalitu a etiku.

Aplikační úkol

Navrhněte plán od nápadu až po vydání pomocí šablony „plánu komplexního testování“ pro funkci z vašeho vlastního projektu; V každé fázi označte roli AI a lidských schvalovacích bodů zvlášť. Poté vygenerujte YAML s „nákresem kanálu CI/CD“ a aplikujte na tento YAML „předběžnou kontrolu zabezpečení/ochrany soukromí“, abyste zkontrolovali vložená klíčová/tajná data. Nakonec uveďte všechny body „lidského rozhodnutí“ ve vašem plánu a jednou větou zdůvodněte, proč tato rozhodnutí nelze delegovat na AI.

kontrolní seznam

  • [ ] Rozhodnutí o uvolnění a testování přisuzuji lidskému schválení; Nepředal jsem to AI.
  • [ ] V CI/CD jsem nedal povolení AI k automatickému "provedení/opravě" testu.
  • [ ] Před odesláním do vozidla jsem zkontroloval a zamaskoval důvěrná data, osobní údaje a klíče.
  • [ ] Uvažoval jsem pouze o testování zabezpečení na svém vlastním produktu v rámci písemného oprávnění a rozsahu.
  • [ ] Nalezená zranitelnost jsem řešil zásadou zodpovědného odhalení.
  • [ ] Transparentně jsem uvedl, že jsem použil AI a že jsem zodpovědný za přesnost výstupu.

Modulová zkouška

1. Jak je nejpřesněji definováno „falešné povolení“ v kontextu kontroly kvality?

  • A) Přestože test zezelená, ve skutečnosti nepotvrzuje žádné chování; ✔ Nezčervená, i když je kód poškozen
  • B) Test probíhá velmi pomalu a vyprší časový limit.
  • C) Test detekuje skutečnou chybu a zčervená
  • D) Test běží pouze v produkčním prostředí

Vysvětlení: Pseudoprůchod je, když test říká 'prošel', ale ve skutečnosti nepotvrzuje nic smysluplného; Test je zelený, ale i když je software vadný, nezachytí to. Toto je riziko číslo jedna AI v QA, protože AI má tendenci vytvářet testy, které vypadají úhledně, ale jsou duté.

2. Jaké je nejpřesnější umístění umělé inteligence v procesu testování a QA?

  • A) Umělá inteligence může rozhodnout, zda lze verzi vydat bez souhlasu člověka
  • B) Umělá inteligence je asistent, který generuje návrhy a nápady; Rozhodnutí a odpovědnost za „je připraveno k publikaci“ náleží odborníkovi ✔
  • C) Umělá inteligence pouze píše text a vůbec si neumí poradit s testovacím kódem
  • D) Umělá inteligence vždy napíše správný test než člověk, takže kontrola je zbytečná

Popis: Umělá inteligence je testovací asistent, generátor návrhů a multiplikátor nápadů; vytváří testovací scénáře, automatizační kód a návrhy zpráv. Odpovědnost a konečné schválení rozhodnutí o kvalitě, jako například „je tento software připraven k publikaci“ nebo „prošel testem“, však náleží kompetentnímu odborníkovi.

3. Na základě skutečnosti, že chyby se většinou vyskytují u prahových hodnot, která technika návrhu testu má testovat 17, 18 a 19 let samostatně pro věkovou hranici 18 let?

  • A) Test přechodu stavu
  • B) Rozhodovací tabulka
  • C) Analýza hraničních hodnot ✔
  • D) Průzkumné testování

Vysvětlení: Analýza hraničních hodnot je založena na pozorování, že chyby se nejčastěji vyskytují na hranicích a testuje prahové hodnoty (těsně pod, těsně nad a těsně nad limitem) samostatně. Je to výkonná technika, která doplňuje třídy ekvivalence.

4. Který přístup by měl být preferován při výběru prvků, aby se snížila křehkost kódu pro automatizaci testování uživatelského rozhraní vytvořeného pomocí umělé inteligence?

  • A) Použití nejdelší možné cesty XPath
  • B) Výběr prvku podle jeho pozice v pixelech na obrazovce
  • C) Použití selektorů na základě názvů tříd CSS
  • D) Použití stabilních atributů (data-testid) přidaných pro testování ✔

Vysvětlení: Dlouhé cesty XPath a názvy tříd CSS jsou extrémně závislé na struktuře a designu stránky; Rozbije se při sebemenší změně rozhraní. Stabilní atributy přidané speciálně pro testování (např. data-testid) nejsou ovlivněny změnami návrhu a testy jsou robustní.

5. Proč nestačí, aby test API kontroloval pouze stavový kód HTTP (např. 200)?

  • A) Protože data těla se správným stavovým kódem mohou být poškozena a samotná kontrola stavu to nezachytí (pseudodůvěra) ✔
  • B) Protože stavové kódy nejsou v testech API vůbec spolehlivé
  • C) Protože kontrola stavového kódu test hodně zpomaluje
  • D) Protože stavový kód se v testech API nikdy nevrací

Vysvětlení: Zatímco server vrací správný stavový kód, může vracet poškozená data v těle (nesprávný typ, chybějící pole, nesprávně vypočítaná hodnota). Test, který se dívá pouze na situaci, to nevidí a dává falešnou důvěru. Mělo by tedy být přidáno také ověření schématu/smlouvy a obchodních pravidel.

6. Proč je důležité říci AI, aby při tisku testů jednotek „ručně vypočítala očekávanou hodnotu podle akceptačního pravidla, neodkazovala na aktuální výstup funkce“?

  • A) Protože ruční výpočet provádí testy rychleji
  • B) Protože jinak test akceptuje aktuální (možná zabugované) chování kódu jako „správné“ a potvrdí chybu ✔
  • C) Protože umělá inteligence neumí vůbec počítat desetinná čísla
  • D) Protože pravidla přijímání se v testech nikdy nepoužívají

Vysvětlení: Pokud AI ​​odvozuje očekávanou hodnotu z výstupu testované funkce, provede test „úspěšný“, i když je funkce chybná; To znamená, že cokoli kód vytvoří, test se počítá jako pravdivý. Výpočet očekávané hodnoty nezávisle na pravidle akceptace zajišťuje, že test je správcem brány, nikoli zrcadlem kódu.

7. Která z následujících možností je nejvýraznějším znakem dobrého hlášení o chybě?

  • A) Aby byl co nejdelší a nejtechnickější
  • B) Napsáno umělou inteligencí
  • C) Obsahuje deterministické reprodukční kroky, které může vývojář sledovat nezávisle a způsobit chybu ✔
  • D) Je to jen snímek obrazovky

Vysvětlení: Skutečná hodnota hlášení o chybě je v tom, že vývojář může reprodukovat chybu bez vaší pomoci. To zajišťují deterministické, sledovatelné kroky reprodukce od začátku; Pokud tyto kroky chybí, zpráva se často zavře jako „není možné vytvořit“.

8. Který je nejpřesnější výraz pro vztah mezi závažností a prioritou v chybném pravopisu názvu společnosti na domovské stránce?

  • A) Intenzita a priorita by měly mít vždy stejnou hodnotu
  • B) Jak závažnost, tak priorita této chyby jsou rozhodně nízké
  • C) Závažnost a priorita jsou stejné pojmy, stačí jedno označení
  • D) Technická náročnost může být nízká, ale obchodní priorita (reputace) může být vysoká; Ti dva se hodnotí jinak ✔

Vysvětlení: Závažnost je technický dopad chyby (technický překlep je nízký), prioritou je, jak naléhavě je třeba chybu opravit (vysoká, protože jde o prvek reputace, který vidí každý návštěvník). Ti dva nejdou vždy stejným směrem; Tento příklad představuje situaci s nízkou závažností a vysokou prioritou.

9. Jaká je nejpřesnější interpretace testovací sady s 90% pokrytím linky?

  • A) Ukazuje, že řádky jsou provedeny, ale nedokazuje, že se chovají správně; ✔ vysoké pokrytí může poskytnout falešnou důvěru
  • B) Nezvratně dokazuje, že 90 % softwaru je bez chyb
  • C) Je to definitivní měřítko vynikající kvality testu.
  • D) Označuje, že již není potřeba psát žádné další testy

Vysvětlení: Pokrytí řádků označuje, že byly provedeny pouze řádky; Nedokazuje, že poskytuje správné výsledky. Dokonce i s asertivními testy lze dosáhnout 90% pokrytí. Rozsah je mapa „nikdy se nedíval kam“, nikoli ujištění „vše bylo otestováno“; skutečná ochrana se měří mutačním testováním.

10. Jak se při testování založeném na rizicích vypočítává riziko funkce tak, aby řídilo omezené testovací úsilí?

  • A) Pouze podle počtu řádků kódu
  • B) Vynásobením pravděpodobnosti selhání a efektu, který nastane, když se porouchá ✔
  • C) Pouze v pořadí, v jakém byl prvek vyvinut
  • D) Upřednostnění pouze funkce, pro kterou je nejjednodušší psát testy

Vysvětlení: Při testování založeném na riziku je riziko hodnoceno jako pravděpodobnost = pravděpodobnost (pravděpodobnost poruchy) × dopad (poškození v případě porušení). Domény s vysokou pravděpodobností a vysokým dopadem (platba, autentizace) si zaslouží nejintenzivnější testování, zatímco domény s nízkým × nízkým dopadem procházejí lehkým testováním.

11. Jaké je hlavní riziko přidání opakování k testu, který někdy projde a někdy selže (křehký/roztrhaný), i když se kód nezměnil?

  • A) Zkrácení doby trvání testu
  • B) Snižuje procento pokrytí
  • C) Zakrytí skutečné chyby souběžnosti nebo hlavní příčiny a potlačení příznaku ✔
  • D) Změna názvu testu

Vysvětlení: Opakování je diagnostický nástroj, nikoli léčba. Nerozhodnost často pochází ze skutečné rasy nebo závislosti; Tím, že test „projde“ opakovaným pokusem, zakryje tuto skutečnou chybu a může způsobit vážné problémy naživo. Nejprve je třeba najít hlavní příčinu.

12. Jak funguje testování mutací, nejupřímnější metoda měření, zda testovací sada skutečně chrání?

  • A) Měřením rychlosti běhu testů
  • B) Spočítáním, kolik řádků kódu bylo napsáno
  • C) Spuštěním testů v různém pořadí
  • D) Záměrným vytvářením malých zlomů v kódu a měřením, zda je testy zachycují ✔

Popis: Testování mutací vytváří malé záměrné zkreslení (mutace) ve zdrojovém kódu; Dobrá testovací sada by měla zachytit tato zkreslení a zčervenat. Mutace, které nejsou zachyceny (přežité), naznačují, že testy toto chování nezachovají. Skóre mutace je mnohem poctivějším měřítkem kvality než procentuální pokrytí.

13. Jaký je hlavní limit, který je třeba dodržovat při provádění bezpečnostních testů (např. autorizační/IDOR testy)?

  • A) Mělo by být provedeno pouze na jeho vlastním produktu, v rámci písemného povolení a definovaného rozsahu, pro obranné účely ✔
  • B) Lze jej volně aplikovat na jakýkoli zájmový systém
  • C) Lze jej bez povolení vyzkoušet na živých systémech obchodních partnerů
  • D) Jakékoli nalezené chyby zabezpečení by měly být okamžitě zveřejněny.

Popis: Bezpečnostní testy získané v tomto modulu slouží pouze k testování vašeho vlastního produktu pro obranné účely, v rámci písemného oprávnění a definovaného rozsahu. Přístup do systému někoho jiného bez povolení nebo provádění testování mimo rozsah je neetické i nezákonné; Jakékoli nalezené chyby zabezpečení jsou hlášeny prostřednictvím odpovědného zveřejnění.

14. Jaké oprávnění by nikdy nemělo být uděleno AI v procesu CI/CD?

  • A) Shrnutí neúspěšných testovacích protokolů
  • B) Oprávnění automaticky „projít“ neúspěšným (červeným) testem nebo jej přebarvit zeleně ✔
  • C) Návrh zkušebního kódu
  • D) Pipeline výkres souboru YAML

Popis: Umělá inteligence může vytvářet obrys testovacího kódu, kanál YAML a souhrn protokolů v CI/CD; nikdy by však neměla být poskytována schopnost automaticky „projít/opravit“ neúspěšný test. To maří účel testování a automaticky zakrývá chyby. Malování zkušební zelené by mělo být vědomým a odůvodněným rozhodnutím člověka.