يُعد اختبار الواجهة الخلفية لتطبيق الويب جزءًا مهمًا من عملية التطوير وأي مراقبة مستمرة. يمكنك أيضًا الاطّلاع على اختبار الواجهة الأمامية.
التطوير المستند إلى الاختبار
في التطوير المستند إلى الاختبار (TDD)، تتم ترجمة متطلبات التطبيق إلى حالات اختبار قبل تنفيذ التطبيق بالكامل. أثناء التطوير، تتم كتابة هذه الاختبارات أولاً ويتم تنفيذها على التوالي أثناء إنشاء التطبيق. وتضمن المتطلبات الواضحة (مثل حالات الاختبار) أن يكون الرمز النهائي منظّمًا بشكل جيد وتستوفي جميع المتطلبات وصحته، وهو أمر مهم بشكل خاص خلال المراحل الأولى من عملية التطوير.
الدمج المستمر والاختبار الآلي
يُجري اختبار التكامل المستمر (CI) اختبارات تلقائيًا مقابل أي تغييرات في الرمز، مثلاً أثناء مراجعة الرمز أو عند دمجه في مستودع الرمز الخاص بك. تعمل الاختبارات الآلية على تحسين الجودة والثقة بشكل عام في الرمز الذي يتم إرساله عن طريق تقليل مخاطر الأعطال أو التراجع أثناء التطوير. ننصحك بإعداد نظام اختبار آلي لبيئتك لضمان سلامة تطبيقك. استخدام نظام متوافق مع البنية والنظام الأساسي واللغة، ويتم دمجه بسلاسة في مسار التطوير، على سبيل المثال، استخدِم إجراءات GitHub لسير عمل CI أو مسار CI مخصّص مدمج في السحابة، ومخصّصًا لإعداداتك.
يمكنك الاطّلاع على المزيد من المعلومات حول المبادئ التي تستند إليها الاختبارات الآلية وكيفية تحسين اختباراتك. تعرَّف على المزيد من المعلومات عن اختبار التكامل المستمر وأفضل الممارسات للتنفيذ وإعداده وقياس مستوى النجاح.
كخطوة تالية، ننصحك باستخدام مسار التسليم المتواصل المبرمَج (CD) لنشر التغييرات والتحديثات تلقائيًا في تطبيقك.
اختبار الوحدات
يشير اختبار الوحدات إلى اختبار أجزاء صغيرة مستقلة من التعليمات البرمجية بشكل منفصل. استخدِم إطار عمل اختبار الوحدة الموصى به والشائع للغة الخلفية أو إطار العمل. على سبيل المثال، بالنسبة إلى تطبيق متجانس يستنِد إلى JavaScript، استخدِم JUnit، أو مع التطبيقات التي تعتمد على JavaScript بدون خادم (بما في ذلك Dart أو TypeScript)، واستخدِم إطار عمل تم إنشاؤه لاختبار JavaScript، مثل Jest.
تحتوي معظم أطر العمل الخلفية الحديثة على موارد مخصصة للاختبار. ضع في اعتبارك دمج هذه الميزات في مسار CI الخاص بك لإجراء الاختبار تلقائيًا. تأكّد من أنّ اختبارات الوحدات توفر تغطية جيدة للرموز لتطبيقك. توفر معظم أطر الاختبار ميزات لتحليل تغطية الاختبار وإعداد تقارير عنها والسماح بالدمج في مسار الإنشاء لديك.
اختبار الدمج
يشير اختبار التكامل إلى اختبار وحدات أكبر أو أجزاء أكبر من تطبيقك معًا. مقارنةً باختبار الوحدة (الذي يركز على الأجزاء الفردية من التعليمات البرمجية)، يركز اختبار التكامل على تكامل الأجزاء الفردية من البنية الأساسية. قد يشمل ذلك أيضًا التدفقات الشاملة التي تغطي خطوات ووحدات متعددة عبر التطبيق.
قد تغطي اختبارات الدمج وحدات مختلفة من تطبيقك قد تتطلب التفاعل مع خدمات خارجية، مثل تخزين البيانات أو أنظمة الملفات أو عمليات الدفع. يمكنك تنظيم تطبيقك لدعم التجريدات لهذه الخدمات من خلال إضافة الاعتمادية أو الميزات المشابهة التي يوفّرها إطار العمل في الخلفية.
الاختبار السلوكي والوظيفي
ومع الاقتراب من الخلفية (أو الوحدات الفردية أو المكونات) كمربع مبهم، يركز الاختبار الوظيفي على مدخلات النظام ومخرجاته. قد يكون الاختبار السلوكي أكثر شيوعًا مع الواجهة الأمامية، إلا أنّه يؤدي أيضًا دورًا حيويًا في تأكيد السلامة الشاملة لنظام الخلفية. تؤكد هذه الأنواع من الاختبارات أن النظام يتفاعل ويتصرف كما هو متوقع للمدخلات المختلفة.
اختبار الانحدار
يشير اختبار الانحدار إلى الاختبارات التي تؤكد أنّ التطبيق لا يزال يعمل كما هو متوقع. تتم إعادة إجراء الاختبارات التي تم إكمالها سابقًا بنجاح لأي تغييرات جديدة للتأكد من أن التغييرات لم تعيد تقديم أي مشكلات سابقة. وأثناء إصلاح الأخطاء في التطبيق، يجب إضافة اختبارات الوحدة أو الدمج لضمان عدم تكرار الخطأ. يجب دمج اختبارات الانحدار في الاختبار المعتاد ووضع مسار التعلّم.
اختبار الدخان
اختبار الدخان، يُسمى أيضًا اختبار التحقق من الإصدار، ويركز على التحقق من أهم الوظائف في التطبيق الخلفي يتناول اختبار الدخان حالات الاستخدام المُهمّة في تطبيقك، وذلك لأغراض تتجاوز اختبار التكامل، الذي يفسر بعض الميزات والتبعيات الخارجية في التطبيقات. يمكن استخدام اختبار الدخان كطبقة تحقّق إضافية قبل ترقية التطبيق إلى بيئة مرحلية لضمان اتّباع سلوك دقيق. قد تتكون اختبارات الدخان من اختبارات وحدات آلية أو اختبارات وظيفية يدوية يجريها فريق ضمان الجودة.
بيئات الإنتاج والتقسيم المرحلي
بيئة الاختبار هي نسخة من بيئة الإنتاج موضوعة في وضع الحماية لتسهيل الاختبار. يقلل النشر المخصص من خطر المشكلات ببيئة الإنتاج ويسهل إجراء ضمان الجودة. تتيح لك البيئة المرحلية اختبار نظام قريب من بيئة الإنتاج المباشر.
قد لا يكون الحصول على نسخة من بيئة الإنتاج ممكنًا بسبب عوامل مثل التكلفة أو تعقيد بنية الخلفية. ضع في اعتبارك أجزاء الخلفية الأكثر أهمية وقم بتحسينها لبيئة مرحلية.
يقدم الاختبار مقابل البيانات المستخدمة في الإنتاج فائدة كبيرة لاختبار سلوك التطبيق مع البيانات الواقعية. تأكد من مراعاة آثار الخصوصية واحتياجات تخزين البيانات لمثل هذه البيئة المرحلية، وتصميم البيانات التي يستخدمها نظام الخلفية بعناية. يجب التحكم في الوصول إلى هذه البيئة بإحكام، خاصة إذا تم استخدام بيانات الإنتاج.
ضع في اعتبارك حجم نظامك وما إذا كانت البيئة المستمرة مناسبة لتطبيقك. إنّ بيئات التقسيم المرحلي التي يمكن تفعيلها تلقائيًا من خلال نظام تسليم مستمر توفّر أيضًا فرصًا إضافية لاختبار الإصدارات اليومية أو الأسبوعية وفحصها بشكل إضافي قبل إصدارها.
هناك نهج آخر وهو الاعتماد بشكل أكبر على اختبارات الدمج المستمر والأنظمة الآلية بدلاً من الاعتماد على بيئة مرحلية شاملة. ضع في اعتبارك سير عمل فريقك وسلامة النظام وتغطية التعليمات البرمجية والمتطلبات الفنية.