اختبار التحمل في البرمجيات: المعنى والأمثلة

⚡ ملخص ذكي

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

  • 🕒 مدة طويلة: حمل واقعي يتحمله الجسم لساعات أو أيام عديدة، وليس دفعة قصيرة.
  • 💧 المرحلة الابتدائية Target: تسريبات الذاكرة وأي مورد يتم تخصيصه ولكن لا يتم تحريره أبدًا.
  • 📉 فحص التدهور: يجب أن تظل أوقات الاستجابة ثابتة طوال فترة التشغيل، وليس فقط أن تبدأ بشكل جيد.
  • 🗄️ التركيز على قواعد البيانات: تظهر هنا مجموعات الاتصالات، والمؤشرات المفتوحة، وجداول السجلات المتنامية.
  • واقعية التوقيت: قم بتضمين المهام المجدولة وفترات المعالجة الدفعية التي تحدث خلال فترة النقع.
  • 📊 قاعدة الحكم: يمر منحنى الموارد المسطح؛ أما المنحنى المتصاعد بثبات فيفشل حتى ضمن الحدود.

ما هو اختبار النقع؟

ما هو اختبار النقع؟

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

توضح الصورة أدناه دورة اختبار توضح في أي مرحلة يتم اختبار النقع (نوع اختبار الأداء) يتم تنفيذه على التطبيق.

اختبار النقع

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

لماذا نقع الاختبار؟

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

متى يتم إجراء اختبار النقع؟

ينبغي إجراء اختبار النقع في السيناريوهات التالية: -

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

استراتيجية اختبار النقع

اختبار النقع للجلسة الطويلة عبارة عن إستراتيجية يكون فيها النظام تحت الحمل لفترة أطول.

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

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

فيما يلي بعض عمليات التحقق الإضافية التي يجب على أي مستخدم/مختبر إجراؤها قبل البدء في اختبار Soak:

أ) مراقبة استهلاك موارد قاعدة البيانات.

ب) مراقبة استهلاك موارد الخادم (استخدام وحدة المعالجة المركزية سابقًا).

ج) يجب أن يتم تشغيل اختبار النقع بتزامن واقعي للمستخدم.

خصائص اختبار النقع

يجب أن تتمتع طريقة اختبار النقع القياسية بالخصائص التالية: -

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

أمثلة على اختبارات النقع

  • في حالة المجال المصرفي عندما يكون هناك كمية كبيرة من البيانات من التجار، سيقوم المختبر بوضع النظام تحت التحميل بشكل مستمر لمدة 70 ساعة إلى 150 ساعة للتحقق من كيفية تصرف التطبيق خلال فترة التحميل هذه.
  • لنفترض أن هناك 33,000 عملية تسجيل دخول، والتي يجب أن تمر عبر النظام، فهذا يمثل سبعة أيام ونصف من النشاط. في هذه الحالة، يمكن بدء اختبار نقع لمدة 60 إلى 70 ساعة بحلول مساء الجمعة حوالي الساعة 6 مساءً والذي يمكن إكماله بحلول الساعة XNUMX مساءً. Monday الصباح الساعة 6 صباحا. فقط من خلال مثل هذا الاختبار سيكون من الممكن ملاحظة أي تدهور في الأداء في ظل الظروف الخاضعة للرقابة.
  • وفي حالة ألعاب الفيديو، الهاتف تتضمن التطبيقات وما إلى ذلك ترك اللعبة أو التطبيق في حالة تشغيل لفترة زمنية طويلة، في أوضاع تشغيل مختلفة - مثل الخمول، والتوقف المؤقت عند شاشة العنوان وما إلى ذلك لمعرفة ما إذا كان التطبيق يمكنه التعامل مع الحمل المتوقع باستمرار.

المشكلات الشائعة التي تمت ملاحظتها أثناء اختبار النقع

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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