เครื่องมือสร้างการทดสอบแบบใหม่ของ Meta ที่ใช้ LLM เปิดโอกาสให้เห็นอนาคตของการพัฒนา
- Meta เผยแพร่บทความวิจัยชื่อ "Automated Unit Test Improvement using Large Language Models at Meta"
- บทความนี้แสดงให้เห็นวิธีใช้ AI เพื่อเร่งความเร็วในการพัฒนาและลดบั๊กของซอฟต์แวร์
- ด้วยการผสาน LLM เข้ากับเวิร์กโฟลว์ของนักพัฒนา ระบบสามารถเสนอแนวทางปรับปรุงซอฟต์แวร์ที่แม่นยำและครบถ้วนเพื่อเพิ่ม code coverage ในปัจจุบัน
ประเด็นสำคัญ
- TestGen-LLM ใช้แนวทาง 'Assured LLM-based Software Engineering' (Assured LLMSE)
- ใช้วิธีแบบ ensemble โดยสร้างข้อเสนอการปรับปรุงโค้ดจาก LLM หลายตัว หลายพรอมป์ต์ และไฮเปอร์พารามิเตอร์หลายชุด แล้วคัดเลือกข้อเสนอที่ดีที่สุด
- TestGen-LLM ถูกออกแบบมาโดยเฉพาะเพื่อปรับปรุงการทดสอบที่มนุษย์เขียนไว้เดิม
สถิติ
- ในการประเมินผลิตภัณฑ์ Reels และ Stories ของ Instagram นั้น 75% ของ test case ที่ TestGen-LLM สร้างขึ้นสามารถ build ได้ตามปกติ, 57% ผ่านการทดสอบได้อย่างเชื่อถือได้ และ 25% เพิ่ม coverage ได้
- TestGen-LLM สามารถปรับปรุงได้ 10% ของทุกคลาสที่นำไปใช้ และนักพัฒนายอมรับข้อเสนอการปรับปรุงการทดสอบ 73% เพื่อนำไปใช้ใน production
- ใน "test-a-thon" ที่วิศวกรของ Meta ใช้สร้างการทดสอบเพื่อเพิ่ม test coverage ของ Instagram ค่ามัธยฐานของจำนวนบรรทัดโค้ดที่การทดสอบจาก TestGen-LLM เพิ่มเข้ามาคือ 2.5
อินไซต์ที่นำไปใช้ได้จริง
- นี่เป็นตัวอย่างที่ดีของการใช้ LLM เพื่อเพิ่มประสิทธิภาพการพัฒนาและความน่าเชื่อถือของซอฟต์แวร์อย่างมีประสิทธิผล
- คุณค่าที่แท้จริงของ LLM อยู่ที่การค้นหาและจับ edge case ที่คาดไม่ถึง
- การนำ LLM ไปใช้ใน production จำเป็นต้องมี orchestration, pipeline และการประมวลผล
วิธีการทำงานของ TestGen-LLM
- TestGen-LLM ใช้ชุด semantic filters กับโซลูชันตัวเลือกที่สร้างโดย LLM ภายในของ Meta เพื่อเก็บไว้เฉพาะการทดสอบที่มีคุณค่ามากที่สุด
- ตัวกรอง 1: ความสามารถในการ build, ตัวกรอง 2: การรัน (การผ่านการทดสอบหรือไม่), ตัวกรอง 3: ความไม่เสถียร, ตัวกรอง 4: การปรับปรุง coverage
- ตัวกรองในการประมวลผลเหล่านี้ช่วยรับประกันการปรับปรุงของ test suite
บทสรุป
- บทความวิจัยนี้เป็นวิธีที่ดีในการติดตามความก้าวหน้าของ LLM ในพื้นที่ด้าน software reliability ซึ่งนักพัฒนาจำนวนมากก็ใช้ LLM อยู่แล้ว
- LLM จะสามารถค้นหาบั๊กและทดสอบในระบบซอฟต์แวร์ที่ซับซ้อนมากขึ้นเรื่อย ๆ
ความเห็นของ GN⁺
- บทความนี้มอบมุมมองที่น่าสนใจเกี่ยวกับผลกระทบที่ปัญญาประดิษฐ์อาจมีต่ออนาคตของการพัฒนาซอฟต์แวร์
- เครื่องมืออย่าง TestGen-LLM สามารถช่วยอย่างมากในการทำงานของนักพัฒนาให้เป็นอัตโนมัติและเพิ่มประสิทธิภาพ
- ความก้าวหน้าของเทคโนโลยีลักษณะนี้กำลังมุ่งไปสู่การลดความซับซ้อนของการพัฒนาซอฟต์แวร์ ยกระดับคุณภาพ และประหยัดเวลาของนักพัฒนา
1 ความคิดเห็น
ความคิดเห็นบน Hacker News