الاختبار الإيجابي والاختبار السلبي مع الأمثلة

⚡ ملخص ذكي

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

  • ✅ نتائج إيجابية للاختبار: أدخل البيانات الصحيحة فقط وتأكد من أن التطبيق يكمل التدفق المقصود تمامًا كما هو موضح في المواصفات.
  • ⛔ نتيجة الاختبار سلبية: قم بإدخال بيانات غير صالحة أو متطرفة وتأكد من أن التطبيق يرفضها، ويظهر خطأً واضحاً، ويظل مستقراً.
  • 📏 تحليل القيم الحدية: اختبر حافة كل نطاق مقبول، ثم خطوة واحدة خارجه، لاكتشاف العيوب التي تزيد بمقدار واحد بسرعة.
  • 🧩 تقسيم التكافؤ: قم بتقسيم المدخلات إلى مجموعات صالحة وغير صالحة، ثم قم بأخذ عينة من قيمة واحدة من كل مجموعة بدلاً من اختبار كل شيء.
  • 🇧🇷 قاعدة التغطية: اكتب حالتين على الأقل لكل متطلب، حالة إيجابية وحالة سلبية، حتى لا يتم شحن أي معيار قبول دون اختباره.
  • 🛡️ العائد الأمني: تكشف الحالات السلبية عن عيوب الحقن، والرموز المنتهية الصلاحية، والاستثناءات غير المعالجة التي لا تتطرق إليها عمليات التشغيل الإيجابية أبدًا.
  • 🤖 ملاءمة الأتمتة: أتمتة التدفقات الإيجابية المستقرة لقيمة الانحدار، وأتمتة عمليات التحقق السلبية من الصحة للحصول على ملاحظات حول المرونة.

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

يجيب النهجان على أسئلة متناقضة: هل يعمل التطبيق عندما تسير الأمور على ما يرام، وهل يظل مستقرًا عندما يحدث خطأ ما؟

ما هو الاختبار الإيجابي؟

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

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

على سبيل المثال، انظر إلى مربع النص الرقمي الموضح أدناه.

اختبار إيجابي

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

#1 الأفضل بشكل عاماختبار التطبيق العالمي
9.8/ 10
★ ★ ★ ★ ★
احصل على عرض تجريبي مجاني
PractiTest
9.5/ 10
★ ★ ★ ★ ★
قم بزيارة : PractiTest
Testiny
9.3/ 10
★ ★ ★ ★ ★
قم بزيارة : Testiny
أفضل من أجلاختبار الجمهور وضمان الجودةإدارة الاختبارفرق ضمان الجودة الصغيرة والمتوسطة
ميزة رئيسية✓اختبار التكامل مع جهات خارجية✓إدارة الاختبارات المركزية✓حالات الاختبار اليدوية والآلية
آلية الربط✓جيرا، Slack, TestRail✓جيرا، Jenkins, Slack✓Jira، GitHub، GitLab
تجربة مجانيّةالتجريب المجانيشنومكس يوم التجربة المجانيةالتجريب المجاني
احصل على عرض تجريبي مجانيقم بزيارة : PractiTestقم بزيارة : Testiny

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

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

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

على سبيل المثال، لنفترض أن نفس الحقل يستقبل أحرفًا بدلاً من أرقام.

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

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

في كلا نوعي الاختبار، يجب مراعاة ما يلي:

  • ادخال البيانات
  • الإجراء الذي يجب القيام به
  • نتيجة الإخراج

الاختبار الإيجابي مقابل الاختبار السلبي: الاختلافات الرئيسية

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

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

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

تقنيات الاختبار المستخدمة في الاختبارات الإيجابية والسلبية

من الناحية العملية، تقوم تقنيتان كلاسيكيتان لتصميم المدخلات بتوليد حالات إيجابية وسلبية من نفس المتطلبات:

  • تحليل قيمة الحدود
  • تقسيم متكافىء

تحليل قيمة الحدود

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

على سبيل المثال، انظر إلى النطاق المقبول الموضح أدناه.

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

يمكن للنظام قبول الأرقام من 0 إلى 10 قيم عددية. جميع الأرقام الأخرى هي قيم غير صالحة. بموجب هذه التقنية، سيتم اختبار قيم الحدود -1,0,1،9,10,11،XNUMX وXNUMX،XNUMX،XNUMX.

تقسيم متكافىء

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

على سبيل المثال، ادرس التقسيمين الموضحين أدناه.

تقسيم متكافىء

يمكن تقسيم القيم العددية من صفر إلى عشرة إلى قسمين (أو ثلاثة). في حالتنا، لدينا قسمان: من -10 إلى -1 ومن 0 إلى 10. يمكن أخذ قيم نموذجية (5 و-5) من كل قسم لاختبار السيناريوهات. انظر تجزئة التكافؤ وتحليل القيم الحدية درسٌ يتضمن المزيد من الأمثلة المحلولة.

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

يحوّل التسلسل التالي أحد المتطلبات إلى مجموعة متوازنة من الحالات الإيجابية والسلبية.

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

يُظهر سحب الأموال من الصراف الآلي عملية الربط. في حالة إدخال رقم التعريف الشخصي (PIN) الصحيح والمبلغ الصحيح، يتم استلام المبلغ نقدًا وإيصالًا. أما في حالة إدخال رقم التعريف الشخصي (PIN) الخاطئ، فيتم توقع رسالة رفض، ثم حظر البطاقة.

ممارسات للحفاظ على التوازن الصحيح

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

⚠️ تحذير: لا تُجرِ اختبارات سلبية على بيئة إنتاج حقيقية. فهي مصممة لإحداث أعطال، والتعطل المتعمد يؤثر على المستخدمين الحقيقيين والبيانات الحقيقية.

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

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

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

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

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

Selenium يدعم التحقق من صحة حقول المتصفح، Postman يغطي حمولات واجهة برمجة التطبيقات غير الصالحة ورموز الحالة، و JMeter يدفع الحمل إلى ما يتجاوز الحد المسموح به في سيناريوهات الضغط. اختر الأداة التي تتوافق مع الطبقة التي تتحقق منها.

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