Trình tạo kiểm thử mới dựa trên LLM của Meta cho thấy tương lai của phát triển phần mềm
- Meta đã công bố bài báo "Automated Unit Test Improvement using Large Language Models at Meta".
- Bài báo này cho thấy cách dùng AI để tăng tốc độ phát triển và giảm lỗi phần mềm.
- Bằng cách tích hợp LLM vào quy trình làm việc của lập trình viên, hệ thống đề xuất các cải tiến phần mềm chính xác và đầy đủ nhằm cải thiện độ bao phủ mã hiện tại.
Các điểm chính
- TestGen-LLM sử dụng cách tiếp cận 'Assured LLM-based Software Engineering' (Assured LLMSE).
- Hệ thống dùng phương pháp tổ hợp, tạo ra các phương án cải tiến mã bằng nhiều LLM, prompt và siêu tham số, rồi chọn ra phương án tốt nhất.
- TestGen-LLM được thiết kế đặc biệt để cải thiện các bài kiểm thử hiện có do con người viết.
Thống kê
- Trong đánh giá sản phẩm Reels và Stories của Instagram, 75% các ca kiểm thử do TestGen-LLM tạo ra đã build thành công, 57% vượt qua một cách ổn định và 25% làm tăng độ bao phủ.
- TestGen-LLM có thể cải thiện 10% tổng số lớp đã được áp dụng, và các lập trình viên đã chấp nhận 73% đề xuất cải tiến kiểm thử để đưa vào production.
- Trong "test-a-thon" nơi các kỹ sư Meta tạo kiểm thử để tăng độ bao phủ kiểm thử của Instagram, số dòng mã trung vị được các bài kiểm thử TestGen-LLM bổ sung là 2,5.
Insight có thể áp dụng
- Đây là một ví dụ tốt cho thấy có thể dùng LLM để cải thiện hiệu quả năng suất phát triển và độ tin cậy phần mềm.
- Giá trị thực sự của LLM nằm ở khả năng tìm ra và bắt được các edge case ngoài dự kiến.
- Để dùng LLM trong production, cần có orchestration, pipeline và xử lý phù hợp.
Cách TestGen-LLM hoạt động
- TestGen-LLM áp dụng một loạt bộ lọc ngữ nghĩa lên các lời giải ứng viên được tạo bởi LLM nội bộ của Meta để chỉ giữ lại những bài kiểm thử có giá trị nhất.
- Bộ lọc 1: khả năng build, bộ lọc 2: thực thi (kiểm thử có pass hay không), bộ lọc 3: tính thất thường, bộ lọc 4: cải thiện độ bao phủ.
- Các bộ lọc xử lý này bảo đảm việc cải thiện test suite.
Kết luận
- Bài báo này là một cách tốt để theo dõi tiến bộ của LLM trong không gian độ tin cậy phần mềm, nơi nhiều lập trình viên đã sử dụng LLM.
- LLM sẽ ngày càng có khả năng tìm lỗi và kiểm thử trong các hệ thống phần mềm phức tạp hơn.
Ý kiến của GN⁺
- Bài viết này mang đến góc nhìn thú vị về cách trí tuệ nhân tạo có thể ảnh hưởng đến tương lai của phát triển phần mềm.
- Các công cụ như TestGen-LLM có thể hỗ trợ rất nhiều trong việc tự động hóa công việc của lập trình viên và nâng cao hiệu quả.
- Sự phát triển của các công nghệ này đang hướng tới việc giảm độ phức tạp của phát triển phần mềm, nâng cao chất lượng và tiết kiệm thời gian cho lập trình viên.
1 bình luận
Ý kiến trên Hacker News