اختبار الاستقرار في اختبار البرمجيات

⚡ ملخص ذكي

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

  • ؟؟؟؟ ️ الغرض الأساسي: تأكد من أن النظام يظل موثوقًا به في ظل أحمال متغيرة وتشغيل ممتد.
  • ⚠️ المخاطر التي تم تجنبها: تفشل الأنظمة غير المختبرة في الإنتاج في ظل ظروف لم يتدرب عليها أحد.
  • 📊 المرحلة الابتدائية Signals: عدد وحدات المعالجة المركزية والذاكرة والقرص وعدد الخيوط tracked على مدار المدة الكاملة.
  • 🔄 غير وظيفية: يقيس هذا الأسلوب السلوك تحت الضغط بدلاً من صحة السمات.
  • 🧪 تصميم الاختبار: تستهدف الحالات الحمل المستمر على وحدة المعالجة المركزية، وضغط الذاكرة، والمعاملات المتكررة.
  • 📈 التقرير: تُعد الرسوم البيانية للاتجاهات أكثر أهمية من القراءات الفردية، لأن الانحراف هو العيب.

اختبار الاستقرار في اختبار البرمجيات

ما هو اختبار الاستقرار؟

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

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

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

اختبار الاستقرار
اختبار الاستقرار

ويشار إلى اختبار الاستقرار أيضًا باسم الحمل أو اختبار التحمل.

المخاطر إذا لم يخضع النظام قيد الاختبار لاختبار الاستقرار

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

الخطأ المحتمل يمكن مواجهته،

  • يبطئ النظام
  • يواجه النظام مشاكل وظيفية
  • يُظهر النظام سلوكًا سلكيًا
  • يتعطل النظام تماما

في هندسة البرمجيات، اختبار الاستقرار يتضمن عادةً ممارسة النظام مع مستخدمين كثيفين (افتراضيًا) وقياس معلمات الأداء للتحقق مما إذا كان النظام يمكنه دعم الحمل المتوقع.

لماذا اختبار الاستقرار

يساعد هذا النوع من الاختبارات المستخدمين على فهم الطرق التي سيعمل بها النظام في مواقف الحياة الواقعية.

وبالتالي، يسمح لك اختبار الاستقرار بالتحقق،

  • توفير الثقة في استقرار النظام الخاص بك تحت الاختبار.
  • تأكد من أن نظامك يمكنه التعامل مع البرامج الكبيرة.
  • مراقبة فعالية النظام الخاص بك.
  • اختبار استقرار النظام تحت الضغط.

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

من الأمثلة الشائعة جدًا على تقنية اختبار الاستقرار

On السطر Sقفزping Portals: سيتحقق اختبار الاستقرار من كيفية تصرف موقع الويب عندما -

  • كمية عالية من البيانات المدخلة في وقت الذروة
  • عدد الزيارات في وقت محدد معين
  • مشكلة تحميل الصفحة في نفس الوقت
  • سلوك النظام
  • استجابة النظام وغيرها الكثير تأتي تحت اختبار الاستقرار

مثال آخر

A وحدة المعالجة المركزية‏: الاختبار هو شكل شائع لاختبار الاستقرار تحت اختبار أداء تقنية. يتحقق هذا الاختبار من استقرار المعالج ويراقب أداءه أيضًا مع زيادة عبء العمل على المعالج.

كيفية إجراء اختبار الاستقرار

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

حالة اختبار لاختبار الاستقرار لأداء وحدة المعالجة المركزية

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

تقارير الاختبار لاختبار الاستقرار

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

أمثلة على الإحصائيات التي تم جمعها تحت الاختبار هي:

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

أساسيات اختبار الاستقرار

اختبار الاستقرار يأتي ضمن اختبار الأداء - وهي تقنية يتم إجراؤها للتحقق من بعض سمات جودة البرامج مثل الاستقرار والموثوقية والتوافر.

يُستخدم هذا الاختبار لتحديد مدى سرعة أداء النظام أو النظام الفرعي تحت عبء عمل معين.

اختبار الأداء له أنواع عديدة واختبار الاستقرار هو أحد هذه الأنواع.

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

أدوات اختبار الاستقرار

بعض أدوات اختبار الأداء هي -

  • تحميل الويب
  • بي.
  • Apache JMeter
  • Neoحمل
  • CloudTest
  • عاصفة تحميل
  • تحميلUI
  • وابت
  • تحميلتأثير
  • لودستر
  • هتبيرف
  • أوبنستا

كيف يتناسب هذا الاختبار مع عائلة اختبارات الأداء

اختبار الأداء مصطلح شامل. تختلف الأنواع المذكورة أدناه فقط في شكل الحمل المطبق ومدة استمراره، وهذا هو سبب الخلط بينها في كثير من الأحيان.

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

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

المؤشرات الرئيسية التي يجب جمعها أثناء الاختبار

لا تُعتبر عملية اختبار الأداء جيدة إلا بقدر ما تسجله أثناء تنفيذها. سجّل هذه النقاط الست على كلٍ من الخادم والعميل، ثم قارنها بالوضع الأساسي بدلاً من الاعتماد على الحدس.

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

اقرأ المتوسط ​​والنسبة المئوية معًا. يُشير متوسط ​​800 مللي ثانية مع نسبة مئوية 95 تبلغ 900 مللي ثانية إلى نظام مستقر. أما المتوسط ​​نفسه مع نسبة مئوية 95 تبلغ 9 ثوانٍ فيعني أن مستخدمًا واحدًا من بين كل عشرين مستخدمًا يُعاني من مشاكل، وأن المتوسط ​​يُخفي هذه المشاكل.

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

الأسئلة الشائعة

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

يستغرق ظهور المشاكل التي تتراكم ببطء عادةً من 8 إلى 72 ساعة. أما إذا كان الوقت أقل من ساعة، فنادراً ما يظهر تسرب في الذاكرة أو استنزاف تدريجي لمجموعة الاتصالات.

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

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

نعم. تعمل النماذج المدربة على الحوادث السابقة وتغييرات التعليمات البرمجية على تسليط الضوء على الوحدات الأكثر عرضة لتسريب الموارد، مما يسمح للفرق باستهداف الاختبارات طويلة الأمد حيث ستؤتي ثمارها.

تلخيص هذه التدوينة بـ: