دليل لاختبار البرمجيات في Scrum

دليل لاختبار البرمجيات في Scrum

الغرض من هذه الموضوع من صموئيل مانيراج هو مشاركة الأفكار حول أنشطة اختبار البرمجيات في إطار عمل Scrum Agile. سيصف هذا الموضوع عملية اختبار البرمجيات المُتّبعة في منهجيّة scrum وكيف يمكن دمجها في scrum sprint.

ماذا يحدث في ال Scrum Sprint

سيتم تتبّع تقدّم ال sprint من خلال scrum board على أساس يومي. ينظّم ال scrum master اجتماعًا يوميًا (daily stand-up) لتحديد تقدّم الفريق والعوائق إن وُجِدت. يتمثّل دور ال scrum master في إزالة العوائق ومساعدة الفريق على المُضِي قُدُمًا لتحقيق أهداف ال sprint.

سيتم تحديد أولويّات ال user stories في جلسة تخطيط ال sprint. سيكون لفريق التطوير بما في ذلك المختبرين مخرجاتهم الخاصة وهي المهام التي تم إنشاؤها لل user story.

سيتم وضع ال user stories التي تم تحديدها حسب الأولويّة أثناء التخطيط لل sprint في قائمة Sprint Backlog (To Do) وفقًا للترتيب المحدّد. سيبدأ فريق التطوير العمل على مهام التطوير المرتبطة بال user story. ينقل فريق التطوير المهمّة إلى حالة التنفيذ (Doing) بمجرّد أن يتم البدء في كتابة الكود. بعد كتابة الكود واختبار وحدات الكود (unit testing)، سيتم نقل ال user stories إلى التحقّق (Verify). سيتم إرجاع ال user stories التي لا تستوفي معايير القبول إلى (Doing). سيتم نقل ال user stories التي اجتازت الاختبار إلى مرحلة (Done) بعد مراجعة معايير القبول مع ال product owner.

تحدث أنشطة الاختبار في Agile ضمن عملية التطوير. يجب أن يبدأ الاختبار مباشرة من مرحلة ال user story. كفريق واحد، يجب أن يكون لكل user story على الأقل معيار قبول محدّد ويتم مراجعته واعتماده. سيتم اشتقاق سيناريوهات الاختبار بناءً على معايير القبول المحدّدة. هذه هي المتطلبات الرئيسية لإجراء اختبار البرمجيات في scrum sprint.

المبادئ الأساسية في ال Agile Testing

  • اطْرَح الأسئلة الصحيحة ولا تفترض.
  • فكّرْ خارج الصندوق واجْلِب قيمة إلى الأعمال (value to business) من خلال سيناريوهات الاختبار الخاصة بك.
  • فكّرْ واخْتَبِرْ مثل المستخدم.
  • اكتَشِفْ ما هو غير متوقّع.
  • اخْتَبِرْ بكل الطُرُق الممكنة.
  • اعْرِضْ نتائجك على ال product owner.
  • التزم بالشفافية فيما يتعلق بالنتائج.
  • ساعِدْ المطورين لإصلاح المشاكل.
  • لا تُفَوّتْ أي قِيَم.

أتمتة الاختبارات خلال ال Sprint

باختصار تنفيذ أتمتة الاختبار في scrum sprint له إيجابيات وسلبيات. الجزء الرئيسي هو تحديد الجوانب التي سيتم أتمتتها. يجب أن تسير الأتمتة جنبًا إلى جنب مع التطوير. أيضًا يمكنك بناء مستويات مختلفة من الاختبارات المؤتمتة مع التركيز على اختبارات الوحدات الفردية (unit tests) واختبارات التكامل (integration tests) واختبارات واجهة الاستخدام (UI tests).

إعداد إطار أتمتة الاختبار (Test Automation Framework)

الهدف الرئيسي هو بناء إطار أتمتة للاختبار قوي وقابل لإعادة الاستخدام يدعم التكامل المستمر (continuous integration). يجب أن يكون إطار العمل مرنًا بدرجة كافية للتكيّف مع الوحدات المختلفة للتطبيق قيد الاختبار (Application Under Test – AUT) وتنفيذ مستويات مختلفة من الاختبارات المؤتمتة التي تغطّي وظائف البرنامج وواجهة برمجة التطبيقات (API) وواجهة المستخدم/تجربة المستخدم (UI/UX) و End to End regression والذي سيقلّل بشكل كبير من الجهد اليدوي ويزيد من مدى تغطية الاختبار للتطبيق (test coverage).

