ما هو الفرق بين التطوير القائم على الاختبار (TDD) والتطوير المعتمد على السلوك (BDD)؟


الاجابه 1:

بالنسبة لي الفرق الوحيد هو الذي هو الجزء الأكثر أهمية في التطبيق الخاص بك والتي يجب التركيز عليها.

يعني TDD أنه يجب عليك اختبار كل طريقة في التطبيق الخاص بك (جيدًا ، وليس كل طريقة ، ولكن على الأقل تغطية جيدة منها) تسألهم "متى نفذتك بهذه المعلمات ، ما الآثار التي لديك؟".

يعني BDD أنه يجب عليك اختبار كل سلوك مستخدم (مرة أخرى ، "كل" هو أفضل موقف ، ولكن في بعض الأحيان لا يمكنك اختبار كل سلوك) باستخدام لغة مختلفة: "عندما يذهب المستخدم إلى هذه الصفحة ، املأ هذا النموذج وأرسله ماذا يمكن أن نرى بعد؟ "

لاحظ أن ما تطلبه في TDD هو "ماذا يفعل التطبيق؟" وفي BDD تسأل "ماذا يمكن أن يرى المستخدم؟"

TDD هو أكثر exahustive ولكن لديه مشكلة ، يعتمد أكثر على التنفيذ. إذا قمت بتغيير اسم الفصل ، الطريقة ، ما هي الطريقة التي تُرجعها ، وما إلى ذلك ، يجب عليك تغيير الاختبار.

BDD هو أكثر واقعية. لا أهتم بالتطبيق الداخلي ولكن بما يمكن للمستخدم القيام به ويمكنه رؤيته. إذا قمت بتغيير التطبيق الداخلي (قمت بتغيير خدمة الويب التي تستخدمها ، اسم فئة أو الخوارزمية) ولكن المستخدم لا يزال يرى أنه يعمل على ما يرام.

المشكلة التي وجدتها في BDD هي سيناريو يكون فيه تأثير المستخدم غير مرئي للمستخدم (يتم إرسال شيء إلى مسؤول ، على سبيل المثال). إذا كنت تختبر وحدة تحكم كما هو الحال في TDD ، فيمكنك التحقق مباشرةً من إرسال ذلك إلى المسؤول.

أعتقد أن استراتيجية الاختبار المثالية (إذا كان هناك شيء ما) تعتمد على السيناريو الخاص بك وما تريده من الاختبارات.


الاجابه 2:

(اقرأ المنشور الأصلي TDD مقابل BDD أو لماذا BDD هو الأسود الجديد)

لمساعدة المطورين على التنقل بين مفاهيم اختبار الوحدات ، TDD و BDD ، والشعور بعدم الخلط عند مقارنتهم ، دعونا نلقي نظرة مختصرة على جميع الأساليب المذكورة مع التركيز على أحدث فكرة BDD.

وحدة التجارب

يستخدم اختبار الوحدة عادة لاختبار وظيفة واحدة. المطورين وبالتالي إنشاء العديد من اختبارات الوحدة لاختبار وظائف فردية. من الضروري أن تكون اختبارات الوحدة بسيطة وسريعة في الكتابة والتشغيل. كلما تم تنفيذ المزيد من اختبارات الوحدة ، زادت فرصة التقاط جميع الأخطاء في التعليمات البرمجية الخاصة بك. يعد اختبار الوحدة مفيدًا للغاية عندما يحتاج المطورون إلى تغيير الكود. يضمن عدم كسر الشفرة الحالية عند إضافة أي أجزاء أخرى من الشفرة.

TDD

التطوير المبني على الاختبار (TDD) هو أحد ممارسات تطوير البرامج التي تستخدم طريقة الكتابة أولاً للاختبار الذي فشل قبل إضافة جزء جديد من التعليمات البرمجية الوظيفية وإعادة البناء.

في سيناريو TDD القصير يمكن تقديمه في المخطط التالي:

تطوير يحركها اختبار يعمل تماما مع اختبارات وحدة. يستخدمه المطورون أيضًا لطرق أخرى. لا توجد متطلبات خاصة لاستخدام TDD أو أي بناء جملة لمعرفة الحاجة.

BDD

أصبح BDD أو التطوير القائم على السلوك مؤخرًا عبارة عن مصطلح "واو" في مجتمع تطوير البرمجيات. لماذا ا؟ لأنها منهجية جديدة ، والتي تركز على ما يفعله الكائن ، الطريقة أو الشيء ، سلوكه. كما أنه يدعم بشكل أفضل الأطر التي تركز على الأعمال. أطر عمل BDD الأكثر شيوعًا المستخدمة من قبل المطورين الفعالين في جميع أنحاء العالم هي Cucumber و JBehave و Easyb و Concordion.

