ما هو الرمادي Box اختبارات؟ التقنيات، مثال
⚡ ملخص ذكي
رمادي Box يقوم الاختبار بفحص التطبيق بمعرفة جزئية بهيكله الداخلي، حيث يجمع بين وجهة نظر المستخدم لاختبار الصندوق الأسود مع فهم معماري كافٍ لشرح سبب حدوث الفشل بدلاً من مجرد معرفة أنه قد حدث.
ما هو الرمادي Box اختبارات؟
رمادي Box الاختبار (تُكتب أيضًا Gray) Box اختبار البرمجيات هو أسلوب لاختبار منتج أو تطبيق برمجي مع معرفة جزئية ببنيته الداخلية. الغرض من اختبار البرمجيات هو اختبار البرمجيات باستخدام تقنية Grey. 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 الاختبار كطبقة واحدة من بين عدة طبقات وليس كبديل للطبقات الأخرى، وهي النقطة التي تم التأكيد عليها في المجموعة الأوسع من تقنيات اختبار البرمجيات و أنواع اختبار البرمجياتإنه يتماشى بشكل طبيعي مع الاختبار الوظيفي والأساليب القائمة على المواصفات مثل الاختبار القائم على النموذج.

