BDD: حول أفكارك إلى مواصفات برمجية قابلة للتنفيذ لضمان الجودة!

استمع للبودكاست حوار شيق بين لمى وأبو عمر
0:00 / 0:00

مقدمة: لما نحكي BDD، مش بس بنحكي اختبار!

بتذكر مرة، كنا شغالين على مشروع كبير لإدارة المخزون. كل فريق كان يشتغل لحاله، وفهم كل واحد للمتطلبات كان مختلف. النتيجة؟ تطبيق مليان مشاكل، وكل تعديل بكلفنا وقت وجهد مضاعف. وقتها، عرفت إنه في شي غلط! مش معقول هيك نضيع وقتنا وجهدنا. ومن هون بدأت رحلتي مع الـ BDD.

BDD أو Behavior-Driven Development (التطوير الموجه بالسلوك) مش مجرد طريقة للاختبار، هي فلسفة كاملة بتغير طريقة تفكيرنا في تطوير البرمجيات. هي طريقة بتخلينا نركز على سلوك البرنامج من وجهة نظر المستخدم، مش بس على الكود.

شو يعني BDD؟

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

المكونات الأساسية لـ BDD

* **السلوك (Behavior):** كيف لازم البرنامج يتصرف في سيناريوهات مختلفة.
* **المواصفات (Specifications):** وصف واضح ومفصل للسلوك المطلوب.
* **الأمثلة (Examples):** أمثلة ملموسة بتوضح كيف لازم البرنامج يتصرف في حالات محددة.
* **اللغة المشتركة (Ubiquitous Language):** استخدام مصطلحات واضحة ومفهومة للجميع (المطورين، المختبرين، أصحاب المصلحة).

كيف نكتب مواصفات BDD؟

الكتابة بلغة الـ BDD مش صعبة، بس بدها شوية تركيز. بنستخدم لغة بسيطة وواضحة، قريبة من اللغة الطبيعية، عشان الكل يفهمها. أشهر الأدوات اللي بتساعدنا في هيك هي Gherkin.

Gherkin: لغة المواصفات

Gherkin هي لغة بسيطة وسهلة القراءة، بتستخدم لكتابة مواصفات الـ BDD. بتعتمد على مجموعة من الكلمات المفتاحية اللي بتحدد هيكل المواصفة.

* **Feature:** بتوصف الميزة اللي بدنا نختبرها.
* **Scenario:** بتوصف سيناريو محدد للميزة.
* **Given:** بيحدد الحالة الأولية أو الظروف اللي بتبدأ فيها السيناريو.
* **When:** بيوصف الحدث أو الإجراء اللي بيصير.
* **Then:** بيوصف النتيجة المتوقعة بعد حدوث الحدث.
* **And, But:** كلمات ربط بتستخدم لإضافة تفاصيل إضافية.

مثال عملي باستخدام Gherkin

خلينا ناخد مثال على ميزة تسجيل الدخول:


Feature: تسجيل الدخول

  Scenario: تسجيل الدخول بنجاح باستخدام اسم مستخدم وكلمة مرور صحيحة
    Given المستخدم موجود في قاعدة البيانات
    And  المستخدم غير مسجل دخوله
    When المستخدم يدخل اسم المستخدم "abuomar"
    And  المستخدم يدخل كلمة المرور "password123"
    And  المستخدم يضغط على زر "تسجيل الدخول"
    Then يجب أن يتم تسجيل دخول المستخدم بنجاح
    And  يجب أن تظهر رسالة ترحيب "مرحباً بك يا أبو عمر!"

هذا المثال ببساطة بيوصف سيناريو تسجيل الدخول بنجاح. الـ Given بتحدد الشروط المسبقة، الـ When بتوصف الإجراء اللي بيقوم فيه المستخدم، والـ Then بتوصف النتيجة المتوقعة.

أدوات مفيدة في تطبيق BDD

في أدوات كتير بتساعدنا في تطبيق الـ BDD، أشهرها:

* **Cucumber:** أداة بتسمح لنا ننفذ مواصفات Gherkin كاختبارات تلقائية.
* **SpecFlow:** نسخة .NET من Cucumber.
* **Behave:** مكتبة Python لتطبيق BDD.

فوائد تطبيق BDD

