Các nhà nghiên cứu đã tạo ra được bot sửa lỗi lập trình giỏi đến mức bị nhầm tưởng là con người
Lập trình viên phiên bản bot có tên Repairnator có khả năng viết được nhiều bản sửa lỗi đủ tốt để đánh lừa các lập trình viên khác rằng nó là con người.
Vĩ nhân nổi tiếng Benjamin Franklin từng viết rằng: "Trong thế giới này, không có gì là chắc chắn ngoại trừ cái chết và thuế". Nhưng có lẽ nếu ông còn sống đến thời điểm này, ông sẽ phải thêm một điều nữa, đó là "lỗi phần mềm" vào trong danh sách của mình.
Các chương trình máy tính hiện đại phức tạp đến mức các lỗi phần mềm chắc chắn sẽ xuất hiện trong quá trình phát triển và hoàn thiện. Đó là lý do tại sao luôn có các bản vá lỗi phần mềm được tung ra sau một khoảng thời gian phát hành một phần mềm, ứng dụng. Đó là một phần của bất kỳ tiến trình phát triển phần mềm nào.
Tuy nhiên việc tìm và sửa lỗi là một công việc tốn khá nhiều thời gian và nguồn lực. Do đó nhiều nhà nghiên cứu đã phát triển các bot (robot mạng) để tự động hóa quy trình sửa lỗi. Bot hay robot mạng là ứng dụng phần mềm chạy các tác vụ tự động hóa trên mạng. Bot có nhiệm vụ thực hiện các tác vụ đơn giản, lặp lại với tần suất lớn thay thế con người.
Mặc dù được tin tưởng giao nhiệm vụ sửa lỗi nhưng chúng thường có xu hướng xử lý khá chậm hoặc tạo ra các mã lập trình không đáp ứng được yêu cầu. Bởi vậy các nhà phát triển rất muốn có được một con bot chất lượng, đủ nhanh và giỏi để quét lỗi và viết các bản vá.
Ước mơ đó giờ đây đã trở thành hiện thực nhờ công trình nghiên cứu của nhà khoa học Martin Monperrus cùng một vài người bạn tại Viện Công nghệ Hoàng gia KTH ở Stockholm, Thụy Điển. Họ đã tạo ra được con bot lần đầu cạnh tranh được với con người về khả năng phát hiện và sửa lỗi.
Bot có tên Repairnator đã được thử nghiệm cạnh tranh trực tiếp với các nhà lập trình.
Bot đã có thể cạnh tranh với con người về khả năng viết bản sửa lỗi phần mềm
Các nhà khoa học máy tính từ lâu luôn hiểu rằng, họ có thể tự động hóa việc viết các bản vá lỗi. Nhưng không rõ liệu bot có thể làm được việc này đủ nhanh và chất lượng như con người hay không. Bởi vậy, Monperrus và các đồng nghiệp đã quyết định cho bot Repairnator trực tiếp tham gia vào quá trình phát hiện và sửa lỗi.
Để làm được điều này, họ đưa Repairnator lên kho lưu trữ mã nguồn GitHub để cạnh tranh trực tiếp với các kỹ sư phần mềm là con người. Nhiệm vụ của Repairnator sẽ là tự động tạo ra các bản vá lỗi cho phần mềm, ứng dụng, sau đó gửi cho các nhà phát triển để xem liệu họ có chấp nhận đóng góp của Repairnator hay không.
Nhóm nghiên cứu đã tạo ra một tài khoản người dùng GitHub có tên Luc Esape với đầy đủ ảnh hồ sơ và là một kỹ sư phần mềm. Tài khoản này đóng vai trò che mắt các nhà phát triển khác rằng đây không phải là bot. Tuy nhiên rõ ràng đứng sau các bản vá lỗi do tài khoản này viết chính là bot Repairnator.
Việc cải trang cho Repairnator là cần thiết khi con người có xu hướng đánh giá không khách quan kết quả của con người và bot. Nếu ngụy trang thành công, các nhà nghiên cứu cũng có cơ sở để đánh giá năng lực và khả năng cạnh tranh của bot so với con người.
Martin Monperrus đã thử nghiệm hai lần để kiểm tra khả năng của Repairnator. Lần đầu tiên từ tháng 2-12/2017. Nhóm đã đưa Repairnator vào trong danh sách tổng hợp 14.188 dự án GitHub đang nhờ cộng đồng tìm kiếm lỗi. Thời điểm đó, Repairnator có thể viết được khoảng 30 bản vá lỗi mỗi ngày.
Repairnator đã phân tích hơn 11.500 bản build có chứa lỗi. Trong số này, nó không thể sửa lỗi được cho khoảng 3000 trường hợp. Sau đó, nó chỉ phát triển được bản vá cho 15 trường hợp. Mặc dù vậy không có bản vá nào được chấp nhận vì Repairnator mất quá nhiều thời gian để viết bản sửa lỗi và chất lượng bản vá cũng thấp và không thể áp dụng.
Nhưng với lần thử nghiệm thứ hai, mọi thứ đã thành công. Lần này, nhóm đã đưa Luc (tên giả danh cho Repairnator) lên hoạt động trên dịch vụ Travis từ tháng 1-6/2018. Tuy không chia sẻ về những cải tiến trong thời gian nhưng vào ngày 12/1/2018, nó đã viết được một bản sửa lỗi được con người chấp nhận. Nói cách khác, Repairnator giờ đây đã đủ khả năng để cạnh tranh sòng phẳng với con người trong việc viết các bản sửa lỗi phần mềm.
6 tháng sau đó, Repairnator viết được thêm 5 bản vá và tiếp tục được lập trình viên chấp nhận.
Nhưng chưa hết vui mừng vì thành quả đạt được của Repairnator, nhóm nghiên cứu đã gặp phải một tin không vui. Nhóm nhận được một thông báo từ một số nhà phát triển với nội dung: "Chúng tôi chỉ có thể chấp nhận pull-request từ các lập trình viên đã ký thỏa thuận cấp phép cộng tác của Eclipse Foundation".
Đây là một vấn đề nhức nhối vì bot không thể ký thỏa thuận cấp phép.Câu hỏi đặt ra là ai sẽ là người sở hữu tài sản trí tuệ và trách nhiệm của một người đóng góp sẽ như thế nào nếu nó chỉ là bot? Phải chăng người tạo ra bot, điều khiển bot sẽ là người phải chịu trách nhiệm?
Nếu thực sự muốn tạo ra một con bot có khả năng phát hiện và sửa code điêu luyện, trước hết các lập trình viên cần phải giải quyết được vấn đề trách nhiệm của chúng. Chỉ có như vậy thì con người và bot mới có thể hợp tác được với nhau.
Tham khảo TechnologyReview
NỔI BẬT TRANG CHỦ
Google: Giải được bài toán 10 triệu tỷ tỷ năm chỉ trong 5 phút, chip lượng tử mới là bằng chứng về đa vũ trụ
Điều đáng ngạc nhiên hơn cả là nhiều người trên cộng đồng mạng thế giới lại đang đồng tình với kết luận của Google.
Gần 2025 rồi mà vẫn dùng USB để lưu công việc thì quả là lỗi thời