Guadagni:
- Essere in grado di distinguere dove l'intelligenza artificiale fa risparmiare tempo reale nel processo di QA e dove le decisioni sulla qualità come "pronto per la pubblicazione" sono lasciate agli esseri umani, a seconda del livello di rischio dell'attività
- Capacità di riconoscere il rischio di falsi passaggi e di implementare una disciplina di verifica che mette alla prova ogni test di intelligenza artificiale infrangendo deliberatamente il codice
- Capacità di proteggere i dati di test, i dati personali e le chiavi e acquisire l'abitudine di eseguire test di sicurezza solo nell'ambito dell'autorizzazione e per scopi difensivi.
Considera una serata di rilascio. Sono stati eseguiti centinaia di test, tutti hanno ottenuto il via libera, il team è stato sollevato e il software è diventato operativo. La mattina successiva, il cliente ha riferito che la schermata di pagamento si era bloccata. I test erano verdi ma non ha visto l'errore. Questo è l’incubo più insidioso della professione di Quality Assurance (QA), cioè la disciplina che assicura sistematicamente che il software sia della qualità desiderata: il test che si illumina di verde ma in realtà non conferma nulla. Quando l’intelligenza artificiale (AI – software che estrae modelli da dati storici e genera testo e codice) entra in questa professione, si verifica sia un’enorme accelerazione che un ingrandimento di questo incubo. La promessa iniziale di questo modulo è chiara: l’intelligenza artificiale è un assistente ai test, un generatore di progetti e un moltiplicatore di idee; Tu sei il tester che approva la decisione "questo software è pronto per il rilascio?".
In questa prima unità ci concentreremo sulla disciplina, non sullo strumento. Imparerai dove l'intelligenza artificiale fa risparmiare tempo reale nel processo di controllo qualità, dove è pericolosa, perché il cosiddetto "falso passaggio" verde ingannevole è il rischio maggiore, come verificare ogni output e quali dati puoi fornire a quale strumento. Senza gettare queste basi, le unità successive rimarranno in aria.
Dove torna utile l’intelligenza artificiale nel processo di test?
Dividiamo i lavori di test in due grandi cluster. Primo cluster: lavori ripetitivi, producibili, bozze. Redigere un caso di test da un requisito, elencare i punti di interruzione, scrivere uno scheletro di codice di automazione per una schermata, tradurre un caso di errore complesso in un rapporto di errore accurato, riassumere centinaia di righe di file di registro, estrarre uno schema da una risposta API. In questi compiti, l’intelligenza artificiale riduce i minuti a secondi e non si stanca.
Secondo cluster: decisioni il cui risultato è qualità, fiducia e responsabilità. Decisioni come "questa versione può essere pubblicata", "questo bug è critico o può essere posticipato", "la copertura del test è sufficiente", "questo scenario cattura il rischio reale dell'utente" ecc. richiedono contesto, conoscenza del prodotto e responsabilità. Qui l’intelligenza artificiale genera opzioni, bozze, ma tu decidi “passa/fallisci” e “vai/non vai”.
Chiariamo la distinzione in una frase: l'intelligenza artificiale è forte in "quali situazioni possono essere testate e come scrivere codice che le testa"; La decisione spetta a te quando si tratta della domanda "Questo software funziona davvero e chi lo garantisce?"
Suggerimento: prima di affidare un lavoro all'IA, chiedi: "Cosa succede se questo output è sbagliato e non me ne accorgo?" Se la risposta è "perderò qualche minuto", delega facilmente. Se la risposta è "il software difettoso diventa operativo", lascia che sia l'intelligenza artificiale a produrre la bozza e tu prendi la decisione e la verifica.
Falso superamento: il rischio numero uno dell’IA nel QA
Quando un test si illumina di verde, può significare due cose: o il software funziona effettivamente correttamente oppure non rileva il bug perché il test è stato scritto in modo errato. Il secondo si chiama falso passaggio: il test dice "superato" ma in realtà non conferma nulla. Questo rischio aumenta in modo significativo nei test prodotti con l’intelligenza artificiale, perché l’intelligenza artificiale riesce molto bene a scrivere test fluidi, dall’aspetto fluido ma vuoti.
Le tre forme più comuni di pseudo-passaggio sono: (1) Test senza asserzioni: il codice viene eseguito, non contiene asserzioni, passa sempre. (2) Test di autoverifica: il valore atteso del test viene calcolato dall'output del codice in prova; Cioè, qualunque cosa produca il codice, il test lo accetta come "corretto". (3) Test che verifica la cosa sbagliata: l'asserzione esiste, ma controlla qualcosa di banale (ad esempio "la risposta non è nulla"), non la regola aziendale effettiva.
Attenzione: un pannello di prova verde non è una prova di qualità; Nella migliore delle ipotesi dice "i controlli che abbiamo scritto non sono interrotti in questo momento". Non consolarti vedendo un "promosso" nel test prodotto dall'intelligenza artificiale: la vera domanda è: questo test diventerà rosso se infrango deliberatamente il codice? Se non ruota, quella prova è una decorazione.
La regola d'oro che si ripete in questo modulo: testare ogni test di intelligenza artificiale violando deliberatamente il codice. Se il test è ancora verde, il test non funziona. (Approfondiremo questa idea come test di mutazione nell'unità 10.)
Disciplina di verifica: tre passaggi
L’intelligenza artificiale parla con sicurezza; Ciò non significa che sia vero. Sviluppa un riflesso in tre fasi da applicare a ogni risultato:
- Legarlo al requisito. Ogni caso di test e asserzione che l'IA produce deve essere basato su un requisito reale o su criteri di accettazione (condizioni che un lavoro deve soddisfare per essere considerato "fatto"). “Quale regola conferma questo scenario?” chiedere.
- Vedi rosso. Esegui il test generato una volta, rompendo il codice. Se non diventa rosso, il test non è valido. Questo è il passaggio non negoziabile nei test dell’intelligenza artificiale.
- Passalo attraverso il filtro del contesto. L'output corrisponde a ciò che sai essere il comportamento del prodotto, l'architettura, il flusso di utenti effettivo? La tua conoscenza del dominio è il filtro finale.
Privacy e sicurezza dei dati: cosa va dove?
I dati con cui lavori nell'ambiente di test sono spesso sensibili: record di clienti reali, copie di database di produzione, chiavi API, indirizzi di sistema interni, funzionalità ancora da annunciare. Fai una semplice classificazione: i dati aperti (documentati, disponibili al pubblico) possono entrare in qualsiasi veicolo. Dati interni (frammenti di codice sorgente, documentazione interna) solo per strumenti approvati dall'agenzia. I dati riservati (dati reali dei clienti, informazioni sull'identità, dettagli sulle vulnerabilità, chiavi) entrano solo negli strumenti contrattati dell'istituto, i cui dati non vanno alla formazione del modello, preferibilmente mascherati.
Esiste un limite aggiuntivo nel contesto dei test di sicurezza: tutto ciò che viene appreso in questo modulo è a scopo difensivo, per testare in modo autorevole la sicurezza del proprio prodotto. Utilizzare l'intelligenza artificiale per infiltrarsi nel sistema di qualcun altro senza autorizzazione, sfruttare come armi vulnerabilità reali o testare un sistema per il quale non si ha autorità è sia immorale che criminale. Nessun test offensivo verrà effettuato senza autorizzazione (ambito e permesso).
Suggerimento: utilizzare dati di test sintetici (prodotti artificialmente) invece di dati reali dei clienti. Chiedere all’intelligenza artificiale di “generare dati di test realistici ma completamente fittizi” preserva la privacy e diversifica i casi limite.
tre mini custodie
Caso 1 — Risparmia tempo nel posto giusto. Il tester di un team Ekomerce ha trascorso 6 ore creando manualmente uno scenario di test dal documento dei requisiti di 30 pagine per ciascuna versione. Ha consegnato il documento (la parte che non conteneva segreti commerciali) a YZ e ha chiesto una bozza strutturata dello scenario; Il tempo è stato ridotto a 90 minuti. Ha dedicato il tempo risparmiato a verificare da solo l'aggiunta di casi limite legati alle regole aziendali che l'IA non aveva notato. L’intelligenza artificiale ha eliminato il lavoro ripetitivo, lasciando il giudizio all’umano.
Caso 2 – Rilevato passaggio falso. Uno sviluppatore ha chiesto all'IA di scrivere 12 unit test per una funzione di calcolo; erano tutti verdi. Il tester ha implementato il passaggio "vedi rosso": modificando deliberatamente il segno di addizione all'interno della funzione in moltiplicazione. Solo 3 test su 12 sono risultati rossi. Gli altri 9 test non hanno fornito alcuna reale conferma; Diceva semplicemente "non ha generato alcun errore". 9 prove decorative sono state cancellate e al loro posto sono state scritte 5 prove vere e proprie.
Caso 3 – Ritorno da violazione della privacy. Uno stagista ha incollato un registro degli errori contenente le e-mail dei clienti reali e le ultime quattro cifre della carta dal database di produzione in uno strumento pubblico e ha detto "spiega questo errore". È intervenuto il responsabile del QA: si trattava di dati personali fuori controllo e di violazione della KVKK (Legge sulla protezione dei dati personali). Lo stesso lavoro è stato svolto in un veicolo omologato dall'istituzione, mascherando le aree personali e lasciando solo una traccia di stack.
Quattro modelli copiabili
1) Valutazione dell'idoneità al lavoro:
Il tuo ruolo: leader senior del controllo qualità. Ti descriverò un lavoro di test. Dimmi (1) se questo lavoro è un lavoro di redazione/analisi che può essere tranquillamente delegato all'intelligenza artificiale o una decisione di qualità che l'essere umano deve prendere, (2) il costo potenziale di un output errato, (3) la verifica che dovrei fare prima di delegare. Lavoro: [inserire il lavoro qui]
2) Controllo pseudo-passaggio:
Dai un'occhiata al test qui sotto. Dimmi: - Quale comportamento conferma questo test? (una frase)- Come posso violare il codice sotto test in modo che il test diventi ROSSO?- C'è un punto debole che potrebbe far sì che questo test venga sempre superato (asserzione mancante, autoconvalida, controllo banale)?Test: [incolla il test qui]
3) Controllo del mascheramento dei dati di prova:
I log/dati che ti fornirò potranno contenere campi personali o riservati (e-mail, nome, tessera, chiave, indirizzo interno). Per prima cosa elenca i campi che devono essere mascherati; Lo maschererò e lo invierò di nuovo. Non analizzarlo così com'è.
4) Generazione di dati di test sintetici:
Genera 20 righe di dati di test realistici e completamente fittizi per [la seguente struttura di campo]. Non utilizzare dati reali di persone/organizzazioni. Includi anche casi limite: spazio vuoto, testo troppo lungo, valori limite, formato non valido.
Prompt debole / Prompt forte
Debole: "Scrivi test su questo codice".
Forte: "Calcola questo Scrivi unit test per la funzione di sconto. Criteri di accettazione per la funzione: sconto del 10% su 1000 TL, sconto del 20% su 5000 TL; l'importo negativo dovrebbe generare un errore. Specifica con una riga di commento quale regola stai convalidando per ciascun test. Testa i valori limite (999, 1000, 1001, 5000, 0, -1) separatamente. Usa asserzioni reali che diventeranno rosse se interrompo il codice; vuoto o non scrivere un'asserzione banale."
Prompt potente; Fornisce criteri di accettazione, valori limite, aspettative di convalida e istruzioni esplicite anti-spoofing. Il suggerimento debole invita l'IA a scrivere un test decorativo.
Errori comuni
- Fidarsi del verde. Pensare che superare il test sia una prova. La vera domanda è: diventa rosso quando infrangi il codice?
- Richiedere un test senza fornire alcuna motivazione. L’intelligenza artificiale produce test generici, spesso inutili, senza sapere cosa occorre verificare.
- Saltare la verifica. Dicendo "L'ha scritto l'AI, probabilmente è vero". La responsabilità ricade sulla persona che utilizza l'output.
- Incollare dati reali/sensibili nello strumento. Lavorare con dati di produzione, chiavi o dati personali.
- Test di sicurezza non autorizzati. Tentativo di test offensivi senza ambito e autorizzazione.
- Usare l’intelligenza artificiale per delegare il processo decisionale. Porre la domanda "Questa versione può essere rilasciata?" all'IA e inserendo la risposta in firma.
In sintesi
L’intelligenza artificiale è un potente assistente nel processo di QA che accelera il lavoro ripetitivo e producibile; Ma la responsabilità della decisione sulla qualità spetta all’uomo. Il rischio numero uno dell'intelligenza artificiale in questa professione è lo pseudo-promozione: test verdi che sembrano accurati ma non confermano nulla. Metti alla prova ogni test dell'intelligenza artificiale violando deliberatamente il codice; Se non diventa rosso, il test è una decorazione. Collegalo al requisito, vedi il rosso, passalo attraverso il filtro del contesto. Mascherare dati riservati, eseguire test di sicurezza solo per scopi autorizzati e difensivi.
Compito dell'applicazione
Esegui 5 unit test generati dall'intelligenza artificiale (o generati dall'intelligenza artificiale) dal tuo progetto. Per ciascuno: (1) annota in una frase quale comportamento verifica, (2) interrompi ed esegui deliberatamente il codice sotto test e nota quanti diventano rossi, (3) contrassegna quelli che non diventano rossi come "test di arredamento" e riscrivili con l'asserzione reale. Inserisci il risultato in una tabella: nome del test / regola verificata / era rotto quando rotto / azione.
lista di controllo
- [ ] Prima di consegnare il lavoro mi sono posto la domanda "cosa perderò se va storto?"
- [] Ho testato ogni test AI decifrando il codice; Ho sostituito quello che non diventava rosso con il test vero e proprio.
- [ ] Ho collegato i casi di test agli effettivi requisiti/criteri di accettazione.
- [ ] Ho mascherato i dati sensibili/reali senza fornirli allo strumento; Se possibile ho utilizzato dati sintetici.
- [] Ho considerato i test di sicurezza solo all'interno dell'autorità e per scopi difensivi.
- [] Ho lasciato a me la decisione su "se la versione verrà rilasciata" e non all'intelligenza artificiale.