ما هو اختبار الموضوع في اختبار البرمجيات؟

⚡ ملخص ذكي

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

  • 🧵 الفكرة الأساسية: الخيط هو معاملة تجارية واحدة من البداية إلى النهاية، ويتبع الاختبار هذا المسار عبر الوحدات المتكاملة.
  • ⏱️ عند تشغيله: في المراحل المبكرة من اختبار التكامل، كاستراتيجية تكامل تدريجي للنظام.
  • 🔀 نكهتان: اختبار الخيوط المفردة يُجري عملية واحدة في كل مرة، بينما اختبار الخيوط المتعددة يُجري عدة عمليات في وقت واحد.
  • 🐞 ما يلتقطه: حالات التزامن، والجمود، وتضارب الموارد المشتركة، وتلف البيانات التي يغفل عنها اختبار المسار الواحد.
  • 🧰 كيفية تشغيله: تشغيل متكرر مع مزيج تطبيقات متنوع، وحالات متعددة، وأجهزة مختلفة، وفحص التعليمات البرمجية.
  • 📉 الحد الصادق: لا تزال اختبارات الوحدة القابلة للتكرار للتعليمات البرمجية متعددة الخيوط صعبة، لذا يمكن أن تكون عيوب التوقيت متقطعة.

ما هو اختبار الخيوط في اختبار البرمجيات باستخدام أنواع الخيوط المفردة والمتعددة؟

ما هو اختبار الموضوع؟

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

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

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

مخطط اختبار الخيوط يوضح الخيوط المدمجة تدريجياً في نظام فرعي ثم في نظام كامل

أنواع اختبار الخيوط

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

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

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

كيفية القيام باختبار الموضوع

تركز عملية الترابط على أنشطة التكامل بدلاً من دورة التطوير الكاملة. عملياً، يعمل هذا النهج على النحو التالي.

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

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

نصائح لاختبار الخيوط المتعددة

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

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

العيوب الشائعة التي تم اكتشافها أثناء اختبار الخيوط

نادراً ما تُعلن أخطاء التزامن عن نفسها مع مكدس نظيف. tracهـ. تمثل الفئات أدناه معظم ما يكشفه تشغيل متعدد الخيوط، ولكل منها عرض مميز يستحق التعرف عليه.

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

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

اختبار الخيوط مقابل اختبار التزامن مقابل اختبار التكامل

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

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

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

مزايا اختبار الخيوط

تستحق هذه التقنية مكانتها في خطة التكامل لعدة أسباب عملية.

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

عيوب اختبار الموضوع

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

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

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

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

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

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

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

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

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

نعم، يصبح الخيط مسار طلب عبر الخدمات بدلاً من الوحدات. موزع tracيحل ing محل مكدس الاستدعاءات المحلي، وينطبق السؤال نفسه: هل تبقى معاملة تجارية واحدة سليمة في كل قفزة؟

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