التطوير القائم على السلوك (BDD) هو ممارسة معروفة للتعاون، وتستخدمه الفرق لسد الفجوة بين إدارة المنتج وفريق تطوير البرمجيات. كما أنها تحظى بشعبية كبيرة بين مهندسي الجودة لتطوير أطر عمل أتمتة الاختبار. تساعد لغة BDD في وصف المتطلبات في شكل ملفات وسيناريوهات للميزات؛ ويتم وصف السيناريوهات كذلك بصيغة “معطى” و”متى” و”ثم”.
يمكن استخدام لغة Gherkin لكتابة ملفات الميزات بأكثر من 40 لغة. بعض الكلمات الرئيسية المهمة في لغة Gherkin المذكورة أدناه والتي تساعد في وصف الميزات والسيناريوهات: – ميزة، سيناريو، معطى، متى، متى، ثم، ثم، و، لكن، الخلفية، مخطط السيناريو، وأمثلة
يمكنك كتابة ملف الميزات في المفكرة أو بعض برامج IDE الشهيرة مثل Visual Studio و Eclipse و IntelliJ وغيرها. في الأساس، ليست هناك حاجة لمعرفة أي أدوات معينة. ولكن الشيء الأكثر أهمية هو كيفية التحضير لهذه السيناريوهات. هناك ممارسة شائعة جدًا تعرف باسم جلسة الأصدقاء الثلاثة.
فيما يلي نبذة عن هذه الجلسة، كما هو موضح في مسرد المصطلحات على موقع Agile Alliance. يشير الأصدقاء الثلاثة إلى وجهات النظر الأساسية لفحص زيادة العمل قبل وأثناء وبعد التطوير. هذه المنظورات هي
العمل – ما المشكلة التي نحاول حلها؟
التطوير – كيف يمكننا بناء حل لحل هذه المشكلة؟
الاختبار – ماذا عن هذا؟ ما الذي يمكن أن يحدث؟
يجب أن يتعاون الأشخاص الذين يحملون وجهات النظر المختلفة هذه لتحديد ما يجب القيام به والاتفاق على كيفية معرفة متى يتم ذلك بشكل صحيح. النتيجة النهائية لمثل هذا التعاون ينتج عنه وصف أوضح لزيادة العمل، وغالبًا ما يكون ذلك على شكل أمثلة، مما يؤدي إلى فهم مشترك للفريق.
إذا كنت تقوم بتطوير برمجيات باستخدام Scrum، فقد ترغب في استضافة هذه الجلسات أثناء تنقيح الأعمال المتراكمة للمنتج أو تخطيط سبرينت. وذلك لأن مالك المنتج وفريق التطوير يشاركان خلالهما حيث يقدم مالك المنتج آفاق العمل، ويقدم فريق التطوير (الذي يتألف من المطورين والمختبرين إلى جانب أعضاء آخرين) آفاق التطوير والاختبار.
الميزة: البحث عن رحلة طيران بصفتي مسافرًا، أريد البحث عن الرحلات المتاحة بين بنغالور وتشيناي حتى أتمكن من الحجز للسفر في تاريخ معين. #القصة/الوصف أعلاه اختياري
السيناريو: ابحث عن جميع الرحلات المتاحة بناءً على التاريخ والمنشأ والوجهة بناءً على التاريخ والمنشأ والوجهة أدخل المسافر تاريخ السفر على أنه “12/12/2020” والمنشأ “بنغالور والوجهة “تشيناي” عند النقر على زر البحث ثم يجب أن تعرض صفحة البحث جميع الرحلات المتاحة وتوفر خيارًا لحجز الرحلة ما هي القصة / المتطلبات المعقدة؟ خذ مثال البحث عن رحلة الطيران أعلاه، يبدو هذا بسيطًا جدًا ولكن هل يمكن تسليمه في أسبوعين من السباق؟ هل لدينا إجابة على الأسئلة التالية؟
يمكن أن تكون الأسئلة أكثر بكثير مما سبق وتحتاج إلى استكشافها وتطويرها والتحقق من صحتها. قد يكون من الممكن أو لا يكون من الممكن إكمال هذه الميزة في سباق واحد. هل يعتمد أيضًا على جميع الأعمال التي تم ذكرها في تعريف المنجز (DoD)؟
نعم، هو كذلك. إذن كيف يمكن تقسيم هذه الميزة للحصول على زيادة منتج قابلة للإصدار من خلال تلبية DoD في نهاية السباق السريع؟ استخدم سيناريو BDD كما هو موضح أدناه لتقسيمها ثم حدد الأولويات بناءً على القيمة التي تراها في كل شريحة. قم بتطوير القصص بشكل تدريجي وتأكد من حصولك على الملاحظات لزيادة تجربة المستخدم إلى أقصى حد وتحسين قيمة العمل.
الآن قم بتغيير السيناريو للبحث عن رحلات طيران لشركة طيران واحدة في كل مرة لأن ربط مصادر متعددة قد لا يكون ممكنًا في سباق واحد وقم بتعديله على النحو التالي.
السيناريو: ابحث فقط عن رحلة طيران Indigo بناءً على التاريخ والمنشأ والوجهة بناءً على التاريخ والمنشأ والوجهة بالنظر إلى أن المسافر يدخل تاريخ السفر كـ “12/12/2020” والمنشأ كـ “بنغالور والوجهة كـ “تشيناي” عند النقر على زر البحث ثم يجب أن تعرض صفحة البحث جميع الرحلات المتاحة وتوفر خيار حجز الرحلة.
السيناريو: ابحث فقط عن رحلة طيران Spicejet بناءً على التاريخ والمنشأ والوجهة إذا أدخل المسافر تاريخ السفر ك “12/12/2020” والمنشأ ك “بنغالور والوجهة ك “تشيناي” عند النقر على زر البحث، يجب أن تعرض صفحة البحث جميع الرحلات المتاحة وتوفر خيارًا لحجز الرحلة.
السيناريو: ابحث فقط عن رحلة طيران جيت إيروايز بناءً على التاريخ والمنشأ والوجهة بناءً على التاريخ والمنشأ والوجهة إذا أدخل المسافر تاريخ السفر ك “12/12/2020” والمنشأ ك “بنغالور والوجهة ك “تشيناي” عند النقر على زر البحث، يجب أن تعرض صفحة البحث جميع الرحلات المتاحة وتوفر خيار حجز الرحلة الآن يمكن للفريق أن يقرر بناء تلك السيناريوهات التي يمكن تسليمها في سباق واحد فقط والسيناريوهات المتبقية في السباقات القادمة (إذا كان ذلك منطقيًا).
يمكن أيضًا تقسيم السيناريوهات المذكورة أعلاه إلى شرائح أخرى كما هو موضح أدناه إذا لزم الأمر.
ما هو معنى تحسين القيمة عدد قليل من الأشياء التي يجب الاهتمام بها عند الحديث عن تحسين القيمة:
يساعد BDD في إنجاز كل شيء. يساعد تطوير القصص بناءً على السيناريوهات في الحصول على زيادة صغيرة، وإصدارها داخليًا أو خارجيًا إذا كان ذلك منطقيًا. إن الحصول على تفاصيل كل قصة يقلل من الغموض وإعادة العمل والرفض، وبالتالي يقلل من إهدار الفريق. يتم أتمتة سيناريوهات BDD بمساعدة أدوات مختلفة مثل Cucumber وSpecFlow وBechave بحيث تصبح اختبارات الانحدار سهلة التنفيذ في كل مرة. يمكن تحقيق جودة أفضل من خلال إعادة هيكلة التعليمات البرمجية بشكل مستمر ويشعر المطورون بالأمان في إعادة الهيكلة لأن هذه الاختبارات تحميهم من كسر التعليمات البرمجية قيد التشغيل.
آمل أن تكون مفيدة وإذا كان لديك المزيد من الاستفسارات فتواصل معي على naveen@SPOTO.com. نحن في SPOTO نقدم في SPOTO تدريب Scrum و Agile بما في ذلك TDD و BDD والبرمجة القصوى، إذا كنت مهتمًا بتعلمها.
نافين هو مدرب رشيق محترف ويعمل بشكل مستقل منذ فترة طويلة في منطقة آسيا والمحيط الهادئ. وهو يعمل مع فريق تطوير البرمجيات وفريق المنتج لتطوير منتجات رائعة بناءً على عمليات تجريبية.
