PHPUnit: introduzione allo unit testing
Inizia qui una mini serie di articoli dedicati allo Unit Testing grazie ai quali introdurremo inizialmente la teoria legata a questa pratica e successivamente parleremo di pratica. Iniziamo.
Sappiamo tutti che l’approccio di un programmatore verso un progetto è qualcosa di puramente soggettivo, le tecniche utilizzate ed il metodo con cui si procede sono quelli dettati dall’(in)esperienza del programmatore stesso e dalle convinzioni che ognuno ha nei propri mezzi. Purtroppo nella maggior parte dei casi queste convinzioni sono alla base dei problemi che affliggono gran parte dei progetti software nei primi mesi di vita: scadenze non rispettate, bug, funzionalità non implementate secondo specifiche…
Chiaramente ogni progetto è qualcosa di unico visto che le variabili in gioco sono talmente tante che non si può definire un metodo di sviluppo minuzioso, è perciò fondamentale sfruttare la tecnologia che viene in nostro aiuto approfittando del testing automatico al fine di limitare gli errori in fase di rilascio di un’applicazione garantendo il corretto funzionamento del prodotto.
Il funzionamento corretto di ogni componente di un sistema dipende dalla correttezza delle funzioni che implemente e dall’interazione con gli altri componenti con cui comunica. Quindi ma mano che si sviluppano le varie classi e si modificano i package ci si deve ricordare di verificare il funzionamento corretto di tutto ciò che ha a che fare con il codice aggiornato. Piccoli cambiamenti in una classe possono causare danni inauditi a del codice che riteniamo molto distante dalle modifiche apportate. Molta attenzione e perfetta conoscenza di un sistema possono non bastare ad evitare disastri. Una strada per evitare questo tipo di problemi è rappresentato dal test dei singoli componenti eseguito in modo regolare e magari automatizzato.
Lo Unit Testing ha un approccio di tipo bottom-up lavorando sulle classi con metodi di test raggruppati in test case che si occupano di verificare in modo rigoroso il corretto funzionamento di ogni componente che deve rispondere come specificato nel test. Sfruttare lo Unit Testing è un buon metodo per assicurare la qualità della progettazione di un sistema infatti esso permette di tenere sotto controllo le responsabilità di ogni classe e di ogni funzione.
Pensate ora ad una piccola modifica al codice apportata un venerdì sera (cosa che sconsiglio sempre) senza un framework per eseguire tutti i test del caso. Alcune prove di funzionamento fatte manualmente non hanno manifestato errori e date per scontato che tutto funzioni correttamente. Pensate ora alla telefonata che vi arriva dal cliente o dal capo e vi fa uscire dal pub, dal ristorante o peggio vi toglie dal vostro divano “Cosa hai fatto a $applicazione? I clienti non riescono ad entrare nel sistema!“.
Ricordate: i bug peggiori non provocano errori che si manifestano bloccando in modo palese l’applicazione, sono quelli che senza creare segnali agiscono sulla logica del vostro progetto. I peggiori bug non si manifestano dove state lavorando, sono causati lì ma si manifestano da tutt’altra parte magari giorni se non settimane dopo. Eseguire test regolari vi può salvare nella maggior parte di questi casi, quindi scrivete i test mentre scrivete il codice. Se qualcuno vi riporta un bug scrivete prima il test che lo conferma e poi eseguite il fix richiesto, i bug hanno l’abitudine di ripresentarsi.
In PHP il framework per lo unit testing si chiama PHPUnit che contiene vari tool e librerie che permettono di eseguire tutte le azioni utili al test del codice. Nella prossima puntata vedremo come sfruttare PHPUnit con degli esempi pratici sul codice della classe per la generazione casuale di password presentata poco tempo fa.
SECONDA PUNTATA
PHPUnit: dalla teoria alla pratica





Commenti
Questo articolo è stato segnalato su ZicZac.it….
…
PHPUnit: introduzione allo unit testing…
Inizia qui una mini serie di articoli dedicati allo Unit Testing grazie ai quali introdurremo inizialmente la teoria legata a questa pratica e successivamente parleremo di pratica. Iniziamo….
PHPUnit: introduzione allo unit testing…
Inizia qui una mini serie di articoli dedicati allo Unit Testing grazie ai quali introdurremo inizialmente la teoria legata a questa pratica e successivamente parleremo di pratica. Iniziamo….
[...] puntata della mini serie dedicata allo Unit Testing con un occhio di riguardo al framework PHPUnit, dopo la prima parte di teoria passiamo oggi alla pratica vedendo alcuni esempi. Prendiamo in esame la classe per la generazione [...]
[...] il nostro viaggio all’interno dello unit testing, dopo l’introduzione e il passaggio dalla teoria alla pratica con i primi semplici esempi è ora di analizzare nel [...]