2.5 Các kỹ thuật định vị lỗi
2.5.6 Kỹ thuật định vị lỗi dựa trên học máy
Học máy là nghiên cứu các thuật tốn máy tính được cải thiện thơng qua trải nghiệm. Các kỹ thuật học máy có khả năng thích ứng, mạnh mẽ và có thể tạo ra các mơ hình dựa trên dữ liệu, với sự tương tác hạn chế của con người. Điều này đã dẫn đến việc các kỹ thuật học máy được sử dụng trong nhiều lĩnh vực như tin sinh học, xử lý ngôn ngữ tự nhiên, mật mã, thị giác máy tính, v.v. Các kỹ thuật định vị lỗi dựa trên học máy cố gắng học hoặc suy ra vị trí của lỗi dựa trên trên dữ liệu đầu vào như phủ câu lệnh và kết quả thực thi (thành công hay thất bại) của mỗi ca kiểm thử.
Wong và Qi đề xuất kỹ thuật định vị lỗi dựa trên mạng nơ-ron truyền ngược (Back Propagation - BP) [26], một trong những mơ hình mạng nơ-ron phổ biến trong thực tế. Mạng nơron BP có cấu trúc đơn giản, giúp dễ dàng triển khai bằng các chương trình máy tính. Đầu tiên, dữ liệu về phủ của mỗi ca kiểm thử và kết quả thực thi tương ứng được thu thập. Dữ liệu này được sử dụng cùng nhau để đào tạo mạng nơ-ron BP để mạng có thể tìm hiểu mối quan hệ giữa chúng. Sau đó, phủ của một bộ các ca kiểm thử ảo mà mỗi trường hợp chỉ bao gồm một câu lệnh trong chương trình được đưa vào mạng BP được đào tạo và kết quả đầu ra có thể được coi là khả năng mỗi câu lệnh chứa lỗi.
Briand và cộng sự sử dụng thuật toán cây quyết định (decision tree) C4.5 [27] để xây dựng các quy tắc phân loại các ca kiểm thử thành các phân vùng khác
nhau sao cho các ca kiểm thử không thành cơng trong cùng một phân vùng có thể bị lỗi do cùng một lỗi nguyên nhân. Tiền đề cơ bản là các điều kiện lỗi riêng biệt cho các ca kiểm thử có thể được xác định tùy thuộc vào các đầu vào và đầu ra của ca kiểm thử. Mỗi đường dẫn trong cây quyết định đại diện cho một quy tắc mơ hình hóa các điều kiện thất bại riêng biệt, có thể bắt nguồn từ các lỗi khác nhau và dẫn đến một dự đoán xác suất thất bại riêng biệt. Phạm vi báo cáo của cả ca kiểm thử thất bại và thành công trong mỗi phân vùng được sử dụng để xếp hạng các câu lệnh bằng cách sử dụng phương pháp heuristic tương tự như Tarantula để tạo thành một bảng xếp hạng. Các bảng xếp hạng riêng này sau đó được hợp nhất để tạo thành bảng xếp hạng báo cáo cuối cùng có thể được kiểm tra để xác định lỗi.