Microsoft เปิดโอเพนซอร์ส code-testing-generator เอเจนท์สร้าง Unit Test แม่นยำสูงกว่า Copilot เดิม

Microsoft เปิดโอเพนซอร์ส code-testing-generator เอเจนท์สร้าง Unit Test แม่นยำสูงกว่า Copilot เดิม

Microsoft ได้เปิดโอเพนซอร์ส code-testing-generator ซึ่งเป็นเอเจนท์แบบ polyglot ที่มีความสามารถในการเขียน Unit Test พร้อมพิสูจน์การใช้งานจริง โดยถูกรวมไว้ภายใต้ ลิขสิทธิ์ MIT ในส่วนของปลั๊กอิน dotnet-test บน repository dotnet/skills

เอเจนท์ตัวนี้มุ่งแก้ปัญหาช่องว่างที่ผู้ช่วยเขียนโค้ดทั่วไปมักจะทำไม่ได้ เช่น เมื่อได้รับคำสั่ง ‘generate unit tests’ โมเดลส่วนใหญ่มักไม่ทราบว่าควรใช้ framework ใด วางไฟล์ไว้ที่ไหน หรือควรใช้การยืนยันผล (assertion) รูปแบบใด แต่ code-testing-generator จะทำการสำรวจ repository ก่อนเริ่มเขียน เพื่อวางแผน รัน และตรวจสอบความถูกต้องของ Test ที่สร้างขึ้น

จากการทดสอบ Benchmark ภายในของ Microsoft จำนวน 152 ภารกิจ พบว่าเอเจนท์นี้ทำภารกิจสำเร็จถึง 140 รายการ เมื่อเทียบกับ GitHub Copilot รุ่นมาตรฐานที่ทำได้ 120 รายการ แม้ทั้งสองจะใช้โมเดลและชุดคำสั่ง (prompt) เดียวกันก็ตาม

Is it deployable

เครื่องมือนี้คือคำนิยามของเอเจนท์ (agent definition) ที่มาพร้อมทักษะต่างๆ ไม่ใช่บริการแบบ hosted ดังนั้นมันจึงสามารถรันอยู่ภายในเอเจนท์เขียนโค้ดเดิมของคุณได้โดยที่โค้ดยังคงอยู่ในเครื่องอย่างปลอดภัย

ในแง่การใช้งาน สตาร์ทอัพและทีมขนาดกลางจะได้รับประโยชน์สูงสุดเนื่องจากเอเจนท์ช่วยสำรวจข้อมูลใน repository แทนคนได้ ส่วนระดับองค์กรขนาดใหญ่สามารถนำไป Fork เพื่อปรับแต่งให้เข้ากับ framework เฉพาะภายในองค์กร เหมาะอย่างยิ่งสำหรับอุตสาหกรรมที่มีกฎระเบียบเข้มงวด เช่น การเงิน การแพทย์ และภาครัฐ รวมถึงทีมที่ต้องจัดการกับหนี้ทางเทคนิค (Legacy Test Debt) ในโปรเจกต์เก่า

What the agent actually does

หัวใจหลักคือกระบวนการ Research-Plan-Implement (RPI) โดยเอเจนท์จะค้นหาโค้ดที่ขาดการทดสอบ ตรวจจับภาษาและ Test Framework รวมถึงอ่านแนวทางปฏิบัติเดิมที่มีอยู่ ตลอดจนค้นหาคำสั่ง build และ test ที่ใช้งานจริง เพื่อป้องกันปัญหาประเภทที่ว่าโค้ดผ่านในเครื่องแต่รันบน CI ไม่ได้

เอเจนท์จะเลือกใช้ 3 กลยุทธ์ตามความเหมาะสม ได้แก่ Direct (เขียนและตรวจสอบทันที), Single pass (รันหนึ่งรอบ) และ Iterative (ทำซ้ำสำหรับงานขนาดใหญ่) โดยเน้นย้ำว่าจะไม่แก้ไขโค้ดที่ใช้งานจริง (production code) และหลีกเลี่ยงการทดสอบที่ต้องเชื่อมต่อภายนอกหรือผูกกับเวลา

The verification gate

ก่อนจะส่งมอบงาน เอเจนท์จะรันการตรวจสอบ 5 ขั้นตอน รวมถึงการวิเคราะห์การเปลี่ยนแปลงโค้ดขนาดเล็ก (Mutation Testing แบบเบา) เพื่อดูว่าการทดสอบล้มเหลวจริงเมื่อโค้ดผิดพลาดหรือไม่ นอกจากนี้ยังตรวจสอบ assertion ที่ขาดหาย และยืนยันว่าคำสั่ง test เดิมของระบบสามารถตรวจพบเทสต์ใหม่ที่สร้างขึ้นได้จริง

Benchmark results

ผลการทดสอบแสดงให้เห็นว่าเอเจนท์ทำสำเร็จ 140 (92.1%) เทียบกับ 120 (78.9%) ของ GitHub Copilot รุ่นมาตรฐาน ซึ่งช่วยลดอัตราความล้มเหลวลงได้ถึง 63%

ความโดดเด่นจะชัดเจนมากในกรณีที่ได้รับ prompt ที่กำกวม โดยเอเจนท์จัดการได้ถึง 88.8% ในขณะที่รุ่นมาตรฐานทำได้เพียง 66.3% และในภารกิจที่เน้นเฉพาะส่วนต่างของโค้ด (diff) เอเจนท์สามารถผ่านได้ครบทุกรายการ ในขณะที่ Copilot มาตรฐานไม่ผ่านเลย

สิ่งที่น่าสนใจคือ เอเจนท์สร้าง test น้อยลง 2.3% แต่ให้ค่า Line Coverage ในระดับที่เท่ากัน และทำงานเร็วขึ้น 5.5% (เฉลี่ย 359 วินาทีต่อภารกิจ) สะท้อนถึงการเน้นคุณภาพและความแม่นยำมากกว่าปริมาณ

Explainer: how the agent turns one prompt into verified tests

Key Takeaways

  • เอเจนท์สร้าง Unit Test แบบ Polyglot เป็นโอเพนซอร์ส ลิขสิทธิ์ MIT จากทีม .NET ของ Microsoft
  • ใช้กระบวนการ Research-Plan-Implement แทนการสร้างแบบครั้งเดียว (one-shot) เพื่อให้เข้าใจบริบทของ repository
  • อัตราความสำเร็จ 92.1% สูงกว่ามาตรฐานทั่วไปอย่างเห็นได้ชัด โดยเฉพาะในโจทย์ที่มีความซับซ้อนหรือกำกวม
  • เพิ่มประสิทธิภาพการทดสอบในส่วนของ diff และประหยัดทรัพยากรด้วยการสร้าง Test ที่ตรงจุด
Source: MarkTechPost
ดูแลงานแปลและเรียบเรียงโดย TanasakP

ความคิดเห็น (0)

เข้าสู่ระบบเพื่อร่วมแสดงความเห็น

สมัครสมาชิก

มาเป็นคนแรกที่แสดงความเห็นกันเลยโบร