Sản xuất một công cụ phân tích tĩnh hữu ích liên quan đến việc cân bằng một số mối quan tâm xung đột, bao gồm ít nhất là sau đây:
- Tỷ lệ dương tính giả (báo động sai)
- Tỷ lệ âm tính (lỗi chưa phát hiện)
- Thời gian chạy và khả năng mở rộng
Dương tính giả là một mối quan tâm quan trọng với các công cụ phát hiện lỗi vì chúng lãng phí thời gian của nhà phát triển. Có thể loại bỏ âm tính giả, nhưng đối với nhiều loại lỗi, bao gồm cả lỗi đồng thời, điều này sẽ liên quan đến sự gia tăng không thể chấp nhận được trong tỷ lệ dương tính giả. Tỷ lệ của cả dương tính giả và âm tính giả có thể được giảm với chi phí tăng thời gian chạy, nhưng các kỹ thuật phân tích chính xác nhất không vượt quá các ứng dụng nhỏ, và dù sao cả hai đều không thể giảm xuống bằng không.
Các công cụ phân tích động thường yêu cầu tỷ lệ dương tính giả là 0%, nhưng đó là vì họ chỉ tìm thấy lỗi một khi chúng thực sự xảy ra. Đối với một điều kiện cuộc đua hoặc bế tắc chỉ xảy ra một lần trong một mặt trăng xanh, điều đó không hữu ích lắm.
Vì những lý do này, ThreadSafe không hứa sẽ tìm thấy tất cả các lỗi đồng thời - nó nhằm mục đích tìm ra những lỗi quan trọng nhất, với tỷ lệ dương tính giả thấp. Một số người dùng đã thử dùng ThreadSafe trên mã với một lỗi đồng thời đã biết mà họ mất nhiều ngày để tìm và phát hiện ra rằng nó tìm thấy lỗi đó - và thường là các lỗi chính hãng khác mà họ không biết - không có lỗi tích cực trong vài phút.
Một nơi tốt để bắt đầu thông tin về ThreadSafe là bài viết InfoQ này . Để biết thêm, hãy xem trang web ThreadSafe nơi bạn có thể đăng ký dùng thử miễn phí.
(Tiết lộ: ThreadSafe là một công cụ thương mại và tôi là người đồng sáng lập của Contemplate, công ty sản xuất nó.)