* **تحسين التواصل:** الـ BDD بتساعد الفرق على التواصل بشكل أفضل، لأن الكل بيفهم المواصفات بنفس الطريقة.
* **تقليل الأخطاء:** من خلال تحديد السلوك المتوقع بشكل واضح، بنقلل احتمالية حدوث الأخطاء.
* **زيادة جودة البرمجيات:** الـ BDD بتساعدنا نركز على سلوك البرنامج من وجهة نظر المستخدم، وهذا بيؤدي إلى برمجيات ذات جودة أعلى.
* **تسهيل عملية الاختبار:** المواصفات بتصير بمثابة اختبارات تلقائية، وهذا بيوفر علينا وقت وجهد في عملية الاختبار.

نصائح من تجربتي الشخصية

* **ابدأ صغيرًا:** مش ضروري تطبق الـ BDD على كل المشروع مرة وحدة. ابدأ بميزة صغيرة وجرب، وبعدين وسع نطاق التطبيق.
* **ركز على السلوك:** الأهم هو فهم سلوك البرنامج من وجهة نظر المستخدم. لا تركز على التفاصيل التقنية في المواصفات.
* **شارك الجميع:** الـ BDD بدها مشاركة من كل أعضاء الفريق، من المطورين للمختبرين لأصحاب المصلحة.
* **استخدم لغة واضحة:** اختار مصطلحات واضحة ومفهومة للجميع، وتجنب المصطلحات التقنية المعقدة.
* **لا تخف من التعديل:** المواصفات مش ثابتة، ممكن تتغير مع تطور المشروع. لا تخف من تعديلها وتحديثها.

خلاصة: الـ BDD مش بس كود، هي ثقافة! 🚀

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

**نصيحة أخيرة:** لا تخافوا تجربوا الـ BDD. ابدأوا بميزة صغيرة، وجربوا تكتبوا مواصفات Gherkin. شوفوا كيف بتأثر على طريقة عملكم، وكيف بتزيد جودة برمجياتكم. بالتوفيق! 👍

أبو عمر

سجل دخولك لعمل نقاش تفاعلي

كافة المحادثات خاصة ولا يتم عرضها على الموقع نهائياً

آراء من النقاشات

لا توجد آراء منشورة بعد. كن أول من يشارك رأيه!

آخر المدونات

تجربة المستخدم والابداع البصري

من الكنباية في بالي إلى الكنباية في صالوني: رحلتي مع الواجهات الفضائية والواقع المعزز

أشارككم خبرتي كمبرمج فلسطيني في عالم الواجهات الفضائية (Spatial UX) والواقع المعزز. نستكشف معًا كيف تحولت الشاشات المسطحة إلى تجارب ثلاثية الأبعاد غامرة، ونتناول التحديات...

14 يناير، 2026 قراءة المزيد
تجربة المستخدم والابداع البصري

التصميم التوقعي والواجهات غير المرئية: كيف تجعل تطبيقاتك تقرأ أفكار المستخدمين؟

من منظور مطور برمجيات، أغوص في عالم التصميم التوقعي والواجهات غير المرئية (Zero UI). نستكشف كيف يمكن للتطبيقات أن تتنبأ باحتياجاتك قبل أن تطلبها، مع...

13 يناير، 2026 قراءة المزيد
من لمسة يد إلى همسة صوت: كيف تبني الواجهات متعددة الأنماط جيلاً جديداً من التجارب الرقمية
تجربة المستخدم والابداع البصري

من لمسة يد إلى همسة صوت: كيف تبني الواجهات متعددة الأنماط جيلاً جديداً من التجارب الرقمية

بدلاً من الاعتماد على الشاشات والنقر فقط، المستخدمون اليوم يتوقون لتفاعل طبيعي وسلس مع التكنولوجيا. في هذه المقالة، نستكشف عالم الواجهات متعددة الأنماط (Multimodal Interfaces)...

13 يناير، 2026 قراءة المزيد
تجربة المستخدم والابداع البصري

واجهتك تعرفك أكثر منك: كيف يصنع الذكاء الاصطناعي تجربة مستخدم فريدة لكل شخص؟

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

13 يناير، 2026 قراءة المزيد
التكنلوجيا المالية Fintech

الذكاء الاصطناعي الصوتي في البنوك: من طوابير الانتظار إلى معاملات فورية بصوتك

وكلاء الصوت الذكية يمثلون ثورة في كيفية تفاعل العملاء مع البنوك، محولين المعاملات المعقدة إلى محادثات طبيعية. في هذه المقالة، نستكشف كيف يغير الذكاء الاصطناعي...

13 يناير، 2026 قراءة المزيد
التكنلوجيا المالية Fintech

المالية المفتوحة: كيف تستعيد ملكية بياناتك المالية وتصنع مستقبلك؟

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

13 يناير، 2026 قراءة المزيد
البودكاست