العميل منصة للتعليم عبر الإنترنت تضم دروساً تفاعلية وواجبات منزلية وحسابات شخصية للطلاب وأولياء الأمور ودفعاً إلكترونياً. يتميز النشاط بموسمية حادة: يستقطب سبتمبر أكبر عدد من الطلاب الجدد، وتعطل المنصة خلال الأسابيع الأولى من العام الدراسي يعني خسارة العملاء إلى الأبد. لم يكن لدى العميل فريق داخلي لضمان الجودة؛ كان المطورون يختبرون بين المهام، ويستغرق اختبار الانحدار قبل الإصدار ثلاثة أيام ومع ذلك يفوّت سيناريوهات حرجة مثل الدفع وحجز الدرس ودخول الصف. تواصل العميل معنا بعد حادثة أخرى تسبب فيها خلل في الدفع وخسرت المدرسة جزءاً من الطلبات التي جمعتها خلال الصيف.
إنشاء عملية لضمان الجودة من الصفر:
استراتيجية اختبار ترتب الأولويات بحسب مخاطر العمل، وأتمتة السيناريوهات الأساسية، ودمج الفحوصات في CI، واختبار الأحمال قبل ذروة سبتمبر. وكان القيد هو مواصلة العمل من دون إيقاف التطوير؛ فالإصدارات تستمر أسبوعياً، ولا يمكن تأجيل سبتمبر.
لم نبدأ بالاختبارات الآلية، بل بتحليل المخاطر: ما السيناريوهات الأكثر تعرضاً للأعطال، وأين تكون كلفة الخلل أعلى؟ ثم نفذنا الأتمتة وفق هذه القائمة بدقة.
- دققنا الجودة: راجعنا الأخطاء خلال الأشهر الستة الماضية، وأجرينا مقابلات مع الفرق، ورسمنا خريطة للسيناريوهات الأكثر إيلاماً: الدفع، وحجز الدرس، ودخول الصف، وإشعارات أولياء الأمور.
- كتبنا استراتيجية للاختبار تشمل مستوياته ومجالات المسؤولية ومعايير اكتمال الميزات وقواعد الإبلاغ عن الأخطاء، لتكون موحدة بين فرق التطوير الثلاثة.
- أتمتنا المسار الحرج: سيناريوهات e2e باستخدام Playwright لمنصة الويب، واختبارات API للخلفية، ومجموعة smoke قبل كل إصدار.
- أدرجنا بوابات QA في CI: لا يمكن إصدار النسخة دون نجاح مجموعة smoke، ويُشغّل اختبار الانحدار الكامل كل ليلة، وتظهر النتائج لجميع الفرق في GitLab.
- أجرينا اختبار أحمال باستخدام k6: حاكينا حركة ذروة سبتمبر، وحددنا نقاط الاختناق وعالجناها مع فريق الخلفية قبل بداية الموسم.
- نقلنا العملية إلى فريق العميل: وثقناها، ووضعنا إجراءاتها، ودربنا مهندس QA على الاختبارات الآلية وخط التسليم.
كان القرار الأهم ترتيب الأولويات وفق مخاطر العمل، لا السعي وراء «جمال التغطية». لم نطارد الأتمتة بنسبة 100% عن قصد: فقد وفرت تغطية 75% من السيناريوهات الحرجة معظم الأثر لأنها تحمي المسارات التي تكسب المنصة العملاء أو تخسرهم. وتبقى السيناريوهات الأخرى مغطاة باختبارات استكشافية يدوية قبل الإصدارات المهمة.
كان الأثر الاقتصادي الأهم تقديم اكتشاف العيوب إلى مرحلة أبكر: فالخلل الذي يكشفه اختبار آلي في CI أقل كلفة بعشرات المرات من خلل يلاحظه أحد أولياء الأمور في بيئة الإنتاج. دخلت المنصة الموسم بهامش أمان، وأصبحت الفرق قادرة على إصدار التغييرات كثيراً من دون الخوف من «أثر يوم الجمعة». وهناك فائدة إضافية تتمثل في ثقة قطاع الأعمال: يستطيع فريق المبيعات الآن أن يعد المدارس الشريكة بصدق بمنصة مستقرة خلال ذروة التسجيل.
| المؤشر | النتيجة |
|---|---|
| أخطاء حرجة في الإنتاج | 5–7 شهرياً → 1–2 كل ربع سنة |
| اختبار الانحدار قبل الإصدار | 3 أيام يدوياً → 4 ساعات بالاختبارات الآلية |
| ذروة الأحمال في سبتمبر | حوادث كل عام → 0 حوادث، من دون تراجع في الأداء |
| وقت اكتشاف العيب | غالباً في الإنتاج → تكشفه الاختبارات الآلية قبل الإصدار |
نُقلت المؤشرات من المواد الأصلية للحالة. وتُذكر الفترة حيثما وردت في المصدر.
- أخطاء حرجة كل ربع سنة (كانت 5–7 شهرياً)
- 1–2
- اختبار الانحدار بالاختبارات الآلية (كان 3 أيام يدوياً)
- 4 ساعة
- من السيناريوهات الأساسية تغطيها الاختبارات الآلية
- 75%
- حوادث خلال ذروة سبتمبر
- 0
مقياس توضيحي: حُوّلت 3 أيام إلى 72 ساعة. ولأطوال الأعمدة، يُحوّل نطاق الأخطاء الشهري إلى ربع سنة بضربه في ثلاثة؛ وتُقارن الحدود العليا.
- 01إيداع التغيير
- 02مجموعة اختبارات smokeلا نجاح، لا إصدار
- 03الإصدارأسبوعياً
- 04كل ليلةاختبار الانحدار الكامل
ما نوصي به للمنصة كخطوة تالية:
- اختبار انحدار بصري للتحقق آلياً من تنسيق الدروس والرسائل والحسابات الشخصية.
- مصنع لبيانات الاختبار ينشئ طلاباً ومجموعات ومدفوعات واقعية لكل تشغيل.
- QA في بيئة الإنتاج باستخدام feature flags وإصدارات canary لتفعيل الميزات الجديدة تدريجياً.
لم نعد نخشى الإصدارات. كان كل يوم جمعة قد يتحول إلى تحقيق في الشكاوى، أما الآن فأصبح النشر في الإنتاج إجراءً روتينياً يستغرق خمس عشرة دقيقة.
— المدير التقني لمدرسة عبر الإنترنت