Chương trình bot này có thể tự động sửa lỗi phần mềm với chất lượng không thua kém gì so với con người

Hiện nay, việc tìm kiếm và viết các bản vá để sửa lỗi trong các phần mềm đã trở thành một phần không thể thiếu bởi các chương trình máy tính đã trở nên phức tạp đến mức việc phát sinh lỗi là điều gần như chắc chắn. Đây là một công đoạn tiêu tốn khá nhiều thời gian và nguồn nhân lực.

Martin Monperrus và các đồng nghiệp đến từ Viện công nghệ KTH Royal Institute of Technology ở Stockholm, Thụy Điển đã xây dựng một chương trình bot chất lượng cao, tốc độ nhanh, có thể tìm các đoạn code lỗi và sửa chúng, giúp tự động hóa quá trình tìm lỗi và viết các bản vá chất lượng cao.

Chương trình bot này có tên Repairnator

Chương trình bot này có tên Repairnator và được công bố vào tháng 11 năm 2018. Các nhà nghiên cứu đã cho Repairnator thi với các nhà phát triển con người trong việc tìm và phát triển các bản vá lỗi trên GitHub để kiểm tra xem chương trình bot này có thể đạt được tốc độ và chất lượng như con người không.

Monperrus chia sẻ về ý tưởng của nhóm nghiên cứu, Repairnator sẽ tự động tạo ra các bản vá để sửa các lỗi phần mềm và biểu diễn để xem các nhà phát triển con người có chấp nhận chúng như các đóng góp vào các code base hay không.

Nhóm nghiên cứu tạo cho Repairnator một tài khoản có tên Luc Esape trên GitHub với cả hình ảnh profile và trông như một nhà phát triển trẻ tuổi.

Để có thể cạnh tranh với con người, chương trình bot này phải tạo ra được bản vá chất lượng cao (đúng và có thể đọc được để có thể được chấp nhận đưa vào code base) trước khi con người làm vậy. Thời gian để các bot hoàn thành những bản vá như vậy được tính theo phút thay vì ngày.

 

Sơ đồ hoạt động của Repairnator khi chạy trên dịch vụ tích hợp liên tục của Travis
Sơ đồ hoạt động của Repairnator khi chạy trên dịch vụ tích hợp liên tục của Travis.

Repairnator đã trải qua hai lần thử nghiệm. Lần đầu tiên từ tháng 2 đến tháng 12 năm 2017, Repairnator được cho chạy để tìm kiếm lỗi trên một danh sách khoảng 14.188 dự án của GitHub. Kết quả cho thấy, Repairnator đã phân tích hơn 11.500 bản build có lỗi, trong đó có 3.000 trường hợp nó có thể tái hiện lại lỗi và phát triển bản vá cho 15 trường hợp. Tuy nhiên do các bản vá của Repairnator có chất lượng quá thấp hoặc ra muộn nên không phải cái nào cũng được chấp nhận đưa vào bản build.

Các nhà nghiên cứu nhận thấy, nguyên mẫu của chương trình bot này có thể sửa được khoảng 30 lỗi mỗi ngày.

Lần thử nghiệm thứ hai diễn ra từ tháng 1 cho tới tháng 6 năm 2018, và mang lại nhiều thành công hơn. Lần này, Repairnator được thiết lập để có thể làm việc trên dịch vụ tích hợp liên tục của Travis. Vào ngày 21/1, Repairnator đã có một bản vá được nhà kiểm duyệt con người chấp nhận đưa vào bản build. Trong 6 tháng tiếp theo, 5 bản vá khác do Repairnator viết cũng đã được các nhà kiểm duyệt con người chấp nhận. Điều này chứng tỏ, Repairnator đã có thể cạnh tranh với con người.

Để có thể cạnh tranh với con người, chương trình bot này phải tạo ra được bản vá chất lượng cao

Thành công của Repairnator là một cột mốc mở đường cho một thế hệ mới của việc phát triển phần mềm. Tuy nhiên, nó cũng kéo theo một loạt những vấn đề mới cần giải đáp như ai là người điều hành, sở hữu các tài sản trí tuệ và chịu trách nhiệm cho những đóng góp của chương trình bot.

Có lẽ con người sẽ phải giải đáp những thắc mắc này trước khi người và máy có thể cộng tác với nhau nhiều hơn.

Monperrus và đồng sự tin rằng, trong tương lai, các bot và con người có thể hợp tác trôi chảy và thậm chí cộng tác trong việc tạo ra phần mềm.

Thứ Hai, 06/05/2019 08:04
52 👨 185