في الوقت الحاضر في السوق، لدينا أُطُر أتمتة لاتحتاج كثير من كتابة الكود مثل Tosca و Katlon وما إلى ذلك. تساعدنا هذه الأدوات في إعداد إطار عمل الاختبار وتشغيله في وقت أقل لأن هذا لا يتضمّن كتابة كود بشكل كثيف. هذه هي أُطُر أتمتة الاختبار القائمة على النموذج (model based) والتي تستخدم التسجيل (recording) أو واجهة المستخدم المدمجة لإعداد كائنات الصفحة (page objects) القابلة لإعادة الاستخدام بسهولة.

إذا التزمت جهة العمل بإطارات عمل مفتوحة المصدر، فلا تزال هناك أُطُر عمل مُعرّفة مسبقًا (pre-defined) متاحة مثل Selenide و Geb وما إلى ذلك لإعداد إطار عمل آلي للاختبار بسرعة. حتى لو تطلّبت هذه الأُطُر بعضًا من كتابة الكود، فإنها توفّر قدرًا كبيرًا من الوقت للقيام بالإعداد الأولي.

كيف تحقق الأتمتة خلال ال Sprint؟

  • تحديد الاختبارات التي سيتم أتمتتها.
  • وضْع استراتيجية.
  • التعاون وتحديد الأولويات.
  • خُذْ طُرُق مُختصرَة واستخدم واجهات برمجة التطبيقات (API).

يعمل مختبرو البرمجيات مع ال product owner  لتحديد سيناريوهات الأعمال (business scenarios) وتحويلها إلى سيناريو قابل للاختبار بمعايير القبول. يجب أن يحتوي كل سيناريو على خطوات الاختبار وما هو متوقع من كل خطوة. ناقِشْ كفريق scrum وقم بوضع إستراتيجية لكل مُتطلّب وحدّد طُرُق الأتمتة بطريقة أسهل مثل استخدام ال API.

تعاوَنْ مع ال product owner لتحديد الأولوية لكل حالة اختبار (test case) وبدء العمل بناءً على الأولوية. قم بتحليل كل سيناريوهات الاختبار وقم ببناء كائنات الصفحة (page objects) المطلوبة لحالة الاختبار بدلاً من إنشاء كائنات الصفحة لجميع العناصر المتوفّرة في الصفحة. تأكّد من أن المطوّرين يستخدمون معرّفات فريدة (unique) لكل عنصر من عناصر الصفحة مما يوفّر الوقت في إنشاء Xpath.

في الختام

يدعم إطار عمل scrum نموذج عمل تعاوني حيث يمكن لأي شخص مشاركة أفكاره وآرائه لتحسين العملية. ال Agile هو عبارة عن عقلية وثقافة. سيكون هناك العديد من التحديات أثناء تنفيذ نهج Agile مثل Scrum في البداية. Scrum هو إطار عمل يجلب فوائد الحصول على التغذية الراجعة (feedback) عن المُنتَج في مرحلة مبكرة من دورة ال sprint. من خلال الإجراءات المحدّدة وأيضًا اتّباع العمليات كما هو موضح أعلاه، يمكنك إطلاق الحد الأدنى من المُنتَج المحبوب بشكل أسرع في أيدي المستخدمين. يلعب الاختبار وأتمتة الاختبار دورًا رئيسيًا في تطوير كود عالي الجودة. يجب أن يبدأ اختبار البرمجيات مباشرة من البداية. لا يتعلّق الاختبار بإيجاد العيوب (defects)، بل يتعلق بِجَلْب الجودة في المخرجات (deliverables) من خلال إجراء عمل ومقاييس محدّدة (defined process and metrics).

بالتوفيق للجميع…

* المصدر: https://www.softwaretestingmagazine.com/knowledge/a-guide-for-software-testing-in-scrum

** الصورة من موقع: https://www.clearlyagile.com/agile-blog/the-importance-of-agile-software-testing-in-the-development-process

4 تعليقات

سليمان القحطاني

about 2 years ago

الله يعطيك العافية م. انور آلية عمل Scrum agile مشروحه بطريقة سهله واضحه، الله يجزاك خير ويكثر من امثالك شكراً لوقتك الثمين في طرح مثل هذي المواضيع المهمه

Reply

أنور بوسبول

about 2 years ago

الله يعافيك سليمان.

Reply

hejanb alodiani

about 2 years ago

رائع مختصرشامل واضح مفهوم وسهل . شكر الله سعيكم

Reply

أنور بوسبول

about 2 years ago

شكرًا لكلامك.

Reply

شاركني رأيك