لغة غيركين: بناء الجملة، والتنسيق، والأمثلة

⚡ ملخص ذكي

لغة غيركين هي لغة سهلة القراءة في مجال الأعمال، تصف سلوك البرمجيات دون الخوض في تفاصيل التنفيذ. وهي تستخدم الكلمات المفتاحية Given وWhen وThen لتعريف Cucumber سيناريوهات الاختبار بلغة بسيطة، تعمل كوثائق حية وهيكل لاختبارات BDD الآلية.

  • 📝 لغة بسيطة: يصف برنامج Gherkin السلوك بحيث يمكن لغير المبرمجين قراءة وكتابة الاختبارات.
  • 🥒 Cucumber: Cucumber يقرأ ملفات .feature وينفذ خطوات Gherkin كاختبارات.
  • 🔑 معطى-عندما-إذن: يحدد السياق المحدد، وعندما يؤدي ذلك إلى إجراء ما، فإنه يؤكد النتيجة.
  • 🧱 : الكلمات المفتاحية تُشكل العناصر التالية هيكل كل سيناريو: الميزة، والخلفية، والسيناريو، و"و"، و"لكن".
  • ✅ أفضل ممارسة: اجعل كل سيناريو مستقلاً، واشرح ماذا، وليس كيف.
  • 🤖 مساعدة الذكاء الاصطناعي: تقوم أدوات الذكاء الاصطناعي بصياغة سيناريوهات "المعطيات-الحالات-النتائج" انطلاقاً من المتطلبات البسيطة.

لغة غيركين Cucumber

ما هي لغة غيركين؟

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

يُستخدم النص المكتوب بلغة غيركين كوثائق وهيكل أساسي لاختباراتك الآلية. تعتمد صيغة غيركين على قواعد تري توب، المتوفرة بأكثر من 37 لغة، مما يتيح لك كتابة غيركين بأكثر من 37 لغة منطوقة. يخدم هذا النص غرضين رئيسيين: توثيق سيناريوهات المستخدم، وتوفير الأساس لكتابة اختبارات BDD الآلية.

لماذا غيركين؟

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

تركيب غيركين

لغة جيركين هي لغة سطرية، تمامًا مثل لغة YAML و Pythonيُسمى كل سطر خطوة، ويبدأ بكلمة مفتاحية. تُستخدم علامات الجدولة أو المسافات للمسافة البادئة. يمكن إضافة تعليق في أي مكان، ولكن يجب أن يبدأ بعلامة #. يقرأ المفسر كل سطر بعد إزالة كلمات غيركين المفتاحية مثل Given وWhen وThen.

Feature: Title of the Scenario
  Given [Preconditions or Initial Context]
  When [Event or Trigger]
  Then [Expected output]

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

المصطلحات المهمة المستخدمة في لغة غيركين

الكلمات الرئيسية هي: الميزة، الخلفية، السيناريو، المعطيات، متى، ثم، و، لكن، ومخطط السيناريو. Cucumber لا توجد قواعد صارمة للتسمية، ولكن وجود اتفاقية تسمية واضحة يساعد.

الميزات

يجب أن يكون امتداد الملف ‎.feature، ويجب أن يصف كل ملف ميزة واحدة فقط. تبدأ الكلمة المفتاحية Feature بـ ميزة: متبوعًا بمسافة واسم الميزة.

سيناريو

قد يحتوي كل ملف من ملفات الميزات على سيناريوهات متعددة، ويبدأ كل سيناريو بـ السيناريو: متبوعًا باسم السيناريو.

نبذة عامة

تُضيف الكلمة المفتاحية "الخلفية" سياقًا للسيناريو. ويمكن أن تحتوي على خطوات مشتركة بين جميع السيناريوهات؛ والفرق هو أن هذه الخطوات تُنفذ قبل كل سيناريو.

معطى

تضع الكلمة المفتاحية Given النظام في حالة معروفة قبل أن يبدأ المستخدم بالتفاعل معه. وهي تحدد الشرط المسبق أو السياق:

Given I am on "/."

متى

