3 ms·
BDD means testing that you've delivered what the customer asked for. User stories expressed as test. This is like the architect's rendering of a building; it ex
by purp 16y ago
BDD means testing that you've delivered what the customer asked for. User stories expressed as test. This is like the architect's rendering of a building; it expresses and implies certain desired qualities.
TDD means testing that you've implemented a system which has all the significant qualities you expected. It intends to prove that the system does all of the right things and none of the wrong things on the way to delivering what the customer asked for. This is more like the blueprint of the building, making all significant details explicit.
You could practice BDD without TDD, though I've yet to see someone choose to. You can practice TDD without BDD, which I've seen many people do.
- silentbicycle 16y ago> BDD means testing that you've delivered what the customer asked for. No, that's "Acceptance testing", and doing it without TDD is actually quite common.
- purp 16y ago... which is why you frequently hear BDD called "Agile Acceptance Testing"
- swombat 16y agoPerhaps by later practitioners of BDD who have no idea what they're talking about... RSpec itself is in fact driven by the BDD ideas - adapting the language to make "doing the right thing" easier, and focusing on testing behaviour rather than state. RSpec has little or nothing to do with acceptance testing. It is thoroughly a unit testing tool.