ما هو الرمادي Box اختبارات؟ التقنيات، مثال

⚡ ملخص ذكي

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

  • 🔍 مستوى المعرفة: الهيكل الداخلي معروف جزئياً، بينما هو معروف بالكامل لاختبار الصندوق الأبيض وغير معروف لاختبار الصندوق الأسود.
  • 🧪 أربع تقنيات: يشكل اختبار المصفوفات، واختبار الانحدار، واختبار المصفوفات المتعامدة، واختبار الأنماط، مجموعة الأدوات الأساسية.
  • 🪜 عشر خطوات: حدد المدخلات والمخرجات والمسارات الرئيسية، ثم قسّم النظام إلى وظائف فرعية وتحقق من كل منها.
  • 🔗 الأنسب: اختبار التكامل، واختبار الاختراق، وسير العمل المدعوم بقواعد البيانات، وخدمات الويب، وواجهات برمجة التطبيقاتtracالخبر.
  • 🇧🇷 التنازل عن ميزة ممن أجل الحصول على أخرى: يساهم وضوح الرؤية الجزئي في تقليل الجهد المبذول، ولكنه يحد أيضًا من مدى عمق أي مسار برمجي منفرد. tracأد.
  • 📋 المتطلبات المسبقة: إن توثيق التصميم الدقيق أمر بالغ الأهمية، لأن المخطط أو المواصفات القديمة تبطل تصميم الاختبار بهدوء.

رمادي Box اختبار يجمع بين المعرفة الداخلية الجزئية وتصميم الاختبار الموجه للمستخدم

ما هو الرمادي Box اختبارات؟

رمادي Box الاختبار (تُكتب أيضًا Gray) Box اختبار البرمجيات هو أسلوب لاختبار منتج أو تطبيق برمجي مع معرفة جزئية ببنيته الداخلية. الغرض من اختبار البرمجيات هو اختبار البرمجيات باستخدام تقنية Grey. Box الاختبار هو البحث عن العيوب وتحديدها الناتجة عن بنية التعليمات البرمجية غير السليمة أو الاستخدام غير السليم للتطبيق.

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

رمادي Box الاختبار هو أسلوب لاختبار البرمجيات يجمع بين أبيض Box الاختبار و اسود Box الاختباريكمن الفرق بين الثلاثة في مقدار البنية الداخلية التي يمكن للمختبِر رؤيتها:

  • بالأبيض Box اختبار البنية الداخلية (البرنامج) أمر معروف.
  • في الأسود Box اختبار البنية الداخلية (البرنامج) غير معروف.
  • باللون الرمادي Box اختبار البنية الداخلية (البرنامج) معروف جزئياً.

يوضح الرسم البياني أدناه الطرق الثلاث على نفس مقياس الرؤية.

رمادي Box أظهر الاختبار الفرق بين اللون الأبيض Box وأسود Box الاختبار على نطاق رؤية الكود الداخلي

In هندسة البرمجيات، اللون الرمادي Box يُتيح الاختبار إمكانية اختبار كلا جانبي التطبيق، طبقة العرض والبرمجة التي تدعمها. وهو مفيد بشكل أساسي في اختبار التكامل و اختبار الاختراق.

مثال على اللون الرمادي Box الاختبار: أثناء اختبار ميزة موقع الويب مثل الروابط أو الروابط اليتيمة، إذا واجه المختبر مشكلة في هذه الروابط، فيمكن إجراء التغيير مباشرة في كود HTML والتحقق منه في الوقت الفعلي.

لماذا الرمادي Box الاختبار

رمادي Box يتم إجراء الاختبارات للأسباب التالية:

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

رمادي Box اختبار مقابل أسود Box ضد الأبيض Box الاختبار

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

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

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

رمادي Box استراتيجية الاختبار

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

لأداء غراي Box الاختبار:

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

التقنيات المستخدمة في الصبغة الرمادية Box الاختبارات هي:

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

رمادي Box تعتمد المنهجية عادة على الأتمتة أدوات اختبار البرمجيات لإجراء الاختبار. يتم إنشاء نماذج أولية وبرامج تشغيل الوحدات النمطية بحيث لا يضطر المختبر إلى إنشاء التعليمات البرمجية يدويًا.

خطوات تنفيذ عملية غراي Box الاختبارات هي:

  • الخطوة 1: تحديد المدخلات.
  • الخطوة الثانية: تحديد المخرجات.
  • الخطوة 3: تحديد المسارات الرئيسية.
  • الخطوة الرابعة: تحديد الوظائف الفرعية.
  • الخطوة 5: تطوير المدخلات للوظائف الفرعية.
  • الخطوة 6: تطوير مخرجات الوظائف الفرعية.
  • الخطوة 7: تنفيذ حالة الاختبار للوظائف الفرعية.
  • الخطوة 8: التحقق من صحة النتيجة للوظائف الفرعية.
  • الخطوة 9: كرر الخطوات من 4 إلى 8 للوظائف الفرعية الأخرى.
  • الخطوة 10: كرر الخطوتين 7 و 8 للوظائف الفرعية الأخرى.

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

أين الرمادي Box يتم استخدام الاختبار

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

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

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

رمادي Box أدوات الاختبار

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

  • عملاء واجهة برمجة التطبيقات وخدمات الويب مثل Postman و SoapUI، تُستخدم لإصدار الطلبات والتأكيد على رموز الحالة وهيئات الاستجابة.
  • عملاء قواعد البيانات وأدوات استعلام SQL، تُستخدم للتحقق من الحالة المستمرة بعد إجراء واجهة المستخدم.
  • أدوات مطوري المتصفح ووكلاء HTTP مثل Burp Suite، تُستخدم لفحص وتعديل الطلبات أثناء الجلسات ذات التوجه الأمني.
  • أطر عمل أتمتة واجهة المستخدم مثل Selenium، تُستخدم لتشغيل طبقة العرض داخل اختبار الأتمتة جناح.
  • أدوات التسجيل والمراقبة، تستخدم لربط الفشل الملحوظ بما سجله التطبيق داخليًا في تلك اللحظة.

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

رمادي Box تحديات الاختبار

تُسبب الرؤية الجزئية مشاكل لا توجد في أي من الطرق النقية، وفيما يلي المشاكل التي تواجهها الفرق في أغلب الأحيان:

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

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

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

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

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

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

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

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

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

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

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

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