ใน Go 1.18 นั้น จะมีความสามารถใหม่ ๆ ที่น่าสนใจเพิ่มเข้ามา เช่น
- Type parameters (Generic)
- Workspace
- Fuzzing test
โดยสิ่งที่จะอธิบายใน blog นี้คือ Fuzzing test
เพิ่มเข้ามาใน testing library นั่นเอง
แน่นอนว่ายังเป็น beta version อยู่
ความสามารถหลัก ๆ ของ Fuzzing test คือ
ช่วยทำการสร้าง input แบบ random ขึ้นมา
ตาม type ของ method ที่ทดสอบผ่าน unit test นั่นเอง
ทำให้ลดปัญหาเรื่อง edge case ที่นักพัฒนาอาจจะพลาดไปได้เยอะ
ทำให้มี data test ที่หลากหลาย รวมทั้งเรื่องของ security อีกด้วย
ซึ่งบางคนอาจจะเคยได้ยินเรื่อง Mutation testing
ดังนั้น Fuzzing test น่าจะมีประโยชน์มาก ๆ สำหรับนักพัฒนา
มาลองใช้งานกันดีกว่า
จากเอกสารของ Go นั้น เราเพียงใช้ prefix ของ test case ชื่อว่า Fuzz
[gist id="622b81be79b89e89b3cfdd4cb6532cda" file="1.go"]ในการ run test นั้นก็ใช้งานผ่าน go test เหมือนเดิม ดังนี้
แน่นอนใช้เวลาในการ run นาน
เพราะว่า จะทดสอบแบบ sub-test ซึ่งมี test case จำนวนมาก ๆ
แถม CPU นี่พุ่งปรี๊ดมาก ๆ
ลองศึกษาและใช้งานกันดูครับ
ให้ทำหลังจากทดสอบ function การทำงานปกติผ่านแล้วนะครับ