الوظائف الرئيسة الثلاثة في فريق تطوير البرمجيات هي التطوير والاختبار والتشغيل، بحيث يُعاد ابتكار المهام المطلوبة بين هذه الوظائف باستمرار.
لتسريع عملية التطوير، دُمج التطوير مع التشغيل، والذي يُشار إليه الآن باسم التطوير والتشغيل DevOps؛ ولكن لسوء الحظ، أُهمل أمر مهم يقع بين كل من التطوير والتشغيل، وهو إجراء الاختبار الدائم.
لضمان التنقل السريع وتحسين الكفاءة العامة للعمل والحفاظ على الحالة المستمرة للاختبار في دورة التطوير والتشغيل DevOps، طورت منهجية جديدة وهي: التطوير والاختبار والتشغيل DevTestOps وهي ما سنركز عليه في مقالنا هذا.
ما المقصود بالتطوير والاختبار والتشغيل DevTestOps؟
إن مضمون التطوير والاختبار والتشغيل DevTestOps هو مزيج من التطوير والتشغيل DevOps والاختبار المستمر. يُعَد كل من الاختبار المبكر والاختبار المنتظم والاختبار عبر خطوط العمل Pipelines طرائق مستخدمة خلال عملية اختبار البرنامج. ووفقًا لمبدأ التطوير والاختبار والتشغيل DevTestOps، يجب تضمين خطوط العمل التكامل المستمر والنشر المستمر في بنية الاختبار المستمر.
يقدم هذا الإجراء نتائج اختبار مستمرة للمطورين خلال مراحل تطوير المنتج، ويجنب الخوض بمجازفات في العمل واكتشاف العيوب بوقت متأخر؛ وبالتالي يساعد استخدام مبدأ التطوير والاختبار والتشغيل DevTestOps عبر مراحل تطوير المنتج في التخفيف من مخاطر الأعمال وتقليل فرصة ظهور الأخطاء في مراحل لاحقة.
التطوير والاختبار والتشغيل DevTestOps كرؤية جديدة لمنهجية أجايل Agile
أدت تقنية التطوير والاختبار والتشغيل DevTestOps رسميًا إلى حقبة جديدة من التطوير، مما أدى إلى تغيير طريقة إجراء الاختبار، والذي كان لا يُجرى إلا بعد اكتمال التشفير بصورة نهائية.
التنسيق بين التطوير والاختبار والتشغيل DevTestOps
أحدَث الاختبار المستمر ثورةً في السوق لأنه يساعد على تقديم تقييم مبكر للمنتج ويسمح بالكشف المبكر عن المشاكل، مما يساعد في النهاية على تقليل التكاليف المرتبطة بإصلاح المشكلات بعد وقوعها. وفي دورة حياة تطوير البرمجيات SDLC النموذجية، يُجرى الاختبار في نهاية دورة التطوير عند اكتمال المنتج بأكمله، فيحدث بسبب ذلك تأخير زمني نتيجة اكتشاف الأخطاء وإصلاحها.
وللتأكيد، يُعَد الكشف عن ثغرات أمنية جديدة أصعب بكثير من الثغرات العادية ويستغرق وقتًا أطول وتكلفة أكثر، خصوصًا إذا أضفنا للحساب التشفير الجديد الذي أُدخل ضمن العمل مسبقًا.
ومع ذلك، بدأت العديد من الشركات مؤخرًا فيما يعرف بالتحول لليسار shift-left (وهو أسلوب تتبعه الشركات بإجراء بعض العمليات في مراحل مبكرة والتي كانت تُجرى في مراحل متأخرة تقليديًا)، واختبرت تطوير البرمجيات في وقت مبكر جدًا من العملية.
يؤكد خبراء الاختبار وضمان الجودة أنه يجب تضمين الاختبار في كل نقاش ومناظرة، بدءًا من تطوير فهم مشترك للمزايا الجديدة، مرورًا بتخطيط خط عمل التسليم pipeline delivery، وصولًا إلى مراقبة استخدام المنتج.
يُعد إجراء الاختبار في أقرب وقت ممكن في الفرق المرنة Agile أمرًا بالغ الأهمية للانتقال إلى مسار العمل السريع، ويتطلب إنجاز ذلك نهج التطوير والاختبار والتشغيل DevTestOps.
الانتقال من نهج تطوير واختبار وتشغيل متلكئ إلى نهج سريع - سرع مرونتك Agility في العمل
تقدم Spotify مثالًا واقعيًا يعرض ما يشبه تنفيذ نهج التطوير والاختبار والتشغيل DevTestOps الفعال كمحاولة لتوسيع نطاق عمل فريق أجايل Agile. ومع ما يقدر بنحو 286 مليار مستخدم، فإن Spotify هي أكبر وأشهر خدمة بث صوتي في العالم؛ وأحد العوامل المساهمة في نجاح Spotify هو نهجها الفريد في زيادة سرعة الفريق، وبالتحديد نهج التطوير والاختبار والتشغيل DevTestOps.
يؤكد نموذج Spotify الحالي والذي يقدم الخدمات للناس فعلًا على أهمية وجود شبكة داخلية واتصالات ضمن العمل، والأهم من ذلك، أن مسؤولية الجودة تتحملها جميع الفرق بمن فيهم فرق التطوير والاختبار والتشغيل. ومع وجود الاختبار في جميع مراحل دورة التطوير والاختبار والتشغيل DevTestOps كعملية لا بد منها في جميع الأقسام، فإن أعضاء فريق Spotify مسؤولون بتساوٍ عن كفاءة المنتج النهائي.
في نموذج Spotify، يضيف المطورون ميزات جديدة للمنتج باستمرار، مثل إضافة قوائم تشغيل جديدة يُعتقد أن العملاء سيحبونها، أو إدخال أسلوب جديد للتنقل بين الأغاني مثلًا. يساعد دمج أدوات التكامل المستمر خلال سير العمل على اختبار الإضافات الجديدة بسهولة ويقلل من الإضافات الخاطئة. ونتيجةً لذلك، إذا فشل الاختبار، عندها يمكن للمطورين تغيير العناصر الموجودة في طور الإنشاء مباشرةً قبل أن ينتقلوا إلى طور النشر. يعزز هذا الإجراء ثقة المطورين من خلال تقليل احتمالات إعادة إجراء الاختبار بأكمله، حيث تُصلح العيوب بمرحلة أبكر.
علاوةً على ذلك، يُجري خبراء ضمان الجودة والمختبرون اختبارات، ويصممون سيناريوهات اختبار لاكتشاف أي خطأ يجب معالجته، مثل زر غير قابل للنقر على موقع الويب، أو إذا توقفت الموسيقى عن العمل فجأة. ومع إصلاح أخطاء التشفير الرئيسة في المرحلة السابقة، يمكن الآن لخبراء ضمان الجودة التركيز على أجزاء أخرى من التشفير والمعزولة بطبعها وذات تعقيد داخلي خاص بها.
بالإضافة إلى ذلك، من خلال الاختبار المستمر، يمكن لعمليات ضمان الجودة مراقبة حجم أكبر من البيانات والتعامل معها، وذلك بفضل استخراج البيانات آليًا من السجلات، حيث تُحلل ملفات سجل إنشاء التكامل المستمر تلقائيًا لتقديم ملاحظات سريعة ودقيقة، بما فيها طلبات التطبيق ورسائل الخطأ.
فكر في الاختبار المستمر كعادة جيدة في روتينك اليومي. فكما أن شرب كمية كافية من الماء يوميًا تجعل صحتك أفضل، فإن الاختبار المستمر يجعل سير عملك أكثر مرونة، وذلك لأنه يعمل على اكتشاف الأخطاء روتينيًا، وبالتالي يؤدي إلى تطوير أسرع للمنتج وتزويد المطورين والمشغلين بالبيانات المحدثة.
تضمن إضافة الاختبار المستمر في دورة التطوير والتشغيل DevOps (أو التطوير والاختبار والتشغيل DevTestOps) أن البنية التحتية والمنصات وأطر العمل المناسبة للاختبار متوفرة ومجهزة قبل بدء الاختبار.
فوائد الاختبار المستمر
سنذكر فيما يلي بعض فوائد الاختبار المستمر، والتي تتمثل في:
- اكتشاف العيوب بوقت مبكر، وبالتالي يمكن تصحيحها وتسليمها بسهولة.
- تقصير دورة الانحدار تلقائيًا من أسابيع إلى ساعات (والمقصود بالانحدار هو التأكد من أن التغيير الذي أُضيف بعد إجراء الاختبار قد تمكن فعلًا من إحداث الفارق، فإن لم يفعل فتسمى الحالة انحدارًا).
- يعمل المطورون والمختبرون معًا بأسلوب أكثر انتظامًا لتحسين جودة المنتج.
- يُجنب البناء والنشر التلقائيان الاعتماد على البشر وأخطائهم.
ومع ذلك، فإن تبني مبدأ التطوير والاختبار والتشغيل DevTestOps على أكمل وجه ليس بالمهمة السهلة. يحتاج المطورون إلى التكيف مع طريقة عمل جديدة، والتي يكون فيها اختبار الشيفرة البرمجية من مسؤوليتهم أيضًا، كما يكون خبراء ضمان الجودة والمختبرون أكثر انخراطًا في العمل لتقديم خبرتهم، مما يساعد الفرق على إنشاء الاختبارات المناسبة ويجعل العملية أكثر كفاءة. يجب أن يتأكد فريق العمليات الآن من عدم وجود حالات عدم تطابق بين عملية التطوير وبيئات باقي مراحل العمل. لبدء التطوير والاختبار والتشغيل DevTestOps، كما يجب أن يكون كل أفراد الفريق في حالة من التفاهم وأن يستوعبوا أن الاختبار يجري خلال سير العمل بأكمله وليس فقط في مراحل معينة، وأن يدركوا لماذا عليهم الاستثمار أصلًا في تنسيق التطوير والتشغيل DevOps، وذلك عبر أدوات مثل Katalon.
مع ذلك، من المهم الأخذ بالحسبان أنه على الرغم من أنه قد يوجد حل رائع لشركة ما، إلا أن هذا لا يعني أن يكون مناسبًا لمؤسستك.
ترجمة -وبتصرف- للمقال How to Make DevTestOps Orchestration for Agile Teams Work.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.