اختبار جميع الأزواج

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

الأساس المنطقي

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

وبشكل أكثر دقة، إذا افترضنا أن حالة الاختبار قدشمال{\displaystyle N}المعلمات المعطاة في مجموعة{Pأنا}={P1،P2،...،Pشمال}{\displaystyle \{P_{i}\}=\{P_{1},P_{2},...,P_{N}\}}يتم تحديد نطاق المعلمات بواسطةR(Pأنا)=Rأنا{\displaystyle R(P_{i})=R_{i}}لنفترض أن|Rأنا|=نأنا{\displaystyle |R_{i}|=n_{i}}نلاحظ أن عدد جميع حالات الاختبار الممكنة هونأنا{\displaystyle \prod n_{i}}إن تصور أن الكود يتعامل مع الشروط التي تأخذ معلَمين فقط في كل مرة، قد يقلل من عدد حالات الاختبار المطلوبة.

للتوضيح، لنفترض وجود المعاملات X وY وZ. يمكننا استخدام دالة منطقية من الشكل التالي:P(X،Y،Z){\displaystyle P(X,Y,Z)}من الرتبة 3، والتي تأخذ جميع القيم الثلاث كمدخلات، أو بالأحرى ثلاث مسندات مختلفة من الرتبة 2 على النحو التالي:ص(u،v){\displaystyle p(u,v)}.P(X،Y،Z){\displaystyle P(X,Y,Z)}يمكن كتابتها بصيغة مكافئة لـصxy(X،Y)،صyz(Y،Z)،صzx(Z،X){\displaystyle p_{xy}(X,Y),p_{yz}(Y,Z),p_{zx}(Z,X)}حيث تشير الفاصلة إلى أي تركيبة. إذا كُتب الكود على شكل شروط تأخذ "أزواجًا" من المعاملات، فإن مجموعة خيارات النطاقاتX={نأنا}{\displaystyle X=\{n_{i}\}}يمكن أن تكون مجموعة متعددة ، لأنه يمكن أن يكون هناك معلمات متعددة لها نفس عدد الخيارات.

مأx(S){\displaystyle max(S)}هو أحد القيم القصوى للمجموعة المتعددةS{\displaystyle S} سيكون عدد حالات الاختبار الثنائية على دالة الاختبار هذه كما يلي: تي=مأx(X)×مأx(Xمأx(X)){\displaystyle T=max(X)\times max(X\setminus max(X))}

لذلك، إذا كانن=مأx(X){\displaystyle n=max(X)}وم=مأx(Xمأx(X)){\displaystyle m=max(X\setminus max(X))}عندئذٍ يكون عدد الاختبارات عادةً O( nm )، حيث n و m هما عدد الاحتمالات لكل من المعلمتين اللتين تحتويان على أكبر عدد من الخيارات، ويمكن أن يكون أقل بكثير من العدد الإجمالينأنا{\displaystyle \prod n_{i}}·

اختبار N-wise

يمكن اعتبار اختبار N-wise الشكل المعمم لاختبار الأزواج.

الفكرة هي تطبيق الفرز على المجموعة X={نأنا}{\displaystyle X=\{n_{i}\}}لهذا السبب.P={Pأنا}{\displaystyle P=\{P_{i}\}}يتم ترتيبها أيضًا. لنفترض أن المجموعة المرتبة هي شمال{\displaystyle N}مترابطة بيانية  :-

Ps=<Pأنا>؛أنا<ج|R(Pأنا)|<|R(Pج)|{\displaystyle P_{s}=<P_{i}>\;;\;i<j\implies |R(P_{i})|<|R(P_{j})|}

الآن يمكننا أخذ المجموعةX(2)={Pشمال-1،Pشمال-2}{\displaystyle X(2)=\{P_{N-1},P_{N-2}\}}ويمكننا أن نسميها اختبار المقارنة الثنائية. وبتعميم ذلك، يمكننا أن نأخذ المجموعةX(3)={Pشمال-1،Pشمال-2،Pشمال-3}{\displaystyle X(3)=\{P_{N-1},P_{N-2},P_{N-3}\}}ويمكننا أن نسميها اختبار الحكمة الثلاثية. في النهاية، يمكننا القولX(تي)={Pشمال-1،Pشمال-2،...،Pشمال-تي}{\displaystyle X(T)=\{P_{N-1},P_{N-2},...,P_{NT}\}} اختبار T-wise.

سيكون اختبار N-wise إذن هو ببساطة جميع التركيبات الممكنة من الصيغة المذكورة أعلاه.

مثال

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

اسم المعاملالقيمة 1القيمة 2القيمة 3القيمة 4
مُفعّلحقيقيخطأ شنيع--
نوع الاختيار123-
فئةأبجد

تتضمن خيارات "مُمكّن" و"نوع الاختيار" و"الفئة" نطاقًا من 2 و3 و4 على التوالي. يتضمن الاختبار الشامل 24 اختبارًا (2 × 3 × 4). بضرب أكبر قيمتين (3 و4)، يتضح أن الاختبارات الثنائية تتضمن 12 اختبارًا. تُعرض أدناه حالات الاختبار الثنائية، التي تم إنشاؤها بواسطة أداة "pict" من مايكروسوفت.

مُفعّلنوع الاختيارفئة
حقيقي3أ
حقيقي1د
خطأ شنيع1ج
خطأ شنيع2د
حقيقي2ج
خطأ شنيع2أ
خطأ شنيع1أ
خطأ شنيع3ب
حقيقي2ب
حقيقي3د
خطأ شنيع3ج
حقيقي1ب

انظر أيضاً

ملحوظات

  1. بيرغر، بيرني (2003). "الاختبار الفعال باستخدام جميع الأزواج" (ملف PDF) . شركة تيك ويل . تم الاطلاع عليه بتاريخ 21 نوفمبر 2023 .
  2. بلاك، ريكس (2007). اختبار البرمجيات العملي: كيف تصبح محترف اختبار فعال وكفؤ . نيويورك: وايلي . ص 240. ISBN  978-0-470-12790-2.
  3. كون، د. ريتشارد؛ والاس، دولوريس ر.؛ غالو، ألبرت م. الابن (يونيو 2004). "تفاعلات أخطاء البرمجيات وآثارها على اختبار البرمجيات" (ملف PDF) . مجلة IEEE للمعاملات في هندسة البرمجيات . 30 (6): 418-421 . doi : 10.1109/TSE.2004.24 . S2CID 206778290 . 
  4. كون، د. ريتشارد؛ كاكر، راغو ن.؛ يو لي (أكتوبر 2010). الاختبار التوافقي العملي. SP 800-142 (تقرير). المعهد الوطني للمعايير والتكنولوجيا . doi : 10.6028/NIST.SP.800-142 .
  5. وقائع المؤتمر الدولي الخامس لاختبار البرمجيات والتحقق من صحتها (ICST) التابع لمعهد مهندسي الكهرباء والإلكترونيات (IEEE). مركز هاجنبرغ لكفاءة البرمجيات. "تصميم الاختبار: الدروس المستفادة والتطبيقات العملية" . 18 يوليو 2008. الصفحات 1-150 . doi : 10.1109/IEEESTD.2008.4578383 . ISBN  978-0-7381-5746-7.{{cite book}}تم |journal=تجاهله ( مساعدة )