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…)

SpecBDD con phpspec

phpspec

Da queste parti si continua a parlare di BDD. Ci piace, c’è poco da fare. Questa volta tocca a phpspec, libreria per fare spec BDD con PHP. phpspec ha alcune caratteristiche che la rendono particolarmente interessante:

  • è fortemente orientata a guidare il design
  • è fortemente orientata ad offrire un flusso di lavoro piacevole

(altro…)

Behaviour VS Test-driven development

Se ti interessa approfondire il tema del Behaviour driven development, partecipa al nostro talk BDD: tutta questione di comunicazione  il 15 novembre alle ore 15:30 durante l’Italian Agile Day di Ancona!

Quando si inizia a studiare Behaviour-driven development, specialmente se si è lavorato per un po’ in Test-driven development, una delle prime cose che ci si domanda è sempre “va bene, ma in sostanza, che cambia? Di che si tratta?”. Non appena l’attenzione si sposta dagli strumenti al metodo e si cerca di risalire al nocciolo della questione, le cose in comune tra le due metodologie sono così tante che il dubbio viene e la sensazione di déjà vu cresce. A me per lo meno, è successo.

Dopo qualche tempo e alcuni progetti portati a termine provo a riflettere sulla questione e a dare il mio punto di vista sulla questione.
(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…)