شرح فوائد الـ Shift-Left Testing: مفتاح خفض التكاليف وتعزيز التعاون

شرح فوائد الـ Shift-Left Testing: مفتاح خفض التكاليف وتعزيز التعاون

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

مع تطبيق الـ Shift-Left Testing، هناك تحوّل كبير في دمج أنشطة الاختبار في مرحلة مبكّرة من دورة حياة التطوير وتُمكّن هذه الاستراتيجية من اكتشاف العيوب بشكل أسرع. من خلال تحديد المشكلات مبكّرًا، يُقلّل الـ Shift-Left Testing بشكل ملحوظ من فرص إعادة العمل ويُحسّن جودة البرمجيات ويُحسّن تعاون الفريق ممّا يُؤدي إلى إنجاز المشاريع بكفاءة أكبر.

رسم تخطيطي للـ Shift-Left Testing 

يوضح الرسم التخطيطي كيف يقوم الـ Shift-Left Testing بالتالي:

  • ينقل أنشطة الاختبار إلى مرحلة مبكرة من دورة حياة التطوير.
  • يوزّع جهد الاختبار بالتساوي.
  • يخفّف عبء الاختبار في المراحل اللاحقة.

ما هو الـ Shift-Left Testing؟

يتضمّن الـ Shift-Left Testing دمْج أنشطة الاختبار في مرحلة مبكّرة من دورة حياة تطوير البرمجيات (SDLC). فبدلاً من انتظار اكتمال مرحلة التطوير، يُجرَى الاختبار في المراحل الأولى من دورة حياة التطوير. تُمكّن هذه المشاركة المبكّرة من الحصول على تغذية راجعة (feedback) من فريق الاختبار أسرع ممّا يسمح للمطوّرين بمعالجة المشكلات قبل نشر الكود (deployment).

الفوائد الأساسية للـ Shift-Left Testing

  • الكشف المبكّر عن العيوب (Defects): من خلال تحديد العيوب مبكّرًا، يُمكننا خفض تكلفة العيوب نظرًا لسرعة إصلاحها. في النهْج التقليدي، تُكتَشف العيوب متأخرًا وتتطلّب إعادة العمل (rework) ممّا يؤدي إلى تأخير إصدار المُنتَج (product). يكشف الـ Shift-Left Testing العيوب مبكّرًا وبالتالي يُساعد على منع تحوّل هذه العيوب لاحقًا إلى عيوب ذات أولويّة عالية أو عيوب خطيرة.
  • انخفاض التكاليف والوقت: يُعَد إصلاح الخلل في مرحلة المتطلّبات (requirements) أو التصميم (design) أقل تكلفةً بكثير من إصلاحه بعد التطوير أو في الإنتاج (production). من خلال تحديد المشكلات مبكّرًا، يُقلّل الـ Shift-Left Testing من التكلفة الإجمالية للتطوير ويُسرّع دورة الإصدار (release cycle).
  • تحسين التعاون بين الفِرَق: يُشجّع الـ Shift-Left Testing على التعاون بين فِرَق التطوير والاختبار منذ انطلاق المشروع. يشارك المختبرون في مرحلتي التصميم والبرمجة مُقدّمين رؤى أوليّة ويضمنون تسليمًا فعّالاً للمُنتَج (product).
  • توسيع تغطية الاختبار (Test Coverage): تُمكّن المشاركة المبكّرة للمختبرين من إنشاء حالات وسيناريوهات اختبار شاملة منذ البداية ممّا يضمن تغطية أوسع للتطبيق. كما تُمكّنهم من رصد الحالات والسيناريوهات الجانبيّة التي ربّما تم إغفالها لو لم يشارك فريق الاختبار منذ البداية.
  • دَعْم ممارسات Agile و DevOps: يدعم الـ Shift-Left Testing منهجيّة Agile و DevOps، حيث يتطلّب التكامل والتسليم المستمرّان (continuous integration and delivery) دورات تغذية راجعة سريعة (rapid feedback loops). تتطلّب الاختبارات المؤتمتة (automated tests) تغييرات متكرّرة في الكود والتي يُمكِن إدارتها الآن بسهولة بواسطة الـ Shift-Left Testing. يُمكِن تقييم التغييرات الحديثة فورًا وبشكل عام يُساعد هذا على تقليل خطر دمْج الكود الخاطئ في الإنتاج (production).

