Tags:
Node Thumbnail

ทีมวิศวกรของ Facebook เปิดตัว SapFix เครื่องมือช่วยดีบั๊กด้วยพลัง AI ที่ล้ำหน้าถึงขั้นแก้บั๊กหรือเขียนแพตช์ให้อัตโนมัติด้วยในบางกรณี

SapFix ถูกนำมาใช้งานจริงแล้วในกระบวนการพัฒนาแอพ Facebook Android โดย Facebook ระบุว่าเป็นครั้งแรกที่นำ AI มาใช้ตรวจหาบั๊กในงานที่ใหญ่ระดับนี้

การทำงานของ SapFix มักใช้คู่กับเครื่องมืออีกตัวของ Facebook คือ Sapienz ซึ่งทำหน้าที่รัน automate testing ให้ก่อน เมื่อ Sapienz พบบั๊กแล้วจะส่งต่อให้กับ SapFix ช่วยวิเคราะห์หาแนวทางแก้ไข ซึ่งเป็นไปได้หลายแบบ

  • อย่างง่ายที่สุด SapFix จะเขียนแพตช์เพื่อถอนโค้ดที่ก่อให้เกิดบั๊กนั้นกลับเป็นเวอร์ชันก่อนหน้า ซึ่งเป็นไปได้ทั้งการถอนกลับทั้งหมด (revert full diff) หรือบางส่วน (revert partial diff)
  • ถ้าปัญหาซับซ้อนมากขึ้น SapFix จะพิจารณาจากเพมเพลตการแก้บั๊กในฐานข้อมูลเดิม เพื่อสร้างแพตช์ขึ้นมาจากเทมเพลตเหล่านี้
  • หากแนวทางแก้บั๊กในเทมเพลตไม่เวิร์ค SapFix จะลองใช้วิธีที่เรียกว่า mutation หรือการลองปรับแก้โค้ดบางส่วนไปเรื่อยๆ โดยอิงจากแผนภาพ abstract syntax tree (AST) ของจุดที่เกิดปัญหา จนกว่าจะสามารถแก้บั๊กได้

No Description

SapFix จะนำเสนอแนวทางหลายแบบในการแก้บั๊กเดียวกัน และทดสอบคุณภาพของแพตช์จากปัจจัย 3 อย่างคือ compilation error, ทดสอบว่าหายแครชหรือไม่ และทดสอบว่าแพตช์ก่อให้เกิดการแครชในกรณีอื่นหรือไม่ หลังทดสอบเสร็จหมดแล้วจะส่งต่อให้มนุษย์ตรวจสอบอีกชั้น เพื่ออนุมัติการใช้แพตช์ต่อไป

ตอนนี้ SapFix ยังเปิดให้ใช้งานเฉพาะภายใน Facebook และมีแผนจะเปิดซอร์สในอนาคต

ที่มา - Facebook Code

Get latest news from Blognone