Kết nối qua MCP →

Nhập phép tính

Công thức

Quảng cáo

Kết quả

Mật độ bug (trên mỗi KLOC)
2,5
bug/KLOC
Mật độ test (trên mỗi LOC) 0,05 tests/LOC
Mật độ test (trên mỗi KLOC) 50 tests/KLOC
Mật độ bug (trên mỗi LOC) 0,0025 bugs/LOC
Mật độ bug (trên mỗi KLOC) 2,5 bugs/KLOC
Kích thước mã sau chuẩn hóa 10.000 LOC

Công Cụ Này Làm Gì?

Công cụ này tính hai chỉ số chất lượng phần mềm rất phổ biến: mật độ test (test density) — số ca kiểm thử bạn có so với quy mô mã nguồn — và mật độ bug (bug density) — số lỗi phát hiện được so với quy mô mã nguồn. Cả hai đều được trình bày theo LOC (Lines Of Code – số dòng mã) và theo KLOC (nghìn dòng mã), vì KLOC là đơn vị báo cáo quy ước trong ngành. Đây là chỉ số mang tính phổ quát, không phụ thuộc vào quy định của bất kỳ quốc gia nào.

Cách Sử Dụng

Nhập số ca kiểm thử đã chạy, số lỗi đã phát hiện và kích thước mã nguồn. Chọn xem con số kích thước mã đang ở dạng số dòng thô (LOC) hay nghìn dòng (KLOC) — công cụ sẽ tự quy đổi về LOC thô trước khi tính toán. Sau đó, mọi giá trị mật độ sẽ được tính tự động.

Giải Thích Công Thức

Trước tiên, kích thước mã được chuẩn hóa: \(\text{locLines} = \text{loc} \times \text{hệ số}\), trong đó hệ số là 1 với LOC và 1000 với KLOC. Tiếp theo, mật độ test theo LOC = số ca test / locLines, và mật độ bug theo LOC = số lỗi / locLines. Phiên bản theo KLOC chỉ đơn giản là nhân giá trị theo LOC với 1000. Số ca test và số lỗi là các giá trị đếm nguyên và không bao giờ bị nhân tỉ lệ.

$$\begin{gathered} \text{Test Density} = \frac{\text{Test Count}}{L} \times 1000, \qquad \text{Bug Density} = \frac{\text{Bug Count}}{L} \times 1000 \\[1.5em] \text{where}\quad L = \text{Source Lines of Code} \times 1 \;\; (\text{LOC}) \end{gathered}$$
Sơ đồ mật độ lỗi và mật độ kiểm thử dưới dạng phân số trên số dòng mã
Cả hai chỉ số đều chia một số lượng (lỗi hoặc kiểm thử) cho kích thước mã, quy đổi theo mỗi KLOC.

Ví Dụ Minh Họa

Giả sử bạn chạy 500 test, phát hiện 25 lỗi, và mã nguồn của bạn có 10 KLOC. Kích thước sau khi chuẩn hóa = \(10 \times 1000 = 10.000\) LOC. Mật độ test:

$$\text{Test Density} = \frac{500}{10.000} = 0{,}05 \text{ test/LOC} = 50 \text{ test/KLOC}$$

Mật độ bug:

$$\text{Bug Density} = \frac{25}{10.000} = 0{,}0025 \text{ bug/LOC} = 2{,}5 \text{ bug/KLOC}$$

Câu Hỏi Thường Gặp

Vì sao có cả giá trị theo LOC và theo KLOC? Giá trị theo LOC rất nhỏ và khó đọc, nên ngành phần mềm thường quy ước báo cáo theo KLOC. Cả hai mang cùng một ý nghĩa — một con số chỉ bằng con số kia nhân 1000.

Vì sao kết quả để trống hoặc báo lỗi? Nếu LOC bằng 0 thì mật độ không xác định về mặt toán học (chia cho 0), nên công cụ sẽ hiển thị lỗi thay vì một giá trị vô cùng lớn.

Tôi có thể so sánh các con số này giữa các dự án không? Chỉ khi quy tắc đếm LOC giống nhau. Hãy thống nhất rõ ràng có tính các dòng chú thích và dòng trống hay không, vì lựa chọn này ảnh hưởng đáng kể đến giá trị mật độ.

Cập nhật lần cuối: