2009-04-13 8 views
40

Pensavo di aver capito che un server di fumo era utilizzato per l'integrazione continua per misurare le prestazioni e la copertura di prova di un progetto. È fondamentalmente corretto? Cosa significa testare il fumo di un programma? Significa semplicemente applicare continuamente i test definiti sul server di fumo per poter individuare il degrado delle prestazioni in un determinato intervallo di tempo?Che cos'è un test del fumo e cosa farà per me?

risposta

56

Il test del fumo è un insieme di test a basso costo per eseguire test che precedono i test effettivi. Ha lo scopo di verificare che la build sia stata implementata correttamente e che tutti i test vidano. gli aspetti sono in esecuzione e pronti per l'effettivo processo di test. Ti fa risparmiare l'intera portata della tua ira di test su una build difettosa e ti rendi semplicemente conto di aver provato su un env cattivo. o erroneamente schierato build possibilmente troppo tardi.

+1

Ero completamente fuori. Economico da gestire ... fondamentalmente un'indicazione di incendio? – ojblass

+0

@ojblass: Sì, quello a cui potresti riferirti è il test di ammollo: http://en.wikipedia.org/wiki/Soak_testing. –

+1

+1 bella risposta sintetica – skaffman

4

Il test del fumo non è un test delle prestazioni o un test di prevenzione della regressione.

Il test del fumo è un insieme dei test completamente automatizzati con la massima priorità. Anche se la tua build regolare ha esito positivo, è possibile che il tuo prodotto venga spezzato in modi molto fondamentali che lo rendono inutilizzabile al 100%. I test del fumo sono progettati per testare quel livello di funzionalità di base. Una build che non supera i test sul fumo è molto probabile che non superi la maggioranza di tutti i test automatici.

Se un test fallisce fumo che in genere significa che si sta perdendo la produttività perché la build non è utilizzabile, non può essere testato, ecc fallimenti dei test di fumo tendono a richiedere correzioni immediate, l'ordine di non ore giorni.

L'aspetto importante dei test del fumo è che possono essere eseguiti rapidamente. Dovresti SEMPRE eseguire test di fumo di qualche tipo. Molti gruppi dispongono di risorse sufficienti per eseguire una serie di test più ampia sulle loro build di integrazione giornaliere o continue (che è una bontà), ma i test sul fumo devono essere considerati il ​​minimo indispensabile.

+2

Non credo che i test del fumo siano necessariamente automatizzati, ma possono anche riferirsi a test manuali di base, che possono riguardare cose che non possono essere realmente testate automaticamente come il layout. –

+0

Vero, ma stiamo arrivando al punto in cui quasi tutto può essere automatizzato. Sii pigro, automatizza. –

1

Il test del fumo è il primo passo del test di integrazione. Come sviluppatore, hai riunito tutte le parti e stai facendo in modo che la tua app venga eseguita prima di darla al tuo team di QA per test "reali".

ho voluto scrivere di più, ma MahdeTo mi ha battuto ad una risposta corretta ... :)

2

Usiamo il test del fumo termine per riferirsi a un test che fa test di base rapidi per un'applicazione o un prodotto per rendere si qualifica per ulteriori test come test di integrazione o test di funzionalità. È di scarsa utilità eseguire test di integrazione o altri test avanzati se l'applicazione non riesce a svolgere alcune delle cose elementari richieste per questi test avanzati. Ad esempio, disponiamo di un'applicazione web based e fumiamo test per garantire che possiamo caricare tutte le pagine Web, consentire agli utenti di accedere/disconnettersi ecc. Queste sono le cose di base che dovrebbero funzionare con l'applicazione per renderla testabile. Se le pagine non vengono nemmeno caricate o se gli utenti non sono nemmeno in grado di accedere, non possiamo fare molto con funzionalità o test di integrazione. Effettuiamo test sui fumi con ogni build seguiti da test di funzionalità e integrazione.

20

Il termine ha origine in hardware repair ed è stato applicato al software. È destinato a essere un test rapido per vedere se l'applicazione "prende fuoco" quando viene eseguita per la prima volta. Come detto sopra, è solo per assicurarci di non sprecare un sacco di gente, lasciandoli liberi su qualcosa che è ovviamente rotto.

4

Il wikipedia page on smoke testing è in realtà abbastanza buono. Include un puntatore al documento di Steve McConnel ("Codice Completo") nella sezione sulle best practice di IEEE Software 13 (4), 1996 intitolato "Daily Build and Smoke Test".

Direi che il test del fumo è una condizione preliminare per l'unità e altre forme di test: se il test del fumo fallisce, non c'è motivo nemmeno di iniziare un test unitario.

21

Accensione, vedere se esce del fumo.

+5

che in realtà mi ha fatto ridere. – ojblass

+0

Divertente ma vero .. – Gabriel

0

* verifica la funzionalità di base e critica di un'applicazione prima di procedere al test è noto come test del fumo. * Nel test del fumo controlliamo il flusso positivo delle funzioni di base e critiche per verificare se la build è verificabile o meno.