يمكن تمثيل نهج التطوير القائم على السلوك بالسيناريو التالي:

TDD مقابل BDD

يختلف تطوير BDD أو التطوير القائم على السلوك عن TDD (التطوير المستند إلى الاختبار) من حيث أنه يجمع بشكل أفضل بين لغة (المتطلبات) التجارية والاختبار (اختبارات الوحدة). يتيح BDD تنظيم مستندات تطوير البرامج بطريقة أكثر فاعلية وأكثر شبهاً بالعمل. وبالتالي يمكن لمحللي الأعمال الوصول إلى المعلومات المطلوبة بشكل أسرع بكثير ويرى أصحاب المصلحة أن التغييرات يتم تنفيذها بشكل أفضل.

على عكس TDD BDD يقدم تفاصيل إضافية في اختبارات الوحدة. يستفيد المطورون من BDD بالطريقة التي تشرح لهم كيفية الاختبار ، مع التركيز ليس على تنفيذ الاختبار ولكن على سلوك الاختبار بدلاً من ذلك.

استنتاج

لتلخيص فوائد نهج التطوير القائم على السلوك ، يوفر BDD للمطورين الإجابة على "كيفية" القيام بتطوير البرامج ، بينما يجيب TDD على "متى" واختبار الوحدة مع توفير الإجابة على "ما" القيام والاختبار. ومع ذلك ، فإن النصيحة الأكثر شيوعًا من زملائي المطورين والخيار الأفضل هو الجمع بين BDD وجميع الأساليب المذكورة. سيساعد هذا في ضمان اكتمال تغطية الأخطاء في الكود.


الاجابه 3:

(اقرأ المنشور الأصلي TDD مقابل BDD أو لماذا BDD هو الأسود الجديد)

لمساعدة المطورين على التنقل بين مفاهيم اختبار الوحدات ، TDD و BDD ، والشعور بعدم الخلط عند مقارنتهم ، دعونا نلقي نظرة مختصرة على جميع الأساليب المذكورة مع التركيز على أحدث فكرة BDD.

وحدة التجارب

يستخدم اختبار الوحدة عادة لاختبار وظيفة واحدة. المطورين وبالتالي إنشاء العديد من اختبارات الوحدة لاختبار وظائف فردية. من الضروري أن تكون اختبارات الوحدة بسيطة وسريعة في الكتابة والتشغيل. كلما تم تنفيذ المزيد من اختبارات الوحدة ، زادت فرصة التقاط جميع الأخطاء في التعليمات البرمجية الخاصة بك. يعد اختبار الوحدة مفيدًا للغاية عندما يحتاج المطورون إلى تغيير الكود. يضمن عدم كسر الشفرة الحالية عند إضافة أي أجزاء أخرى من الشفرة.

TDD

التطوير المبني على الاختبار (TDD) هو أحد ممارسات تطوير البرامج التي تستخدم طريقة الكتابة أولاً للاختبار الذي فشل قبل إضافة جزء جديد من التعليمات البرمجية الوظيفية وإعادة البناء.

في سيناريو TDD القصير يمكن تقديمه في المخطط التالي:

تطوير يحركها اختبار يعمل تماما مع اختبارات وحدة. يستخدمه المطورون أيضًا لطرق أخرى. لا توجد متطلبات خاصة لاستخدام TDD أو أي بناء جملة لمعرفة الحاجة.

BDD

أصبح BDD أو التطوير القائم على السلوك مؤخرًا عبارة عن مصطلح "واو" في مجتمع تطوير البرمجيات. لماذا ا؟ لأنها منهجية جديدة ، والتي تركز على ما يفعله الكائن ، الطريقة أو الشيء ، سلوكه. كما أنه يدعم بشكل أفضل الأطر التي تركز على الأعمال. أطر عمل BDD الأكثر شيوعًا المستخدمة من قبل المطورين الفعالين في جميع أنحاء العالم هي Cucumber و JBehave و Easyb و Concordion.

يمكن تمثيل نهج التطوير القائم على السلوك بالسيناريو التالي:

TDD مقابل BDD

يختلف تطوير BDD أو التطوير القائم على السلوك عن TDD (التطوير المستند إلى الاختبار) من حيث أنه يجمع بشكل أفضل بين لغة (المتطلبات) التجارية والاختبار (اختبارات الوحدة). يتيح BDD تنظيم مستندات تطوير البرامج بطريقة أكثر فاعلية وأكثر شبهاً بالعمل. وبالتالي يمكن لمحللي الأعمال الوصول إلى المعلومات المطلوبة بشكل أسرع بكثير ويرى أصحاب المصلحة أن التغييرات يتم تنفيذها بشكل أفضل.

