Ordinare una lista con un albero binario: come funziona Sortello

sortello ordinamento albero binario

Trello si presta bene per essere utilizzato come kanban board o, in generale, per ordinare l’elenco di cose da fare – per gli amici: ToDo list.
Mettere in ordine la lista ToDo può essere un’operazione lunga e macchinosa, durante la quale è facile perdere di vista l’insieme delle attività e le relazioni di priorità esistenti tra di loro.
La soluzione? Perdere volutamente di vista l’insieme delle card e confrontarne solo due per volta.

Sortello nasce per questo scopo: facilitare l’ordinamento delle card presenti in una colonna all’interno di una kanban board.
(altro…)

Mutation testing

Qualche settimana fa in ideato ho tenuto una pill su mutation testing.

Ho conosciuto questo metodo durante il talk di Nicolas Fränkel alla CraftConf 2017, ed ho deciso di approfondire l’argomento.

Con qualche esperimento e un po’ di appunti raccolti, ho scoperto che ci sono interessanti tools a supporto degli sviluppatori PHP e JS, e che nell’attuale ecosistema dei tool automatici, c’è spazio anche per testare i propri test 🙂

Ecco la registrazione della pill, buona visione!
(altro…)

StoryBDD con Behat

Behat

Di recente abbiamo fatto una delle nostre #ideatopills su Behat il framework PHP per fare BDD. Ho mostrato come arrivare a scrivere il primo test verde e le componenti principali che stanno dietro al framework (nella sua nuova versione 3.x).
(altro…)

Test funzionali: lenti, accoppiati ma utili

paratest 2

Mi trovo spesso a sviluppare applicazioni web tramite l’utilizzo di framework full-stack come Symfony o Zend. Questi strumenti, uniti alla natura delle applicazioni stesse, mi portano a scrivere molti test funzionali che a loro volta si portano dietro sia aspetti positivi che negativi. Qui vorrei esplorare quali sono questi aspetti e quando è realmente importante fare test funzionali.

Prima di tutto capiamo bene di che tipo di test stiamo parlando. Tramite il pattern AAA potremo descrivere un test funzionale in questa maniera:

  • Arrange: prepariamo fixtures necessarie a portare la nostra applicazione in un determinato stato iniziale. Tipicamente le fixtures sono dati da caricare su DB, stub di servizi, ecc.
  • Act: eseguiamo il codice di produzione che vogliamo testare. Ad esempio facciamo una request all’uri che indentifica la pagina che vogliamo testare.
  • Assert: controlliamo che il risultato ottenuto cioè che la response sia quella che ci aspettiamo. Questo viene fatto controllando la response e/o il DOM.

(altro…)

Evoluzione di una codebase legacy

codebase legacy

Recentemente abbiamo lanciato harlequinmondadori.it, il portale italiano per la vendita online dei romanzi cartacei e digitali pubblicati da Harlequin Mondadori. Il sito è il risultato della fusione di due piattaforme distinte:

  • harlequinmondadori.it: semplice sito statico, utilizzato come progetto pilota per testare le possibilità di vendita di un determinato brand,
  • eharmony.it: piattaforma ecommerce esistente per la vendita dei romanzi Harmony.

(altro…)