التعقيد الحلقي في اختبار البرمجيات (مثال)

ما هو التعقيد الحلقي لمكابي؟

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

يتم تعريف المسار المستقل على أنه مسار له حافة واحدة على الأقل لم يتم اجتيازها من قبل في أي مسارات أخرى.

تم تطوير هذا المقياس بواسطة Thomas J. McCabe في عام 1976 وهو يعتمد على تمثيل تدفق التحكم للبرنامج. يصور تدفق التحكم البرنامج كرسم بياني يتكون من العقد والحواف.

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

التعقيد الحلقي لمكابي

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

يحدد تدوين الرسم البياني التدفقي لبرنامج ما عدة عقد متصلة عبر الحواف. فيما يلي مخططات التدفق لعبارات مثل if-else و while و until والتسلسل الطبيعي للتدفق.

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

كيفية حساب التعقيد الحلقي

التمثيل الرياضي:

رياضيًا، إنها مجموعة من المسارات المستقلة عبر مخطط الرسم البياني. يمكن تعريف تعقيد الكود الخاص بالبرنامج باستخدام الصيغة -

V(G) = E - N + 2

أين،

هـ - عدد الحواف

ن – عدد العقد

V (G) = P + 1

حيث P = عدد العقد الأصلية (العقدة التي تحتوي على الشرط)

مثال -

i = 0;
n=4; //N-Number of nodes present in the graph

while (i<n-1) do
j = i + 1;

while (j<n) do

if A[i]<A[j] then
swap(A[i], A[j]);

end do;
j=j+1;

end do;

الرسم البياني التدفق لهذا البرنامج سيكون

حساب التعقيد الحلقي

الحوسبة رياضيا،

  • الخامس(ز) = 9 - 7 + 2 = 4
  • V(G) = 3 + 1 = 4 (العقد الشرطية هي 1,2،3 وXNUMX عقد)
  • مجموعة الأساس - مجموعة من مسارات التنفيذ المحتملة للبرنامج
  • 1 , 7
  • 1، 2، 6، 1، 7
  • 1، 2، 3، 4، 5، 2، 6، 1، 7
  • 1، 2، 3، 5، 2، 6، 1، 7

خصائص التعقيد الحلقي

فيما يلي خصائص التعقيد الحلقي:

  1. V (G) هو الحد الأقصى لعدد المسارات المستقلة في الرسم البياني
  2. الخامس (ز) >=1
  3. سيكون لـ G مسار واحد إذا كانت V (G) = 1
  4. تقليل التعقيد إلى 10

كيف يكون هذا المقياس مفيدًا لاختبار البرمجيات؟

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

يعد هذا المقياس مفيدًا بسبب خصائص التعقيد الحلقي (M) -

  1. يمكن أن يكون M عددًا من حالات الاختبار لتحقيق تغطية الفرع (الحد العلوي)
  2. يمكن أن يكون M عدد المسارات من خلال الرسوم البيانية. (الأدنى)

خذ بعين الاعتبار هذا المثال -

If (Condition 1)
Statement 1

Else
Statement 2

If (Condition 2)
Statement 3

Else
Statement 4

سيكون التعقيد الحلقي لهذا البرنامج 8-7+2=3.

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

الخطوات الواجب اتباعها:

ينبغي اتباع الخطوات التالية لحساب التعقيد الحلقي وتصميم حالات الاختبار.

الخطوة الثانية: – إنشاء رسم بياني بالعقد والحواف من الكود

الخطوة الثانية: – تحديد المسارات المستقلة

الخطوة الثانية: - حساب التعقيد الحلقي

الخطوة الثانية: - تصميم حالات الاختبار

بمجرد تشكيل المجموعة الأساسية، حالات تجريبية يجب أن تكون مكتوبة لتنفيذ كافة المسارات.

المزيد عن V (G)

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

يقدم الجدول التالي نظرة عامة على رقم التعقيد والمعنى المقابل لـ v (G):

رقم التعقيد معنى
1-10 كود منظم ومكتوب بشكل جيد

قابلية اختبار عالية

التكلفة والجهد أقل

10-20 الكود المعقد

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

التكلفة والجهد متوسط

20-40 كود معقد للغاية

قابلية اختبار منخفضة

التكلفة والجهد مرتفعان

> 40 غير قابلة للاختبار على الإطلاق

تكلفة وجهد عاليين جدًا

أدوات لحساب التعقيد الحلقي:

تتوفر العديد من الأدوات لتحديد تعقيد التطبيق. تُستخدم بعض أدوات حساب التعقيد لتقنيات معينة. يمكن العثور على التعقيد من خلال عدد نقاط القرار في البرنامج. نقاط القرار هي if وfor وfor-each وwhile وdo وcatch وcase في التعليمات البرمجية المصدرية.

ومن أمثلة الأدوات

  • OCLint - محلل الكود الثابت للغة C واللغات ذات الصلة
  • إضافة العاكس – مقاييس التعليمات البرمجية لتجميعات .NET
  • جيميتريكس - البحث عن المقاييس في Java التطبيقات ذات الصلة

استخدامات التعقيد الحلقي:

يمكن أن يكون التعقيد الحلقي مفيدًا جدًا في

  • يساعد المطورين والمختبرين على تحديد عمليات تنفيذ المسار المستقل
  • يمكن للمطورين التأكد من أن جميع المسارات قد تم اختبارها مرة واحدة على الأقل
  • يساعدنا على التركيز أكثر على المسارات المكشوفة
  • تحسين تغطية التعليمات البرمجية في هندسة البرمجيات
  • تقييم المخاطر المرتبطة بالتطبيق أو البرنامج
  • يؤدي استخدام هذه المقاييس في وقت مبكر من الدورة إلى تقليل مخاطر البرنامج

خاتمة

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

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