على عكس TDD BDD يقدم تفاصيل إضافية في اختبارات الوحدة. يستفيد المطورون من BDD بالطريقة التي تشرح لهم كيفية الاختبار ، مع التركيز ليس على تنفيذ الاختبار ولكن على سلوك الاختبار بدلاً من ذلك.

استنتاج

لتلخيص فوائد نهج التطوير القائم على السلوك ، يوفر BDD للمطورين الإجابة على "كيفية" القيام بتطوير البرامج ، بينما يجيب TDD على "متى" واختبار الوحدة مع توفير الإجابة على "ما" القيام والاختبار. ومع ذلك ، فإن النصيحة الأكثر شيوعًا من زملائي المطورين والخيار الأفضل هو الجمع بين BDD وجميع الأساليب المذكورة. سيساعد هذا في ضمان اكتمال تغطية الأخطاء في الكود.


الاجابه 4:

(اقرأ المنشور الأصلي TDD مقابل BDD أو لماذا BDD هو الأسود الجديد)

لمساعدة المطورين على التنقل بين مفاهيم اختبار الوحدات ، TDD و BDD ، والشعور بعدم الخلط عند مقارنتهم ، دعونا نلقي نظرة مختصرة على جميع الأساليب المذكورة مع التركيز على أحدث فكرة BDD.

وحدة التجارب

يستخدم اختبار الوحدة عادة لاختبار وظيفة واحدة. المطورين وبالتالي إنشاء العديد من اختبارات الوحدة لاختبار وظائف فردية. من الضروري أن تكون اختبارات الوحدة بسيطة وسريعة في الكتابة والتشغيل. كلما تم تنفيذ المزيد من اختبارات الوحدة ، زادت فرصة التقاط جميع الأخطاء في التعليمات البرمجية الخاصة بك. يعد اختبار الوحدة مفيدًا للغاية عندما يحتاج المطورون إلى تغيير الكود. يضمن عدم كسر الشفرة الحالية عند إضافة أي أجزاء أخرى من الشفرة.

TDD

التطوير المبني على الاختبار (TDD) هو أحد ممارسات تطوير البرامج التي تستخدم طريقة الكتابة أولاً للاختبار الذي فشل قبل إضافة جزء جديد من التعليمات البرمجية الوظيفية وإعادة البناء.

في سيناريو TDD القصير يمكن تقديمه في المخطط التالي:

تطوير يحركها اختبار يعمل تماما مع اختبارات وحدة. يستخدمه المطورون أيضًا لطرق أخرى. لا توجد متطلبات خاصة لاستخدام TDD أو أي بناء جملة لمعرفة الحاجة.

BDD

أصبح BDD أو التطوير القائم على السلوك مؤخرًا عبارة عن مصطلح "واو" في مجتمع تطوير البرمجيات. لماذا ا؟ لأنها منهجية جديدة ، والتي تركز على ما يفعله الكائن ، الطريقة أو الشيء ، سلوكه. كما أنه يدعم بشكل أفضل الأطر التي تركز على الأعمال. أطر عمل BDD الأكثر شيوعًا المستخدمة من قبل المطورين الفعالين في جميع أنحاء العالم هي Cucumber و JBehave و Easyb و Concordion.

يمكن تمثيل نهج التطوير القائم على السلوك بالسيناريو التالي:

TDD مقابل BDD

يختلف تطوير BDD أو التطوير القائم على السلوك عن TDD (التطوير المستند إلى الاختبار) من حيث أنه يجمع بشكل أفضل بين لغة (المتطلبات) التجارية والاختبار (اختبارات الوحدة). يتيح BDD تنظيم مستندات تطوير البرامج بطريقة أكثر فاعلية وأكثر شبهاً بالعمل. وبالتالي يمكن لمحللي الأعمال الوصول إلى المعلومات المطلوبة بشكل أسرع بكثير ويرى أصحاب المصلحة أن التغييرات يتم تنفيذها بشكل أفضل.

على عكس TDD BDD يقدم تفاصيل إضافية في اختبارات الوحدة. يستفيد المطورون من BDD بالطريقة التي تشرح لهم كيفية الاختبار ، مع التركيز ليس على تنفيذ الاختبار ولكن على سلوك الاختبار بدلاً من ذلك.

استنتاج

لتلخيص فوائد نهج التطوير القائم على السلوك ، يوفر BDD للمطورين الإجابة على "كيفية" القيام بتطوير البرامج ، بينما يجيب TDD على "متى" واختبار الوحدة مع توفير الإجابة على "ما" القيام والاختبار. ومع ذلك ، فإن النصيحة الأكثر شيوعًا من زملائي المطورين والخيار الأفضل هو الجمع بين BDD وجميع الأساليب المذكورة. سيساعد هذا في ضمان اكتمال تغطية الأخطاء في الكود.