Che cos'è un test case?
I test case sono un insieme di azioni documentate, le procedure, che governano l'osservazione e l'analisi di un requisito software specifico. Un test case formale utilizza un test positivo e uno negativo per requisito.
Per ulteriori informazioni sull'intera gamma di concetti associati ai test case, tra cui il formato appropriato del test case, i suggerimenti su come creare un buon test case e altro ancora su test case e test positivi, leggi questa guida sugli elementi essenziali dei test case.
Cos'è il test negativo?
Nei test software, il test positivo si riferisce al processo di test di un sistema in fase di test (SUT) o di un'applicazione in prova (AUT) che valuta il comportamento previsto rispetto a un requisito. I test negativi, a volte chiamati test di fallimento o test del percorso di errore, sono la pratica di trovare feedback utili quando le cose vanno male.
Il test negativo utilizza dati di input non validi o comportamenti dell'utente indesiderati per verificare la ricerca di errori di sistema imprevisti. In altre parole, un tester prende input non validi e testa l'interfaccia utente (UI) di un'applicazione web (l'uso più comune di test negativi), aspettandosi che si verifichino gli imprevisti. Questa pratica cerca di scoprire cosa succede all'AUT in condizioni avverse.
Qual è lo scopo di un test negativo?
Il test negativo è una pratica di controllo della qualità che garantisce una copertura completa dei test nello sviluppo di software. Tentando intenzionalmente il crash di un SUT o utilizzando dati scadenti per trovare difetti sconosciuti (bug), un tester o uno sviluppatore scopre i modi in cui il SUT può essere più stabile e più affidabile. Provando ciò che il software non dovrebbe fare o accettare, il tester verifica che il codice soddisfi ogni requisito.
Che cos'è un test case negativo?
Qual è la differenza tra test case positivi e negativi e distruttivi?
I test negativi e positivi sono attività simultanee che documenti utilizzando un test case. "Un test case positivo garantisce che qualcosa incluso nei requisiti o nel design funzioni come previsto. I test case negativi controllano tutto il resto", afferma Price-Jones.
Un altro termine associato ai test negativi è il test distruttivo, che, secondo Price-Jones, "si può eseguire tramite test case negativi (e si dovrebbe se è necessario documentare tutto ciò che hai fatto e fornire prove) o utilizzare semplicemente come tentativo di rompere il software con qualsiasi mezzo possibile."
Ad esempio, è comune che un'applicazione basata sul web chieda all'utente di compilare il campo di testo Password all'interno di un certo intervallo di caratteri (ad esempio più di sei e meno di 12). Utilizzando i test positivi, il tester inserisce le password all'interno dell'intervallo corretto. Per il test negativo corrispondente, il tester inserisce password che non rientrano in questi parametri (ad esempio meno di sei, più di 12 o zero caratteri) per testare la risposta dell'AUT. Questo tipo di test negativo è noto come test di analisi del valore limite.
Come identificare i test case negativi
Come si determina quali dati utilizzare o quali azioni indesiderabili intraprendere per creare ed eseguire test case negativi utili? Per identificare i test case negativi, inizia con quelli positivo. Ogni test case positivo viene creato analizzando i requisiti aziendali/utente, gli artefatti e i documenti di progettazione software. Utilizza ogni scenario di test case positivo per identificare il test case negativo utilizzando le informazioni non trovate nei documenti.
È necessario bilanciare i tempi e le risorse per soddisfare i requisiti software. I test negativi affrontano resistenze a causa delle pianificazioni del progetto, della disponibilità di persone qualificate, delle date di rilascio e dei budget. Senza sottoporre il SUT a danni effettivi, i tester del software utilizzano l'esperienza e l'intuizione per decidere come, quando e dove utilizzare i test negativi e identificare le fasi del test case. Non è possibile praticare test negativi esaustivi o creare test case negativi che forniscano una copertura perfetta del SUT.
Modello di pianificazione ed esecuzione dei test case
Utilizza questo modello di pianificazione ed esecuzione di test case per tracciare i piani di test per il tuo progetto di sviluppo software, eseguire le fasi del test case e analizzare i dati di test. È inoltre possibile monitorare i test per ID e nome, identificare ogni fase di un test, aggiungere livelli e note di priorità e confrontare risultati effettivi rispetto ai risultati previsti.
Scarica modello di pianificazione e esecuzione dei test case
Come progettare un test case negativo
Nei test del software, quando la quantità di input possibili è troppo grande per una copertura completa ed economica dei test, un array ortogonale offre un modello efficiente per la progettazione di test case negativi (cioè per trovare gli errori del software ed eliminare i test duplicati). Questo modello è comunemente utilizzato per i test dell'interfaccia utente, i test di regressione e i test delle prestazioni del SUT.
Neil Price-Jones affronta la progettazione di test case negativi in termini sistematici: "Un modo è pensare ortogonalmente al flusso di una transazione in uno scenario aziendale standard e poi pensare a ciò che può andare storto in ogni fase di quel processo."
"Se si pensa alla transazione come al flusso di passaggi da sinistra a destra (cioè in modo lineare), si può pensare di testarla (sia in senso positivo che in negativo) guardando ogni fase dall'alto e vedendo quale sarebbe il positivo (che permette alla transazione di fluire alla fase successiva) e il negativo (che dovrebbe impedire alla transazione di fluire alla fase successiva), " spiega Price-Jones.
Formato di test case negativo
I test case positivi e negativi condividono lo stesso formato, che in genere include i seguenti attributi:
Dichiarazione del test case
Impostazione del test
ID del test case
Scenario di test
Fasi del test negativo
Dati del test negativo
Risultati previsti
Risultati effettivi
Conferma di superamento/fallimento
Commenti aggiuntivi
Come scrivere un test case negativo
In parole povere, si scrive un test case negativo selezionando i dati di input non validi o il comportamento dell'utente indesiderato, acquisito eseguendo passaggi di test case positivi. Price-Jones consiglia di iniziare con i criteri del test case positivo, che si definiscono per scenari di test a partire da un requisito aziendale.
"Inizia con ciò che è definito e incluso, quindi considera tutte le altre possibilità utilizzando tecniche di progettazione di test. A volte, mi riferisco a questo come variazioni su un tema", afferma.
Come un caso di test case positivo, un test case negativo è un singolo test eseguibile che si documenta utilizzando fogli di calcolo o software di gestione dei test. L'adozione di un formato standard per la documentazione dei test case aiuta nei seguenti modi:
Consente di risparmiare tempo.
Rende ogni test case accessibile da più stakeholder, indipendentemente dalle conoscenze tecniche.
È riutilizzabile per scenari di piano di test simili.
Aiuta a semplificare la comunicazione complessiva all'interno dei team di test e di sviluppo.
Per una ripartizione più dettagliata degli attributi negativi del test case e una guida passo-passo su come scrivere un test case in Microsoft Excel, leggi la relativa guida essenziale.
Esempi di test case negativi per una pagina di accesso
Price-Jones riflette su un momento in cui si è divertito a utilizzare i test negativi per una pagina di login: "Una volta ho testato un login per un'applicazione pubblicamente disponibile in cui tre tentativi sbagliati ti facevano entrare effettivamente nel software (invece di sospenderti per 30 minuti o costringerti a reimpostare la password). Il programmatore aveva scambiato la funzione dell'interruttore e alla fine di tre tentativi riuscivi a entrare invece di venire bloccato."
I seguenti esempi di test case negativi si applicano ai test case positivi che superano con risultati attesi per la pagina di accesso AUT quando si utilizza l'ID utente e la password corretti:
ID utente vuoto con password vuota
ID utente corretto con password errata
ID utente errato con password corretta
ID utente errato con password errata
SQL injection nella password
SQL injection nell'ID utente
SQL injection in entrambi i campi
Modello di test case per i servizi di integrazione SQL Server
Gestisci, testa e tieni traccia di tutti i servizi di integrazione di SQL server con questo modello dettagliato di test case. Usa questo modello per testare gli aggiornamenti della funzione e garantire che tutti i sistemi di gestione dei dati e di programmazione funzionino correttamente.
Scarica il modello di test case SQL Server Integration Services
Excel
Esempi di test case negativi per l'accesso alla rete wireless
I seguenti esempi di casi di test negativi si applicano ai casi di test positivi che superano con risultati attesi quando la chiave di sicurezza corretta della rete (la password) viene usata e vengono confermati gli accordi di utilizzo:
L'accesso blocca la rete con un input di chiave non valido.
L'accesso blocca la rete senza una chiave di sicurezza.
Inserisci un codice non valido o caratteri non validi nel campo chiave.
Esempi di test case negativi per la connessione di dispositivi Bluetooth
I seguenti esempi di test case negativi si applicano ai casi di test positivi che superano con risultati attesi quando un dispositivo Bluetooth viene scoperto o abbinato a dati validi e viene raggiunto un intervallo di connessione di successo:
Inserisci un codice errato e fallisci la connessione.
Ripeti con entrambi i dispositivi in sequenza.
Disattiva il Bluetooth su ogni macchina separatamente.
Ristabilisci la connessione tra i dispositivi.
Testa i dispositivi non compatibili.
Test con dispositivi limitati (quelli che limitano le connessioni).
Esempi di test case negativi per carrelli della spesa online
I seguenti esempi di test case negativi si applicano ai test case positivi che superano con risultati attesi quando c'è un inventario sufficiente, un metodo di pagamento valido e la conferma da parte del fornitore di pagamento, insieme a più articoli nel carrello:
Acquista più dell'inventario disponibile. (Secondo Price-Jones, "Molti carrelli della spesa coprirebbero questo caso con l'obbligo di informarti che l'articolo non è disponibile o di impostare un ordine di ritorno, in modo da poter sostenere che si tratta di un caso positivo.")
Acquista più articoli, alcuni dei quali non sono disponibili.
Acquista e ricevi "pagamento non riuscito."
Acquista e ricevi "luogo di spedizione non riuscito" (aka "impossibile spedire nella località").
Abbandona l'acquisto in qualsiasi momento del processo.
Disconnetti in qualsiasi momento del processo di acquisto.
Esempi di test case negativi per i pagamenti con carta di credito
Price-Jones fornisce il seguente esempio di passaggi di test case negativi per un modulo di pagamento con carta di credito quando gli input del test case positivo sono il numero di carta di credito corretto, il codice CVV (o CVC) corretto, il nome corretto e l'indirizzo di fatturazione corretti:
Cifre di controllo errate
Numero errato con le cifre sbagliate
Indirizzo di fatturazione non valido
Numero CVV non valido
Nome non valido
Gestione dei test case negativi: test manuali o automatizzati?
Il test negativo è principalmente un'attività manuale ed è storicamente gestito utilizzando fogli di calcolo. Con il software di automazione dei test, è possibile lavorare con strumenti che consentono di creare test case negativi utilizzando dati validi e non validi per migliorare la copertura dei test dell'AUT con scenari di test positivi e negativi. Il processo di determinazione di quando automatizzare i test negativi o quando utilizzare i test negativi manuali varia in base alla pianificazione del test, ai requisiti aziendali o dell'utente, alla disponibilità di tester software qualificati e al budget.
I tester possono scrivere manualmente script di test automatizzati (ad esempio codice software) per facilitare le fasi del test case che richiedono una grande quantità di dati di input, oppure possono utilizzare strumenti di gestione dei test per impostare script automatizzati riutilizzabili. Soluzioni software come TestComplete e Selenium offrono la gestione automatica degli script di test, il controllo delle versioni e le funzionalità di reporting per diversi requisiti. I vantaggi più comunemente pubblicizzati di queste soluzioni includono modelli di test case, controllo delle versioni di test, monitoraggio automatico dei bug con notifiche e-mail agli sviluppatori assegnati, accesso controllato alla collaborazione, copertura dei test tracciabile per requisito e archiviazione di backup nel cloud.
Modello di test case manuale
Creare test case negativi da zero è un'impresa che richiede tempo perché il SUT cambia costantemente. Utilizza questo modello manuale di test case per registrare le fasi di test negativi, analizzare i risultati attesi rispetto ai risultati effettivi e determinare un risultato di superamento/fallimento. È progettato per registrare manualmente ogni fase del processo di test negativo, l'ID e il nome del test e ulteriori note da considerare durante l'analisi.
Scarica modello di test case manuale
Modello di test per automazione
Usa questo modello di test case per automazione per controllare il successo o il fallimento di test software automatizzati. Scarica e compila questo modulo per documentare il nome e l'ID del test, la durata del test, ogni fase e componente e qualsiasi nota sul test, compresi gli script del test che sono automatizzati.
Scarica modello di test case per automazione
Falsi positivi e negativi nei test negativi
Nei test del software, un risultato falso positivo si riferisce a un risultato di un test case fallito che si verifica quando non c'è alcun difetto e il SUT funziona correttamente. Quando un test case viene superato ma nel SUT è presente un difetto, il risultato è noto come risultato falso negativo. L'attività di test manuale negativo, come il test di sanità (eseguire un run-through per garantire che un particolare aspetto del software funzioni all'incirca come previsto) e il test per casi opposti (costringendo il superamento del risultato di un test case a fallire), aiuta a evitare risultati falsi positivi.
Per ridurre i risultati falsi prima di incorporare script di test automatizzati o strumenti di automazione, assicurati di mettere in atto misure adeguate durante la pianificazione dei test e durante la creazione di casi di test negativi. Utilizza un modello che conti tutti gli script di test automatizzati progettati specificamente per evitare falsi test case positivi o negativi.
Modello di test case di accettazione da parte dell'utente
Scarica questo modello completo di test case di accettazione dell'utente per assicurarti che corrisponda al documento SRS e soddisfi tutti i requisiti previsti. Il documento è progettato per monitorare le singole applicazioni, le fasi di esecuzione e i risultati attesi ed effettivi.
Scarica modello di test case di accettazione da parte dell'utente
Migliora i test case negativi con Smartsheet per lo sviluppo di software
Potenzia il rendimento dei tuoi dipendenti con una piattaforma flessibile progettata per soddisfare le esigenze del tuo team e capace di adattarsi alle condizioni mutevoli del lavoro. La piattaforma Smartsheet semplifica la pianificazione, l'acquisizione, la gestione e la creazione di report sul lavoro da qualsiasi luogo, aiutando il tuo team a essere più efficace e ottenere di più. Crea report sulle metriche chiave e ottieni visibilità in tempo reale sul lavoro mentre accade con report di riepilogo, pannelli di controllo e flussi di lavoro automatizzati creati per mantenere il tuo team connesso e informato. Quando i team hanno chiarezza sul lavoro da svolgere, possono ottenere maggiori risultati in meno tempo. Prova Smartsheet gratuitamente, oggi.