قابلية اختبار البرمجيات

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

بصورة رسمية، بعض الأنظمة قابلة للاختبار، وبعضها الآخر غير قابل للاختبار. ويمكن تحقيق هذا التصنيف من خلال ملاحظة أنه لكي يكون النظام قابلاً للاختبار، بالنسبة لوظيفة معينة فيه "S" والتي تأخذ المدخل "I"، يجب أن توجد دالة منطقية قابلة للحساب "V" بحيثV(S،أنا){\displaystyle V(S,I)}تكون العبارة صحيحة عندما ينتج النظام S، عند إدخال المدخل I، مخرجًا صحيحًا، وخاطئة في غير ذلك. تُعرف هذه الدالة "V" بدالة التحقق للنظام عند إدخال المدخل I.

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

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

يمكن ملاحظة ارتباط "قابلية الاختبار" بالتصميم الجيد من خلال ملاحظة أن الكود الذي يتميز بتماسك ضعيف، وترابط قوي، وتكرار، ونقص في التغليف، يصعب اختباره. [ 1 ]

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

خلفية

تتضمن قابلية الاختبار، وهي خاصية تنطبق على الفرضيات التجريبية، عنصرين. ويعتمد جهد وفعالية اختبارات البرمجيات على عوامل عديدة، منها:

  • خصائص متطلبات البرمجيات
  • خصائص البرنامج نفسه (مثل الحجم والتعقيد وقابلية الاختبار)
  • خصائص أساليب الاختبار المستخدمة
  • خصائص عمليات التطوير والاختبار
  • مؤهلات ودوافع الأشخاص المشاركين في عملية الاختبار

قابلية اختبار مكونات البرمجيات

تتحدد قابلية اختبار مكونات البرمجيات (الوحدات النمطية، والفئات) بعوامل مثل:

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

يمكن تحسين قابلية اختبار مكونات البرمجيات من خلال:

قابلية اختبار المتطلبات

يجب أن تستوفي المتطلبات المعايير التالية لكي تكون قابلة للاختبار:

باعتبار المتطلبات بديهيات، يمكن معالجة قابلية الاختبار من خلال تأكيد وجود دالة.FS{\displaystyle F_{S}}(برمجيات) بحيث يتم إدخالأناك{\displaystyle I_{k}}يُنتج مخرجاتياك{\displaystyle O_{k}}، لذلكFS:أنايا{\displaystyle F_{S}:I\to O}لذلك، يقوم البرنامج المثالي بإنشاء المجموعة.(أناك،ياك){\displaystyle (I_{k},O_{k})}وهي مجموعة المدخلات والمخرجاتΣ{\displaystyle \Sigma }، اختصاراً لكلمة "مواصفات".

والآن، خذ مدخلات اختباريةأنات{\displaystyle I_{t}}، مما ينتج عنه المخرجاتيات{\displaystyle O_{t}}، أي مجموعة الاختبارτ=(أنات،يات){\displaystyle \tau =(I_{t},O_{t})}والآن، السؤال هو ما إذا كان ذلك سيحدث أم لا.τΣ{\displaystyle \tau \in \Sigma }أوτΣ{\displaystyle \tau \not \in \Sigma }إذا كان موجودًا في المجموعة، فإن صف الاختبارτ{\displaystyle \tau }إذا نجح الاختبار، يفشل النظام في إدخال الاختبار. لذلك، من الأهمية بمكان تحديد  ما إذا كان بإمكاننا إنشاء دالة تُترجم فعليًا إلى مفهوم دالة مؤشر المجموعة لمجموعة المواصفات.Σ{\displaystyle \Sigma }.

بناءً على هذا المفهوم،1Σ{\displaystyle 1_{\Sigma }}هي دالة قابلية الاختبار للمواصفاتΣ{\displaystyle \Sigma }لا ينبغي مجرد تأكيد وجودها، بل يجب إثباته بدقة. لذلك، من الواضح أنه بدون اتساق جبري، لا يمكن العثور على مثل هذه الدالة، وبالتالي، تتوقف المواصفات عن كونها قابلة للاختبار.

انظر أيضاً

مراجع

  1. ↑ شالواي ، آلان؛ تروت، جيم (2004). شرح أنماط التصميم، الطبعة الثانية . ص 133. ISBN  978-0321247148.
  • روبرت ف. بيندر: اختبار الأنظمة الموجهة للكائنات: النماذج والأنماط والأدوات، رقم ISBN 0-201-80938-9
  • ستيفان يونغماير: تحسين قابلية اختبار الأنظمة الموجهة للكائنات ، ISBN 3-89825-781-9
  • واندرلي سوزا: أنماط قابلية الاختبار المجردة ، ISSN 1884-0760
  • بوريس بيزر:تقنيات اختبار البرمجيات