كيفية تطبيق الـ Shift-Left Testing

  • دَمْج الاختبار من مرحلة التصميم (Design): إن إشراك المختبرين خلال مرحلة التصميم يُساعد في دراسة المتطلّبات وتحديد المشاكل المحتملة في مرحلة مبكّرة مما يضمن أن تتماشى حالات الاختبار مع وظائف التطبيق. يُساعد هذا العمل الجماعي على تقليل الغموض وتعزيز الفهم المتبادَل للمُنتَج (product).
  • التكامل المستمر والتسليم المستمر (CI/CD): يزدهر الـ Shift-Left Testing في البيئات التي تُطبّق الـ CI/CD. يُفعّل كل code commit اختبارات آلية مبنيّة باستخدام نهْج Shift-Left ممّا يضمن عمل الكود قبل دمجه في فرع الكود الرئيسي (main branch). يساعد هذا الاختبار المبكّر والمتكرّر الفِرَق على اكتشاف المشكلات وحلّها بشكل أسرع مما يؤدي إلى إصدارات (releases) أكثر استقرارًا.
  • استخدام اختبارات الأداء المبكّرة (Early Performance Testing): لا ينبغي حصْر اختبارات الأداء في نهاية دورة التطوير. فمن خلال دمْج اختبارات الأداء مبكّرًا، يمكن للفِرَق تحديد الاختناقات (bottlenecks) ومشاكل قابليّة التوسّع (scalability) قبل أن يصبح النظام معقدًا للغاية. يساعد هذا النهْج القائم على المبادرة على تجنّب عمليّات إعادة التصميم المُكلِفَة ويضمَن قدرة المُنتَج (product) على تحمّل الأحمال المتوقعة (expected loads) منذ البداية.

خاتمة

يُعدّ الـ Shift-Left Testing نَهْجًا تحويليًا اليوم لتحسين جودة البرمجيات وخفْض تكاليف العيوب (defects). من خلال دمْج أنشطة الاختبار في مرحلة مبكّرة من دورة حياة تطوير البرمجيات (SDLC)، يُمكِن للفرق اكتشاف العيوب وإصلاحها مبكّرًا والتعاون بفعاليّة أكبر وتقديم برمجيات أكثر موثوقيّة للمستخدمين. تُناسِب هذه الممارسة منهجيّات التطوير الحديثة مثل Agile و DevOps حيث يُعَدّ الاختبار المستمر والتغذية الراجعة السريعة أمرًا بالغ الأهميّة.

* المصدر: https://www.softwaretestingmagazine.com/knowledge/unpacking-shift-left-testing-benefits-key-to-reducing-costs-and-boosting-collaboration

** الصورة من موقع: https://www.linkedin.com/pulse/ai-shift-left-qa-catching-bugs-earlier-releasing-quality-u7udf

4 تعليقات

محمد أمين بن عبودان الجابري

about 10 months ago

شكراً لك مهندس أنور بارك الله في جهودك، نحن فريق صغير نعمل في تطوير المواقع والحلول البرمجية في مشاريعنا لا نطبق اي طرق اختيار حديثة وإنما اختبار بطريقة تقليدية اختبار يدوي لانه مكلف بالنسبة لفريق صغير بعكس لو شركة هل هناك طريقة أو آلية تنصح نحن بها في عملية اختبار مشاريعنا بأقل وقت وجهد

Reply

أنور بوسبول

about 10 months ago

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

Reply

محمد أمين بن عبودان الجابري

about 10 months ago

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

Reply

أنور بوسبول

about 9 months ago

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

Reply

شاركني رأيك