Cos'è il test negativo? Casi di prova con esempio

Test negativo

Test negativo è un tipo di test del software utilizzato per verificare l'applicazione software per dati e condizioni di input imprevisti. I dati o le condizioni imprevisti possono riguardare qualsiasi cosa, dal tipo di dati errato al forte attacco di hacking. Lo scopo dei test negativi è evitare che l'applicazione software si blocchi a causa di input negativi e migliorare la qualità e la stabilità.

Eseguendo semplicemente test positivi possiamo solo assicurarci che il nostro sistema funzioni in condizioni normali. Dobbiamo assicurarci che il nostro sistema sia in grado di gestire condizioni impreviste per garantire un sistema privo di guasti al 100%.

Esempio di test negativo

Consideriamo il caso di un ascensore che è un esempio comunemente considerato di test negativo.

Conosciamo tutti la funzionalità di un ascensore. Questi saranno considerati come requisiti di un ascensore, come premere il numero del piano per far sì che l'ascensore raggiunga quel particolare piano.

La porta si apre automaticamente una volta che l'ascensore raggiunge il piano specificato e così via.

Consideriamo ora alcuni scenari negativi per la crescita. Alcuni di loro sono,

Test negativo Test positivo
Cosa succede se il numero di persone (peso) supera il limite specificato? Si presuppone che nell'ascensore entrerà solo il numero specificato di persone
Cosa succede se qualcuno fuma o provoca un incendio all'interno dell'ascensore? Non ci sarà fumo o fuoco all'interno dell'ascensore
Cosa succede se si verifica un'interruzione di corrente durante il funzionamento? Non si verificherà un'interruzione di corrente durante il funzionamento dell'ascensore

Tutti questi casi verranno sottoposti a test negativi. L'importanza di tutto questo è che non possiamo garantire che tutto quanto sopra menzionato non accada, quindi dobbiamo contenerlo.

Si consideri il caso in cui viene controllata la condizione di sovrappeso e, durante l'implementazione, l'ascensore funziona in modo anomalo quando è presente una condizione di sovrappeso. Ciò avrà un potenziale impatto sull'affidabilità del sistema e può persino causare pericolo di vita. Questo spiega cos’è il test negativo e la sua importanza.

Lo stesso caso si applica anche al software. Per i test negativi, ci siamo discostati da una normale procedura operativa. Esaminiamo alcuni esempi.

Consideriamo ad esempio un modulo di registrazione.

Test negativo Test positivo
Prova a inserire un ID e-mail non valido nel campo e-mail Nel campo email verranno inseriti solo ID email validi
Prova a inserire un numero di telefono non valido in un campo del numero di telefono (caratteri) L'unico numero verrà inserito nel campo numerico
Carica un'immagine con dimensioni esterne al limite specificato Verranno caricate solo le immagini con dimensioni inferiori al limite specificato
Carica file non validi come XML, SQL, ecc. nel campo di caricamento dell'immagine Carica solo formati immagine validi come jpg.png, ecc.

Come abbiamo detto prima, dobbiamo assicurarci che in tutti questi casi negativi il nostro sistema funzioni correttamente. Considera il caso in cui qualcuno tenta di inserire un carattere nel campo del numero e il sistema non riesce a elaborare i dati imprevisti poiché si aspetta un numero e, infine, il sistema si blocca. O cosa succede se qualcuno prova a fare un SQL Injection e cancellare tutti i nostri dati dal database. Non possiamo sopportare tali perdite potenziali. Quindi il test negativo è importante.

Perché eseguire il test negativo?

Poiché il test è un'attività che richiede tempo e denaro, decidere "cosa", "come" e "quanto" testare è davvero importante. Dobbiamo scegliere saggiamente se dobbiamo effettuare test negativi nel nostro sistema o meno. Quindi diamo un'occhiata all'importanza dei test negativi.

Prospettiva dell'organizzazione

È responsabilità dell'organizzazione fornire un prodotto di buona qualità al proprio cliente. Per raggiungere questo obiettivo, è necessario eseguire test negativi.

Come parte della conferma contro un fallimento, un'organizzazione deve eseguire test negativi.

Forse non possiamo costruire un sistema privo di errori al 100%, ma dobbiamo assicurarci di aver fatto tutto il possibile per prevenire un guasto, per raggiungere questo obiettivo dovremmo eseguire test negativi.

