Categoria

Pagina 1 di 2

Testing: una rete di sicurezza, non un adempimento burocratico

I test non servono a fare bella figura in code review: servono a poter modificare il codice senza paura. La differenza fra una codebase che si evolve e una che si irrigidisce è quasi sempre la presenza di una suite di test di cui il team si fida. In questa categoria il testing non è un dogma, è uno strumento economico di gestione del rischio.

Il primo tema è partire dal legacy reale. Il punto di partenza nelle PMI non è quasi mai un progetto nuovo: è una codebase in produzione con zero test, dove ogni modifica rompe qualcosa da un'altra parte. Scrivo di come si introducono i primi test senza bloccare lo sviluppo, di quali test danno il massimo valore per primi, e di come si porta la copertura da quasi zero a un livello che ti fa dormire, oggi anche con l'aiuto di un LLM in pipeline.

Il secondo tema è testare ciò che conta davvero, non ciò che è comodo. Pest con mutation testing e dataset per misurare se i test valgono qualcosa, testing dei job in coda oltre il semplice controllo che siano stati messi in coda, Testcontainers per verificare l'integrazione con database e servizi reali invece di un finto database in memoria che nasconde proprio i bug che contano.

Se vuoi introdurre i test in un progetto che non ne ha, vedi i miei progetti PHP senior o scrivimi.

Un test non ti dice che il codice è giusto. Ti dice che non l'hai rotto mentre lo cambiavi. È esattamente ciò che serve.

LLM per generazione test automatici: da 5% a 70% di copertura su codebase PHP legacy

LLM per generazione test automatici: da 5% a 70% di copertura su codebase PHP legacy Partire da 5% di copertura test su un codebase legacy è demoralizzante. Portarla al 70% in 3 mesi è realistico con LLM nell'anello di supporto - ma solo se il processo è strutturato. Ti mostro il workflow che ho testato: LLM genera characterization test sul comportamento esistente, sviluppatore verifica, itera. Con catalogo degli anti-pattern LLM tipici (test che passano sempre, assertion inutili) e come rilevarli. Continua a leggere
Ultima modifica:

Automazione test di regressione visuale con Playwright per applicazioni Laravel

Automazione test di regressione visuale con Playwright per applicazioni Laravel Un refactoring CSS su un gestionale Laravel aveva rotto la visualizzazione di 12 componenti - nessuno se ne era accorto fino alle segnalazioni degli utenti. Con Playwright ho implementato test di regressione visuale: ogni PR che modifica CSS viene confrontata con screenshot di riferimento. I bug visivi vengono intercettati in CI. Continua a leggere
Ultima modifica:

Architettura esagonale (Ports & Adapters) in Laravel: separare dominio da infrastruttura

Architettura esagonale (Ports & Adapters) in Laravel: separare dominio da infrastruttura Un'applicazione Laravel con la logica di business nei controller e le chiamate al database direttamente nei Model è impossibile da testare correttamente. Ho refactorizzato un gestionale HR verso l'architettura esagonale: il dominio ora è testabile senza database, e cambiare da MySQL a PostgreSQL ha richiesto un solo adapter. Continua a leggere
Ultima modifica:

Testcontainers per PHP: test di integrazione con database e servizi reali in CI

Testcontainers per PHP: test di integrazione con database e servizi reali in CI I test con SQLite in memoria non trovano i bug che nascono dalle differenze tra SQLite e MySQL. Con Testcontainers per PHP, ogni test di integrazione ottiene un'istanza MySQL reale in un container Docker, azzerata tra le esecuzioni. Ho adottato questo approccio per un cliente e-commerce: i bug in staging sono scesi del 60%. Continua a leggere
Ultima modifica:

Refactoring del codice PHP legacy: guida pratica per modernizzare un'applicazione senza riscriverla

Refactoring del codice PHP legacy: guida pratica per modernizzare un'applicazione senza riscriverla Un gestionale PHP 5.6 con 23.000 righe, zero test e debito tecnico che rendeva ogni modifica un rischio: il cliente pagava il triplo per ogni nuova funzionalità rispetto a un'applicazione moderna. In tre mesi di refactoring incrementale con Strangler Fig Pattern, PHPStan e Rector l'ho reso manutenibile senza riscrivere una riga da zero. Continua a leggere
Ultima modifica:

Introduzione ai test automatici su codebase PHP legacy: come iniziare senza riscrivere tutto

Introduzione ai test automatici su codebase PHP legacy: come iniziare senza riscrivere tutto Un gestionale PHP legacy con 23.000 righe e zero test: ogni modifica rompeva qualcosa in un altro punto dell'applicazione. Ho introdotto characterization test con PHPUnit in una settimana - senza riscrivere una riga di codice applicativo - e il tasso di bug in produzione è sceso del 70% nel primo mese. Continua a leggere
Ultima modifica:

Testing di API Laravel con Pest 3 nel 2026: dataset, mutation testing e CI per PMI che vogliono dormire

Testing di API Laravel con Pest 3 nel 2026: dataset, mutation testing e CI per PMI che vogliono dormire Pest 3 ha portato mutation testing, dataset, arch presets e nested describe nel testing PHP. Per le PMI con API Laravel in produzione il problema non è più scrivere test, è scriverli in modo che individuino bug reali e girino in CI in tempi accettabili. Cosa testare, come strutturare la suite e come portarla in pipeline CI. Continua a leggere
Ultima modifica:

Strumenti utili per il testing

Tool gratuiti per costruire e verificare i tuoi test:

Generatore dati fake, Regex tester, Glob pattern tester.