La differenza nei test di fumo e sanità mentale è l'argomento più frainteso nel test del software. C'è un'enorme quantità di letteratura sull'argomento, ma la maggior parte di esse crea confusione. Il seguente articolo tenta di risolvere la confusione.
Le differenze chiave tra Smoke Testing e Sanity Testing possono essere apprese con l'aiuto del seguente diagramma:
Test del fumo vs test di sanità mentale
Per apprezzare il diagramma sopra, dobbiamo prima capire:
Cos'è una build software?
Se stai sviluppando un semplice programma per computer che consiste in un solo file di codice sorgente, devi semplicemente compilare e collegare questo file per produrre un file eseguibile. Questo processo è molto semplice.
Di solito non è così. Un tipico progetto software è costituito da centinaia o addirittura migliaia di file di codice sorgente. La creazione di un programma eseguibile da questi file di origine è un'attività complicata e dispendiosa in termini di tempo.
È necessario utilizzare il software "build" per creare un programma eseguibile e il processo si chiama "build software"
Test del fumo
Smoke Testing è una tecnica di test del software eseguita dopo la compilazione del software per verificare che le funzionalità critiche del software funzionino correttamente. Viene eseguito prima di eseguire qualsiasi test funzionale o di regressione dettagliato. Lo scopo principale del test del fumo è rifiutare un'applicazione software con difetti in modo che il team di controllo qualità non perda tempo a testare un'applicazione software rotta.
In Smoke Testing, i casi di test hanno scelto di coprire la funzionalità o il componente più importante del sistema. L'obiettivo non è eseguire test esaustivi, ma verificare che le funzionalità critiche del sistema funzionino correttamente.
Ad esempio, un tipico test del fumo sarebbe: verificare che l'applicazione venga avviata correttamente, controllare che la GUI sia reattiva ... ecc.
DIFFERENZA CHIAVE
- Smoke Testing ha l'obiettivo di verificare la "stabilità" mentre Sanity Testing ha l'obiettivo di verificare la "razionalità".
- Smoke Testing viene eseguito da sviluppatori o tester, mentre Sanity Testing viene eseguito da tester.
- Smoke Testing verifica le funzionalità critiche del sistema mentre Sanity Testing verifica le nuove funzionalità come le correzioni di bug.
- Il test del fumo è un sottoinsieme dei test di accettazione mentre il test di sanità è un sottoinsieme dei test di regressione.
- Il test del fumo è documentato o programmato mentre il test di sanità mentale non lo è.
- Il test del fumo verifica l'intero sistema da un capo all'altro, mentre Sanity Testing verifica solo un particolare componente.
Che cos'è il test di sanità mentale?
Il test di sanità mentale è una sorta di test del software eseguito dopo aver ricevuto una build del software, con piccole modifiche al codice o alla funzionalità, per accertare che i bug siano stati corretti e che non vengano introdotti ulteriori problemi a causa di questi cambiamenti. L'obiettivo è determinare che la funzionalità proposta funzioni più o meno come previsto. Se il test di sanità mentale fallisce, la build viene rifiutata per risparmiare tempo e costi coinvolti in un test più rigoroso.
L'obiettivo è "non" verificare a fondo la nuova funzionalità, ma determinare che lo sviluppatore abbia applicato una certa razionalità (sanità mentale) durante la produzione del software. Ad esempio, se la tua calcolatrice scientifica fornisce il risultato di 2 + 2 = 5! Quindi, non ha senso testare le funzionalità avanzate come sin 30 + cos 50.
Test del fumo vs test di sanità mentale - Differenze chiave
Di seguito è riportata la differenza tra Sanity e Smoke test:
Test del fumo | Test di sanità mentale |
---|---|
Lo Smoke Testing viene eseguito per accertare che le funzionalità critiche del programma stiano funzionando correttamente | Sanity Testing viene eseguito per verificare che la nuova funzionalità / i bug siano stati corretti |
L'obiettivo di questo test è verificare la "stabilità" del sistema per poter procedere con test più rigorosi | Obiettivo del collaudo è verificare la "razionalità" del sistema per poter procedere a collaudi più rigorosi |
Questo test viene eseguito dagli sviluppatori o dai tester | I test di sanità mentale nei test del software vengono solitamente eseguiti dai tester |
Il test del fumo è solitamente documentato o programmato | Il test di sanità mentale di solito non è documentato e non è copiato |
Il test del fumo è un sottoinsieme dei test di accettazione | Il test di integrità è un sottoinsieme dei test di regressione |
Il test del fumo esercita l'intero sistema da un capo all'altro | Il test di sanità mentale esercita solo il particolare componente dell'intero sistema |
Il test del fumo è come il controllo sanitario generale | Sanity Testing è come un controllo sanitario specializzato |
Punti da notare.
- Sia la sanità mentale che il test del fumo sono modi per evitare di sprecare tempo e fatica determinando rapidamente se un'applicazione è troppo difettosa per meritare un test rigoroso.
- Il test del fumo è anche chiamato test di accettazione del tester.
- Il test del fumo eseguito su una particolare build è anche noto come test di verifica della build .
- Una delle migliori pratiche del settore è condurre un test giornaliero di compilazione e fumo nei progetti software.
- Entrambi i test di fumo e sanità mentale possono essere eseguiti manualmente o utilizzando uno strumento di automazione . Quando vengono utilizzati strumenti automatizzati, i test vengono spesso avviati dallo stesso processo che genera la build stessa.
- In base alle esigenze di test, potrebbe essere necessario eseguire sia Sanity che Smoke Test nella build del software. In questi casi, eseguirai prima i test di fumo e poi proseguirai con il test di sanità mentale. Nell'industria, i casi di test per Sanity Testing sono comunemente combinati con quelli per i test del fumo, per accelerare l'esecuzione dei test. Quindi, è comune che i termini siano spesso confusi e usati in modo intercambiabile
Fare clic qui se il video non è accessibile
Ulteriori informazioni sui test di fumo nell'ingegneria del software