Perché usare phpunit quando è possibile utilizzare i test manuali tradizionali


14

Quando realizzo un'app Web, collaudo il mio lavoro sul browser per vedere se ricevo errori e correggerli. Ho realizzato applicazioni complesse e testare in questo modo è stato facile e veloce. Ho visto molti video su YouTube riguardanti phpunit e non riesco a trovare uno scopo. Perché questa libreria è utile? Phpunit è più per framwork php come cakephp o zend? Non uso alcun framework solo core php. Phpunit potrebbe essere utile per me? Se si, come?

C'è anche xdebug ma non sono sicuro che sia correlato.


5
Quanto tempo ci vuole per ricontrollare un'applicazione complessa in ogni angolo?

@ user1249, phpUnit non è ancora in grado di eseguire test funzionali automatizzati. Fa solo test di unità automatizzati.
Pacerier,

Risposte:


12

Phpunit potrebbe essere utile per me? Se si, come?

Sì, sicuramente.

phpunit appartiene alla famiglia delle librerie di test xUnit . Queste librerie vengono utilizzate per creare test eseguibili automaticamente che verificano il comportamento dell'applicazione. Ciò è importante per garantire, tra le altre cose, che le modifiche non compromettano la funzionalità esistente.

Elencando tutti i motivi per i test automatizzati, i vari tipi e tecnologie sarebbero troppo. Dai un'occhiata ai seguenti link per leggere:


ironia della sorte, il primo link da o'reilly 404'd
Félix Gagnon-Grenier,

6

Supponiamo che tu abbia voluto testare manualmente l'applicazione ogni volta che l'hai distribuita. Come lo faresti?

Bene, per cominciare, potresti fare un elenco di tutte le cose che vuoi testare in modo da non dimenticare di provare qualcosa in seguito. Quindi probabilmente scriveresti i passaggi per ogni test per assicurarti di averli fatti allo stesso modo ogni volta. Se non ti assicurassi che il processo di test che hai usato fosse coerente, i tuoi risultati non sarebbero coerenti.

Quindi, ora che hai l'elenco dei test che devi eseguire, dovresti aprire il browser, leggere i passaggi del primo test, eseguirli e prendere nota del risultato. Ripetere questo processo per ciascun test nell'elenco.

Il numero di test eseguiti continuerà a crescere man mano che la tua applicazione cresce e quando trovi nuovi bug. Ovviamente, ti limiteresti a eseguire questi test a velocità umana, rendendoli piuttosto lenti.

L'ironia qui è che, sfogliando meccanicamente un elenco di operazioni, stai elaborando. Lo stai facendo molto più lentamente di, diciamo, un computer.

Questo, tra le molte altre buone ragioni, è il motivo per cui scriviamo test unitari: lasciano che il computer faccia il calcolo in modo da non doverlo fare.

Posso eseguire una suite di unit test completa abbastanza velocemente da usarla frequentemente durante lo sviluppo, non solo una volta alla settimana prima della distribuzione. Questo mi consente di rilevare gli errori più rapidamente, risparmiando tempo e denaro.

Posso anche scrivere test che predicono il comportamento del sistema e quindi scrivere quel comportamento (che già conosco sia corretto perché l'ho appena testato), un processo noto come Test Driven Development.


5

Il test manuale (ovvero facendo clic sull'applicazione nel browser) è in realtà chiamato test funzionale. Il test funzionale e il test unitario sono due metodi diversi utilizzati nel QA. Perché pensi di non poterli usare entrambi?

Il test unitario viene utilizzato per verificare se il codice funziona come previsto (ad es. Se il servizio Web gestisce gli errori in modo appropriato o se restituisce i risultati come previsto).

Quando si fa clic sull'applicazione, si verifica la funzionalità dell'applicazione.

Phpunit potrebbe essere utile per me? Se si, come?

Il test unitario ha molti vantaggi: può essere uno strumento molto utile per il refactoring perché puoi confermare che il codice funziona come previsto. Inoltre, quando qualcuno sta leggendo il tuo codice può essere molto utile vedere l'uso previsto del codice nei test unitari.


I test unitari verificano anche il comportamento. Stai creando una falsa dicotomia.
Rein Henrichs,

@ReinHenrichs, I test funzionali vengono eseguiti da Selenium, non da PHPUnit.
Pacerier,

1

Sì!

Sì. Assolutamente si.

In realtà, ciò richiede qualifiche. I framework di unit test come PHPunit sono utili se stai scrivendo e gestendo un'applicazione che altre persone dovrebbero usare.

I motivi per cui è utile il test unitario includono

  • Test di regressione per specifici bug che hai esposto e

  • L'esecuzione dei test unitari è molto più rapida rispetto ai test manuali e quindi può essere molto più approfondita.

Nella società per cui lavoro, scriviamo test unitari prima di scrivere il codice che li supera. Questo ci aiuta a produrre progetti sani e testabili (perché dobbiamo pensare a cosa scriveremo prima di farlo!) E fornisce un modo semplice per affermare che il nostro codice soddisfa i requisiti dell'utente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.