Domanda

Di recente ho sentito parlare di BDD e l'ho trovato molto simile a TDD.

Quale di questi due usi (se ce ne sono)?

e quali sono i pro e i contro di ciascuno?

È stato utile?

Soluzione

Sono molto del BDD = TDD fatto correttamente camp. Se stai facendo TDD come descritto in origine da Beck - e praticato da molti - allora sostanzialmente non c'è differenza.

Ciò che BDD porta in tavola sono alcune interessanti varianti del linguaggio usato per descrivere il processo. Usando una terminologia alternativa nelle descrizioni del processo e gli strumenti che la gente BDD spera di incoraggiare pratiche migliori - un obiettivo lodevole.

Faccio TDD da così tanto tempo ormai è difficile per me giudicare se questo effettivamente aiuta. Penso (spero :-) Ho già imparato molte delle lezioni che gli strumenti / il linguaggio BDD incoraggiano in modo che non sembrino offrirmi un valore extra. Ovviamente YMMV - e non ho fatto un intero "mondo reale" progetto usando strumenti BDD - quindi potrei fare i miei esperimenti personali ed estrapolare troppo lontano.

Vorrei supporre che gli strumenti / il linguaggio BDD possano essere più utili al fatto che le persone vengano introdotte in questo modo di avvicinarsi allo sviluppo, poiché evitano tutta la confusione con "test". utilizzato nel senso più tradizionale. Non l'ho ancora fatto da solo - e sarei interessato se la gente qui avesse avuto tale esperienza.

Altri suggerimenti

BDD è simile a TDD ma con una mentalità diversa. In BDD stai cercando di creare specifiche eseguibili invece di test. Ciò si ottiene principalmente utilizzando un vocabolario diverso ma meccanismi simili a quelli del TDD.

Il BDD sembra essere una reazione a molti casi in cui le persone hanno affermato di fare TDD ma stavano scrivendo test di integrazione anziché test unitari. Le persone BDD pensavano che parlare di test fosse fuorviante e quindi i test sono diventati specifiche. Sembra un po 'metafisico ma ci sono alcune buone idee dietro di esso.

BDD è tutto basato sull'esecuzione degli scenari. Simile a TDD testeremo ogni singolo scenario come una storia.

La storia verrà spiegata dal cliente .. basandosi sulla trama gli scenari verranno scritti. Strumenti come CUCUMBER hanno reso semplice la scrittura di scenari.

TDD e BDD sono praticamente uguali. La differenza sta nel modo in cui lo spieghiamo e quindi in che modo i team di successo finiscono per farlo funzionare per loro.

BDD si basa su TDD formalizzando le buone abitudini dei migliori professionisti TDD. TDD è uno strumento di sviluppo o una guida per scrivere un buon software e BDD è un buon strumento per aiutare all'esterno nello sviluppo con più coinvolgimento dall'affare poiché è sviluppato usando un linguaggio onnipresente.

La mia esperienza è che BDD aiuta nella collaborazione e l'uso di specifiche eseguibili e leggibili per il business aiuta a costruire un linguaggio condiviso quando tutti i membri del team sono coinvolti nella stesura della documentazione che descrive cosa dovrebbe fare il sistema. Questo aiuta l'intero team a imparare insieme la lingua del dominio.

BDD è ciò che serve per far funzionare TDD.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top