Phần này sẽ miêu tả cách thức ước lượng rủi ro cho từng module trong một hệ thống; Đồng thời còn nghiên cứu các nhóm nguy cơ ảnh hưởng đến thiệt hại do hỏng hóc gây ra và các ổ sinh lỗi trong qúa trình phát triển hệ thống và lập trình. Các nhân tố này sẽ được sử dụng trong phương pháp kiểm thử mới và được trình bày trong bảng 3.4. Chúng ta sẽ sử dụng công thức tính toán độ phơi nhiễm rủi ro như đã mô tả trong phần 2.1, trong đó hậu quả sẽ được thay thế bằng chi phí.
Nhân tố chi phí Ổ phát sinh sai sót tử quá trình phát triển
Ổ phát sinh sai sót khi lập trình
Độ quan trọng Các phương pháp mới Độ phức tạp Mức hiện diện Các công cụ hoặc kỹ thuật mới Số lượng của lỗi Hay được dùng Số người tham gia Các thay đổi
Uy tín Sức ép thời gian Chất lượng thiết kế Khả năng bảo trì Tối ưu hóa
Hậu quả pháp lý Số lượng các rủi ro
Bảng 3.4: Các nhóm rủi ro và các nhân tố rủi ro được sử dụng trong phân tích rủi ro
Đối với mỗi dự án, điều quan trọng là phải quyết định sớm ngay từ khi phát triển những nhân tố rủi ro nào sẽ được sử dụng. Không phải tất cả các nhân tố rủi ro (các nhân tố chi phí và những nhân tố phát sinh sai sót) đều có
liên quan đến dự án. Một vài nhân tố rủi ro có thể quá khó hoặc quá tốn kém để có thể đánh giá được một cách cặn kẽ. Để đơn giản hơn trong khi đánh giá các rủi ro, chúng ta có thể đề xuất sử dụng cùng một số các nhân tố rủi ro và các nhân tố phát sinh sai sót. Điều này sẽ tạo ra sự cân bằng giữa hậu quả và xác suất. Nếu chọn nhiều nhân tố phát sinh sai sót hơn thì xác suất của những sai sót sẽ có một ảnh hưởng lớn hơn trong độ phơi nhiễm rủi ro. Một vài nhân tố rủi ro có thể sẽ bị bỏ qua sau khi việc phân tích các rủi ro đã được thực hiện, nếu như việc thu thập đủ các dữ liệu chính xác cho tất cả các module là khó khăn. Ngoài ra còn có một giới hạn về số lượng các nhóm rủi ro mà chúng ta sẽ cần đến để thực hiện được một phân tích rủi ro có ích. Nếu có quá nhiều nhân tố rủi ro được chọn thì cũng chả khác gì việc tốn thời gian và nỗ lực để xem xét được tất cả. Do đó, chỉ nên chọn những nhóm rủi ro quan trọng nhất đối với dự án. Mỗi nhân tố rủi ro sẽ được gán một trọng số. Trọng số này phản ánh tầm quan trọng của nhân tố rủi ro trong phân tích. Trong phần mềm công cụ dự kiến phát triển, để đơn giản, chúng ta sẽ đánh giá các rủi ro thành các loại thấp, trung bình, và cao trong giao diện sử dụng, nhưng để tính toán rủi ro, chúng sẽ được thay tương ứng bằng các giá trị 1, 3, và 10.
Mỗi module trong hệ thống đều phải được phân tích. Chúng ta sẽ bắt đầu bằng việc ước lượng số chi phí. Số này chỉ ra chi phí hoặc thiệt hại nếu có nhiều lỗi và nhiều vấn đề xảy ra trong module này. Đối với mỗi nhân tố chi phí đã được chọn, một giá trị sẽ được gán cho rủi ro này để chỉ ra rủi ro này có vai trò như thế nào đối với module cụ thể này. Chúng ta sẽ sử dụng các số 1, 3, và 10. Số chi phí được tính bằng công thức cho dưới đây. Trong đó, các trọng số và các giá trị đối với mỗi rủi ro được lấy từ bảng 3.5. Để nắm được trình tự thực hiện, chúng ta xem Bảng 3.7 tổng hợp cách tính các số chi phí và các số xác suất.
Số chi phí = ∑(chi phí (trọng số) * chi phí (giá trị))
Các nhân tố
chi phí Bảo trì Hiện hữu Uy tín Số chi phí
Trọng số 3 3 10
Module 1 1 1 3 36 (3*1+3*1+10*3)
Module 2 10 10 3 90 (3*10+3*10+10*3)
Bảng 3.5: Tính toán chi phí (bằng số)
Số xác suất cũng được tính tương tự như như số chi phí. Ở đây, có thể xảy ra hiểu nhầm về cách gọi. Chúng ta gọi là số xác suất chứ không phải là xác suất. Số này được tính dựa trên trọng số của các nhân tố gây rủi ro và giá trị được gán cho từng modul ứng với các nhân tố này. Các nhân tố phát sinh sai sót trong quá trình phát triển và trong mã chương trình được sử dụng cùng với nhau để tìm ra xác suất. Số xác suất được tính ra bằng công thức sau.
Số xác suất = ∑(nhân tố sinh lỗi (trọng số) * nhân tố sinh lỗi (giá trị))
Một số nhân tố phát sinh lỗi, chẳng hại như độ phức tạp, chỉ được thu thập sau khi hoàn thiện từng module. Những người kiểm thử hoặc những người phát triển hệ thống có trách nhiệm thực hiện từng module có thể sẽ lựa chọn các thông tin này. Người phát triển sẽ có hiểu biết đầy đủ hơn về từng module và có thể dễ dàng đánh giá. Tuy nhiên mỗi người phát triển sẽ có các đánh về module của họ thấp hơn hoặc cao hơn những người khác. Nếu các kiểm thử viên tham gia vào quá trình này, họ có thể sẽ phải yêu cầu mọi người phát triển hệ thống nên sử dụng một thước đo chung. Hơn nữa, nếu tất cả những người phát triển hệ thống đều sử dụng cùng một bản miêu tả chi tiết cách thức đánh giá các module thì các sai sót xảy ra do việc đánh giá có thể được giảm bớt. Bảng 3.6 dưới đây là một ví dụ về cách tính các số xác suất.
Các nhân tố sinh lỗi Độ phức tạp Các thay đổi Các kỹ
thuật mới Số xác suất
Các trọng số 10 1 3
Module 1 3 1 3 40 (10*3 + 1*1 + 3*3)
Module 2 10 3 3 112 (10*10 +1*3 +3*3)
Bảng 3.6: Tính các số xác suất.
Bảng 3.7 dưới đây tổng kết lại các bước cần thực hiện để tính các số chi phí và các số xác suất.
Bước 1: Lựa chọn các nhân tố rủi ro để sử dụng trong phân tích rủi ro
Bước 2: Gán một trọng số cho mỗi nhân tố rủi ro đã được lựa chọn
Bước 3: Chọn một module
Bước 4: Gán một giá trị cho mỗi nhân tố rủi ro đối vói module đã chọn
Bước 5: Nhân giá trị với trọng số cho mỗi nhân tố rủi ro
Bước 6: Cộng tất cả các tích để tìm ra các số chi phí hoặc các số xác suất cho module đã chọn
Bước 7: Lặp lại bước 3-6 cho đến khi tìm ra được số chi phí hoặc số xác suất của tất cả các module
Bảng 3.7: Quá trình tính các số chi phí và các số xác suất
Từ số chi phí và số xác suất, chúng ta có thể tìm được số phơi nhiễm rủi ro cho từng module như sau:
Số phơi nhiễm rủi ro = Số chi phí * Số xác suất
Khi độ phơi nhiễm rủi ro đã được xác định cho tất cả các module, các module sẽ được tập hợp lại và được sắp thứ tự theo số phơi nhiễm rủi ro. Danh sách này sẽ chỉ ra các module với độ rủi ro cao nhất và những tài
nguyên cần thiết phải dành cho chúng. Vì số phơi nhiễm rủi ro phụ thuộc vào cách phân loại các rủi ro, các trọng số và các giá trị gán cho các nhân tố chi phí và xác suất nên chúng sẽ rất khác nhau giữa các dự án khác nhau. Số phơi nhiễm cao nhất trong dự án này có thể lại thấp nhất trong dự án khác. Vì vậy, mục tiêu của việc phân tích rủi ro chỉ hạn chế trong việc so sánh rủi ro của các module trong cùng dự án để chọn ra thứ tự ưu tiên kiểm thử. Do vậy, chúng ta sẽ phân loại các module theo số phơi nhiễm rủi ro và chia ra làm ba nhóm, nhóm thứ nhất gọi là nhóm cao bao gồm một phần ba module có số
phơi nhiễm cao nhất, nhóm thứ hai gọi là trung bình gồm một phần ba tiếp
theo, và nhóm cuối cùng gọi là thấp cho một phần ba còn lại. Tuy nhiên,
không phải lúc nào số lượng module cũng chia hết cho ba. Trong ví dụ ở bảng 3.8, số module mức trung bình nhiều hơn số module mức cao và thấp.
Modules Số chi phí Số xác suất Số phơi nhiễm Độ phơi nhiễm Module 2 90 112 10080 Cao Module 6 160 42 6720 Cao Module 4 42 131 5502 Trung bình Module 5 42 61 2561 Trung bình Module 7 42 36 1512 Trung bình Module 1 36 40 1440 Thấp Module 3 23 23 506 Thấp
Bảng 3.8: Thiệt hại tiềm ẩn đã được tính toán.