خيار (برنامج)
Cucumber هي أداة برمجية تدعم تطوير البرمجيات الموجه بالسلوك (BDD). [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] يُعد محلل اللغة العادية المسمى Gherkin عنصرًا أساسيًا في منهجية BDD الخاصة بـ Cucumber . فهو يسمح بتحديد سلوكيات البرمجيات المتوقعة بلغة منطقية يفهمها العملاء. وبذلك، يُمكّن Cucumber من تنفيذ توثيق الميزات المكتوب بلغة موجهة للأعمال. [ 13 ] [ 7 ] [ 8 ] كما يُستخدم غالبًا لاختبار برامج أخرى. [ 14 ] ويُشغّل اختبارات قبول آلية مكتوبة بأسلوب تطوير البرمجيات الموجه بالسلوك (BDD). [ 15 ]
كُتب برنامج Cucumber في الأصل بلغة البرمجة Ruby [ 7 ] [ 16 ] [ 8 ] ، وكان يُستخدم حصريًا لاختبار Ruby كمكمل لإطار عمل RSpec BDD. يدعم Cucumber الآن مجموعة متنوعة من لغات البرمجة المختلفة من خلال تطبيقات متعددة، بما في ذلك Java [ 17 ] [ 8 ] و JavaScript [ 18 ] [ 19 ] . يوجد إصدار من Cucumber لبيئة .NET يُسمى SpecFlow [ 20 ] [ 21 ] [ 22 ]، والذي حل محله الآن Reqnroll [ 23 ] .
لغة غيركين
لغة غيركين هي اللغة التي يستخدمها نظام Cucumber لتعريف حالات الاختبار. صُممت هذه اللغة لتكون سهلة الفهم وغير تقنية، وتصف بشكل شامل حالات الاستخدام المتعلقة بنظام برمجي. [ 7 ] [ 8 ] [ 24 ] [ 25 ] يهدف بناء جملة غيركين إلى تعزيز ممارسات التطوير القائمة على السلوك في جميع أنحاء فريق التطوير، بما في ذلك محللي الأعمال والمديرين. وتسعى إلى فرض متطلبات واضحة لا لبس فيها، بدءًا من المراحل الأولية لتعريف المتطلبات من قِبل إدارة الأعمال، وفي مراحل أخرى من دورة حياة التطوير.
إضافةً إلى توفير نص برمجي للاختبار الآلي، صُممت بنية لغة غيركين الطبيعية لتوفير توثيق بسيط للكود قيد الاختبار. [ 25 ] يدعم غيركين حاليًا الكلمات المفتاحية في عشرات اللغات. [ 25 ] [ 26 ] [ 7 ] [ 8 ]
بناء الجملة
تتمحور بنية اللغة حول تصميم سطري ، على غرار لغة بايثون . يُحدد هيكل الملف باستخدام المسافات البيضاء وأحرف التحكم الأخرى. [ 25 ]# تُعتبر الأسطر التي تبدأ بـ تعليقات، ويمكن وضعها في أي مكان في الملف. [ 25 ] التعليمات هي أي سطر غير فارغ وغير تعليق. تتكون من كلمة مفتاحية معروفة في لغة غيركين متبوعة بسلسلة نصية. [ 27 ]
جميع ملفات Gherkin لها .featureامتداد الملف. تحتوي على تعريف ميزة واحد للنظام قيد الاختبار ، وهي عبارة عن نص برمجي قابل للتنفيذ للاختبار . [ 27 ]
إليك مثال على الصيغة: [ 28 ]
ميزة: خمن الكلمة # المثال الأول يتكون من خطوتين : السيناريو: يبدأ المُنشئ لعبة. عندما يبدأ المُنشئ لعبة، ينتظر المُنشئ انضمام المُخرِج. # المثال الثاني يتكون من ثلاث خطوات. السيناريو: ينضم اللاعب المُخَرِّب إلى لعبة. بافتراض أن اللاعب المُنشئ قد بدأ لعبة بكلمة " silky "، فعندما ينضم اللاعب المُخَرِّب إلى لعبة اللاعب المُنشئ، يجب عليه تخمين كلمة مكونة من 5 أحرف.سطر الأوامر
يأتي برنامج Cucumber مزودًا بواجهة سطر أوامر مدمجة تغطي قائمة شاملة من التعليمات. وكما هو الحال في معظم أدوات سطر الأوامر، يوفر Cucumber --helpخيارًا يعرض ملخصًا للوسائط التي يقبلها الأمر. [ 29 ]
$ cucumber --help -r, --require LIBRARY|DIR استدعاء الملفات قبل تنفيذ الميزات. --i18n LANG عرض الكلمات المفتاحية بلغة معينة. شغّل الأمر مع "--i18n help" لعرض جميع اللغات. -f, --format FORMAT كيفية تنسيق الميزات (الافتراضي: pretty). -o, --out [FILE|DIR] كتابة المخرجات إلى ملف/مجلد بدلاً من ...يمكن استخدام سطر أوامر Cucumber لتشغيل اختبارات محددة بسرعة. كما يدعم تشغيل مجموعة فرعية من السيناريوهات عن طريق تصفية العلامات.
$ cucumber --tags @tag-name يساعد الأمر المذكور أعلاه في تنفيذ السيناريوهات التي تتضمن فقط ما هو محدد @tag-name. [ 29 ] يمكن توفير الوسائط كعملية منطقية ORأو ANDعملية "أو" للوسوم. بالإضافة إلى الوسوم، يمكن تصفية السيناريوهات بناءً على أسماء السيناريوهات. [ 29 ]
$ cucumber --name logoutلن يتم تشغيل الأمر أعلاه إلا في السيناريوهات التي تحتوي على كلمة "logout".
من المفيد أيضاً معرفة سبب فشل الاختبار. يُسهّل Cucumber اكتشاف الأخطاء في الكود باستخدام هذا --backtraceالخيار. [ 29 ]
مراجع
- ^ "اسلك هيليسوي" . Aslakhellesoy.com . تم الاسترجاع 2012/01/24 .
- ↑ "جوزيف ويلك | حول الذكاء الاصطناعي، والويب، وسهولة الاستخدام، والاختبار، وعملية تطوير البرمجيات" . Blog.josephwilk.net . تاريخ الاطلاع: 24 يناير 2012 .
- ↑ "التطوير القائم على الشاي" . Blog.mattwynne.net . تم الاطلاع عليه بتاريخ 24 يناير 2012 .
- ↑ "ملف تعريف ghnatiuk" . GitHub . تم الاطلاع عليه بتاريخ 24-01-2012 .
- ↑ "ملف تعريف msassak" . GitHub . تم الاطلاع عليه بتاريخ 24-01-2012 .
- ↑ "الإصدار 13.1.1" . 16 يوليو 2026. تم الاطلاع عليه في 17 يوليو 2026 .
- ١ ٢ ٣ ٤ ٥ "رف الكتب العملي | كتاب الخيار" . Pragprog.com. مؤرشف من الأصل بتاريخ ٢١ يناير ٢٠١٢. تم الاطلاع عليه بتاريخ ٢٤ يناير ٢٠١٢ .
- 1 2 3 4 5 6 روز، سيب؛ وين، مات؛ هيليسوي، أسلاك (15 فبراير 2015). رف الكتب العملي | كتاب الخيار لجافا . Pragprog.com . تم الاسترجاع في 28 أبريل 2019 .
- ↑ "ما هو الخيار؟" . الخيار . تم الاسترجاع في 2019-06-08 .
- ↑ أسلاك هيليسوي. "أداة التعاون الأكثر سوء فهم في العالم" . خيار .
- ^ ناجي ، جاسبار. روز ، سيب (2017/03/07). كتب BDD - الاكتشاف . Leanpub. رقم ISBN 978-1983591259.
- ↑ روز، سيب؛ ناجي ، جاسبار (2021-04-27). كتب BDD – الصياغة . Leanpub. رقم ISBN 979-8723395015.
- ↑ فوكس، أرماندو؛ باترسون، ديفيد (2016). هندسة البرمجيات كخدمة . ستروبيري كانيون. ص 218-255 . ISBN 978-0-9848812-4-6.
- ↑ "الاختبار الآلي باستخدام Selenium وCucumber" . www.ibm.com . 2013-08-06 . تم الاطلاع عليه بتاريخ 2017-02-09 .
- ^ سوكين، ماتياس. ويلي روبرت. دريشلر ، رولف (29/05/2012). فوريا، كارلو أ. نانز، سيباستيان (محرران). الكائنات والنماذج والمكونات والأنماط . ملاحظات محاضرة في علوم الكمبيوتر. سبرينغر برلين هايدلبرغ. ص 269 – 287. دوى : 10.1007 / 978-3-642-30561-0_19 . رقم ISBN 9783642305603.
- ↑ "رف الكتب العملي | كتاب RSpec" . Pragprog.com. 2010-12-02. مؤرشف من الأصل في 2012-01-21 . تم الاطلاع عليه في 2012-01-24 .
- ↑ "Cucumber-jvm" . cucumber . تم الاسترجاع في 2018-03-08 .
- ↑ "Cucumber-js" . cucumber . تم الاسترجاع في 2018-03-08 .
- ↑ نايديل مانجوناث؛ أوليفييه دي مولدر (2019-02-01). "لا توجد أكواد؟ لا مشكلة - كتابة الاختبارات بلغة إنجليزية بسيطة" . تايمز أوبن . تم الاسترجاع في 29 أبريل 2019 .
- ↑ "ربط متطلبات العمل بكود .NET" . SpecFlow . تم الاطلاع عليه بتاريخ 29-04-2019 .
- ↑ "SpecFlow" . GitHub . تم الاسترجاع في 29-04-2019 .
- ↑ ريتشارد لورانس؛ بول راينر (2018). التنمية القائمة على السلوك باستخدام برنامج Cucumber . أديسون ويسلي.
- ↑ ناجي، غاسبار (8 فبراير 2024). "من SpecFlow إلى Reqnroll: لماذا وكيف؟" . reqnroll.net . Reqnroll . تم الاطلاع عليه في 18 أبريل 2024 .
- ↑ "cucumber/gherkin" . GitHub . تم الاسترجاع في 2017-02-09 .
- 1 2 3 4 5 "Gherkin Syntax" . cucumber . تم الاسترجاع في 2019-07-09 .
- ↑ "اللغات المدعومة في Gherkin" . Gherkin. cucumber/cucumber: مستودع Cucumber الموحد - لبنات بناء Cucumber بلغات متعددة . تم الاسترجاع في 21-03-2021 - عبر GitHub .
- 1 2 "مرجع" . خيار . مؤرشف من الأصل بتاريخ 25-10-2015 . تم الاسترجاع بتاريخ 17-01-2016 .
- ↑ "مرجع الخيار المخلل" . خيار . مؤرشف من الأصل بتاريخ 13 يناير 2024. تم الاطلاع عليه بتاريخ 11 فبراير 2024 .
- 1 2 3 4 وين، مات؛ هيليسوي، أسلاك. "كتاب الخيار" . SafariBooksOnline . تم الاطلاع عليه بتاريخ 22 يناير 2016 .
روابط خارجية
- أدوات اختبار البرمجيات المجانية
- برنامج مرخص بموجب ترخيص MIT
- برنامج مجاني مكتوب بلغة روبي
