כרגיל אשתף תגובה שאני מאוד אוהב ואסביר את הכוונה של המשורר:The difference between BDD and TDD is that BDD begins with a B and TDD begins with a T. But seriously, the gotcha with TDD is that too many developers focused on the "How" when writing their unit tests, so they ended up with very brittle tests that did nothing more than confirm that the system does what it does.
BDD provides a new vocabulary and thus focus for writing a unit test. Basically it is a feature driven approach to TDD.
כשאתה כותב TDD אתה צריך באופן עקרוני (לא מחייב) לכתוב את הטסט לפני הקוד לראות שהוא נכשל ואז לכתוב את הקוד...
הבעיה העיקרית עם המתודולוגיה הזאת היא שמפתחים המון פעמים מתרכזים באיך לכתוב את הטסט ומסיימים עם טסטים מאוד שבירים שלא עושים כלום מלבד לתת אישור לכך שהמערכת עושה את מה שהיא אמורה לעשות.
עם BDD אתה ממש בודק את ההתנהגות של המערכת שלך, אם יש לך עמוד התחברות אז אתה ממש תבדוק את כל ה-flow של ההתחברות.
לדוגמא: כאשר משתמש מתחבר כבעל תפקיד X ואני לוחץ על Y אז אני צריך לראות Z.