تحدد الكلمة المفتاحية When الإجراء الذي يقوم به المستخدم:

When I perform "Sign In."

ثم

تُحدد الكلمة المفتاحية Then النتيجة التي تُلاحظ بعد الإجراء في خطوة When. يجب عليك التحقق فقط من التغييرات الملحوظة.

Then I should see "Welcome Tom."

ولكن

قد يكون لديك عدة خطوات "معطى" أو "عندما" أو "ثم". تضيف الكلمات المفتاحية "و" و"لكن" خطوات إضافية لتحسين سهولة القراءة.

And I enter "EmailAddress" with "tomjohn@gmail.com."
But I should see "Welcome Tom."

تُعدّ الكلمات Given وWhen وThen وAnd وBut خطوات اختبار. لا يُصدر المُفسّر خطأً إذا بدّلتَ بينها، لكنّ السيناريو لن يكون منطقيًا، لذا استخدم كل كلمة مفتاحية للغرض المقصود منها.

أمثلة غيركين

مثال 1: ميزة تسجيل الدخول لموقع تواصل اجتماعي.

Feature: Login functionality of a social networking site
  Given I am a registered user
  When I enter my username
  And I enter my password
  Then I should be redirected to the home page

يقوم برنامج Gherkin بتحليل كل خطوة مكتوبة في ملف الميزات، ويجب أن تتطابق الخطوات الموجودة في ملف الميزات مع تلك الموجودة في ملف تعريف الخطوات.

مثال 2: سيناريو مصادقة المستخدم مع خلفية.

Feature: User Authentication

Background:
  Given the user is already registered on the website

Scenario: Successful login
  Given the user is on the login page
  When the user inputs the correct email address
  And the user inputs the correct password
  And the user clicks the Login button
  Then the user should be authenticated
  And the user should be redirected to their dashboard

أفضل الممارسات لاستخدام Gherkin

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

مزايا غيركين

  • لغة Gherkin بسيطة بما يكفي ليفهمها غير المبرمجين.
  • يمكن للمبرمجين استخدامه كأساس متين لبدء اختباراتهم.
  • فهو يجعل قصص المستخدمين أسهل في الفهم ويستهدف متطلبات العمل.
  • بإمكان المديرين التنفيذيين في مجال الأعمال والمطورين قراءة نفس النص.
  • تربط حالات اختبار Gherkin اختبارات القبول مباشرة بالاختبارات الآلية.
  • أسلوب الكتابة هذا يجعل إعادة استخدام الكود في الاختبارات أسهل.

عيوب غيركين

  • يتطلب ذلك مستوى عالٍ من المشاركة والتعاون بين الشركات.
  • قد لا ينجح الأمر في كل الحالات.
  • يمكن أن تؤدي الاختبارات المكتوبة بشكل سيئ إلى زيادة تكلفة صيانة الاختبارات.

الأسئلة الشائعة

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

جيركين هي صيغة اللغة البسيطة لكتابة السيناريوهات. Cucumber هي إحدى الأدوات العديدة التي تقرأ ملفات Gherkin .feature وتنفذ الخطوات على تطبيقك.

يُنفّذ مخطط السيناريو نفس الخطوات مع مجموعات بيانات متعددة مُدرجة ضمن جدول الأمثلة. وهو يتجنب تكرار السيناريو لكل مجموعة من قيم الإدخال.

يُعرّف تعريف الخطوة كل خطوة من خطوات Gherkin برمز برمجي يُشغّلها. عندما Cucumber يقرأ خطوة، ويجد التعريف المطابق وينفذ تلك الطريقة على التطبيق.

يتألف الفريق الثلاثي من مالك المنتج، والمطور، والمختبر، الذين يراجعون ميزةً ما معًا. وتُنتج رؤيتهم المشتركة سيناريوهات Gherkin أكثر وضوحًا وشمولية من أي دور فردي.

بالإضافة إلى Cucumberيحظى مشروع غيركين بدعم من المواصفات لـ .NET و Behave لـ Python، من بين أطر عمل BDD الأخرى.

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

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

تلخيص هذه التدوينة بـ: