35
Những lỗi nghiêm trọng (có tần suất xuất hiện cao) được ưu tiên kiễm thử và sửa trước, để giảm tối đa khả năng gây lỗi của PM
- Gieo lỗi
Gieo lỗi để ước tính số lỗi có trong phần mềm đếm cá trong ao:
1. Bắt N con cá trong hồ nuôi cá. Đánh dấu hết toàn bộ và thả lại vào ao (vậy trong ao có đúng N con bộ và thả lại vào ao (vậy trong ao có đúng N con cá có đánh dấu)
2. Quăng 1 mẽ lưới để bắt M con cá trong ao; trong đó có n con có đánh dấu, và M-n con không đánh đó có n con có đánh dấu, và M-n con không đánh dấu.
3. Gọi X là tổng số cá trong ao, thì:
n / N = M / X = (M-n) / (X – N)
Hệ số phát hiện lỗi Cf được ước tính là:
detected seeds (n)
= detected non seeds (M-n)
total seeds (N) total non seeds (X-N) Cf =
36
Các kỹ thuật debuging
Bruce force: cung cấp dấu vết thực thi của
chương trình bằng cách đặt lệnh in ra màn hình các câu lệnh và giá trị của biến.
Cause elimination : phép quy nạp và diễn dịch trên các biểu hiện của lỗi để giới hạn phạm vi gây ra lỗi
Back tracking : dò vết ngược từ biểu hiện của lỗi đến câu lệnh gây lỗi
37
Unit testing framework
jUnit, CPPUnit, Nunit, PyUnit,… gọi chung là xUnit. Hàm assert?() thực thi lệnh / hàm và đối chiếu với kết quả được mong đợi để đánh giá.
assertTrue(Boolean condition)
assertEquals(Object expected, Object actual)
assertEquals(int expected, int actual)
assertSame(Object expected, Object actual)
…
38