ماذا تفعل هذه الحاسبة
تحسب هذه الأداة مقياسين شائعين لجودة البرمجيات في هندسة البرمجيات: كثافة الاختبارات (عدد حالات الاختبار لديك مقارنةً بحجم الكود) وكثافة الأخطاء (عدد العيوب المكتشفة مقارنةً بحجم الكود). يُعرض كلا المقياسين لكل سطر برمجي (LOC أي أسطر الكود) ولكل ألف سطر (KLOC)، لأن وحدة KLOC هي الوحدة المتعارف عليها في توثيق نتائج الصناعة. وهو مقياس عالمي لا يخضع لأي قواعد خاصة بمنطقة أو دولة بعينها.
طريقة الاستخدام
أدخل عدد حالات الاختبار التي نُفّذت، وعدد الأخطاء المكتشفة، وحجم شيفرتك المصدرية. ثم حدّد ما إذا كان رقم حجم الكود مُعطىً بالأسطر الخام (LOC) أم بآلاف الأسطر (KLOC) — حيث تقوم الحاسبة بتوحيده إلى أسطر خام (LOC) قبل إجراء الحساب. بعد ذلك تُشتق جميع قيم الكثافة تلقائيًا.
شرح المعادلة
أولًا يُوحّد حجم الكود وفق المعادلة: \( \text{locLines} = \text{loc} \times \text{factor} \)، حيث يساوي المعامل (factor) واحدًا في حالة LOC وألفًا (1000) في حالة KLOC. ثم تُحسب
$$\text{Test Density} = \frac{\text{Test Count}}{L} \times 1000, \qquad \text{Bug Density} = \frac{\text{Bug Count}}{L} \times 1000$$أما القيم لكل ألف سطر (KLOC) فتُحسب ببساطة بضرب القيمة لكل سطر في 1000. أما عدد الاختبارات وعدد الأخطاء فهما عددان صحيحان مباشران ولا يخضعان لأي قياس.
مثال تطبيقي
لنفترض أنك نفّذت 500 اختبار، واكتشفت 25 خطأً، وأن حجم شيفرتك يبلغ 10 KLOC. الحجم الموحّد = \( 10 \times 1000 = 10{,}000 \) سطر (LOC). كثافة الاختبارات = \( 500 / 10{,}000 = 0.05 \) اختبار لكل سطر، أي 50 اختبارًا لكل ألف سطر. كثافة الأخطاء = \( 25 / 10{,}000 = 0.0025 \) خطأ لكل سطر، أي 2.5 خطأ لكل ألف سطر.
الأسئلة الشائعة
لماذا تُعرض القيمة لكل سطر ولكل ألف سطر معًا؟ القيم لكل سطر (LOC) صغيرة جدًا ويصعب قراءتها، لذا جرت العادة في الصناعة على عرضها لكل ألف سطر (KLOC). والقيمتان تحملان المعلومة نفسها — إحداهما ببساطة هي الأخرى مضروبة في 1000.
لماذا تظهر النتيجة فارغة أو يظهر خطأ؟ إذا كان عدد أسطر الكود (LOC) صفرًا، فإن الكثافة تصبح غير معرّفة رياضيًا (قسمة على صفر)، لذا تعرض الحاسبة رسالة خطأ بدلًا من قيمة لا نهائية.
هل يمكنني مقارنة هذه الأرقام بين المشاريع؟ فقط إذا كانت قواعد حساب أسطر الكود متطابقة. اتخذ قرارًا ثابتًا بشأن احتساب أسطر التعليقات والأسطر الفارغة من عدمه، لأن هذا الاختيار يؤثر بشكل جوهري على قيم الكثافة.