L’impatto è un fattore che dobbiamo considerare. Considera che abbiamo effettuato test positivi su un sito di e-commerce e assicurati che tutto vada bene. Ma cosa succede se nel nostro sistema c'è una scappatoia che consente a qualcuno di eseguire l'iniezione SQL e cancellare tutti i nostri dati? Sarebbe una grande violazione della sicurezza. Per evitare questo tipo di casi, è necessario eseguire anche test negativi.

Per le applicazioni aperte al pubblico, principalmente siti web, dobbiamo sempre tenere presente che non abbiamo molto controllo sulla procedura di utilizzo dell'applicazione, quindi dobbiamo eseguire test negativi per assicurarci che tutti questi casi siano coperti e contenuti.

Un’altra cosa di cui dobbiamo fare attenzione è che là fuori ci sono molti hacker neri che cercano un’opportunità per distruggere il sistema. L'hacking è un caso importante coperto da test negativi

Prospettiva del cliente

I clienti si aspettano sempre prodotti con zero vulnerabilità, per garantire che il test negativo sia un must

Se si tratta di un prodotto sensibile come l'e-commerce, lo stock online, ecc., allora la sicurezza e i test negativi sono obbligatori.

L'unica preoccupazione per il cliente riguardo al test negativo è il costo. Ma una volta analizzato l’impatto spetta al cliente decidere se effettuare o meno il test negativo.

Come eseguire il test negativo

Per fare un test negativo dobbiamo considerare tutti i casi possibili. Cioè, se è possibile, dobbiamo considerarlo nel Test Case non importa se non è il modo giusto di usarlo. Ad esempio, se vediamo un campo email, pensiamo a tutti i possibili input che possiamo mettere lì, tranne il formato email corretto. Allo stesso modo, quando vediamo un'opzione di caricamento immagine, dobbiamo testarla con tutti i file possibili.

Durante la creazione di casi di test negativi dobbiamo dare priorità agli input, altrimenti ci saranno molti casi possibili. Ad esempio, per un campo immagine in cui devono entrare solo file '.png', possiamo avere molte opzioni da caricare come 'jpeg', 'xml', 'xls', ecc. Quindi dobbiamo dare priorità alle opzioni come XML e SQL può avere un impatto maggiore di quello di jpeg e xls, quindi dovremmo occuparci prima dei casi SQL e XML. In questo modo, dobbiamo dare la priorità ai casi prima dell'esecuzione per risparmiare tempo e costi di test.

Pro e contro del test negativo

Come tutte le altre tecniche di test, ci sono pro e contro per i test negativi basati principalmente su "dove", "quando" e "come" utilizzarli. Diamo un'occhiata a questo.

Vantaggi del test negativo

  • Come tutti sappiamo, il test negativo è molto importante per garantire la qualità di un prodotto. Un prodotto di buona qualità è un prodotto a vulnerabilità zero, per garantire che i test negativi siano molto importanti.
  • L'esecuzione di test negativi garantisce che tutti i casi possibili siano coperti. Intenzionalmente o meno esiste la possibilità che si verifichino casi di test negativi. Quindi, per garantire che tutti i casi siano coperti, dobbiamo eseguire test negativi insieme a test positivi.
  • I test negativi daranno più fiducia al cliente prima di andare in diretta.

Svantaggi del test negativo

  • Nell'ingegneria del software, i test negativi in ​​alcuni casi diventano una perdita di tempo ed energia. In molti casi, non sono necessari eccessivi test negativi. Ad esempio, se un'applicazione viene creata per l'utilizzo da parte di una sola persona, non dobbiamo considerare il caso in cui 100 utenti utilizzano il sistema alla volta. Quindi decidere le condizioni nei casi di test negativi è molto importante. Ci saranno momenti in cui non sarà necessario eseguire test negativi su un particolare sistema.
  • Richiedere che persone qualificate ed esperte creino casi di test negativi.
  • Per il cliente, un test negativo è un'altra cosa che causa inutili ritardi nel rilascio e aumento dei costi.
  • Una possibilità che una squadra spenda più tempo ed energie su test negativi. Esiste la possibilità che i tester spendano molto tempo ed energie in test negativi, il che si traduce in una concentrazione inferiore nei test positivi.