
บันทึกการลองใช้งาน bugpatrol จาก nebula สำหรับการทดสอบระบบงาน
ทั้ง web app, desktop app และ mobile app
ถูกพัฒนาด้วย JavaScript (TypeScript)
ถ้าถามว่ามันคืออะไร ?
สามารถตอบสั้น ๆ ได้ว่า AI Agent สำหรับ QA/Tester นั่นเอง
โดยการทำงานไม่ใช่เพียงแค่สร้าง test case และ ทดสอบเท่านั้น
แต่ยังสามารถ
- ทำงานกับระบบ
- ทำการหา bug หรือปัญหาในระบบ จาก git diff change
- ทำการตรวจสอบว่า bug ที่เจอนั้น มันจริงไหม
- ทำการแก้ไขระบบ
- ทำการ retest ในสิ่งที่แก้ไข
- อีกทั้งยังสามารถเปิด PR และแก้ไขตาม PR นั้น ๆ ได้อีก (optional)
มีเป้าหมายหลัก ๆ เพื่อให้ได้ feedback ที่รวดเร็วและมีคุณภาพมากยิ่งขึ้น
ซึ่งการทำงานเหล่านี้จะมี AI Agent ที่ได้สร้างไว้ 5 ตัวคือ
- Explorer สำหรับการหา bug
- Judge สำหรับตัดสินใจว่า bug มันจริงไหม
- Fixer สำหรับการแก้ไข
- Retest
- Publish
ขั้นตอนการทำงาน สามารถดูได้เอกสารหลัก How-is-works

แนวทางออกแบบการทำงานของ bugpatrol
ถูกออกแบบมาให้ทำการทดสอบมุมมองของคนใช้งาน (outside หรือ external)
หรือจะเรียกว่า End-to-End test หรือ Blackbox testing ก็ได้
โดยเครื่องมือที่ใช้ในการทดสอบแยกตาม platform ได้ดังนี้
- Web จะใช้ Playwright
- Desktop app ที่พัฒนาด้วย Electron จะทดสอบผ่าน Chrome DevTools Protocol(CDP)
- Android/iOS app จะทดสอบด้วย Maestro บน Emulator/Simulator
ดังนั้นในการทดสอบนั้น ตัวเครื่องมือต้องการใช้เครื่องมือต่าง ๆ ในการทดสอบระบบงาน
ไม่ว่าจะเป็นใช้ computer vision เช่น screenshot เพื่อตรวจสอบการทำงาน
ไม่ว่าจะเป็น runtime signal ต่าง ๆ เพื่อเป็นข้อมูลในการทำงานของ AI Agent เช่น
- ข้อมูลใน console ที่ออกมา
- Network status
- พฤติกรรมการทำงานกับ User interface (interaction) กับ state ของการทำงาน
โดยข้อมูลเหล่านี้ทั้งขั้นตอนการทำงานของ Explorer และ Judge ใช้เยอะมาก ๆ
มาดูตัวอย่างการใช้งานแบบคร่าว ๆ
จากใน repository ของ project จะมี example app ให้ลองใช้งาน
โดยผมเลือก web app มาทดสอบ
และในการทดสอบนั้น เราสามารถเลือก mode ได้ว่า
จะใช้ LLM หรือ ไม่ใช้
หรือจะ integrate เข้ากับ AI Agent tool ต่าง ๆ ได้อีก
ตัวอย่างเช่นไม่ใช้งาน LLM ใด ๆ สามารถทำได้ดังนี้
จากนั้นมาดู config ของ project กัน
ซึ่งจะทำการ start web server ขึ้นมา
บอกว่าระบบพร้อมทดสอบเมื่อ element อะไรมีสถานะอย่างไร
พร้อมทั้งกำหนดขนาดของหน้าจอที่ต้องการทดสอบ ดังตัวอย่าง
ตัวทดสอบจะทำการ capture รูปไว้เพื่อตรวจสอบว่ามีปัญหาอะไรบ้าง
เช่นเหมือนเดิมไหม เป็นต้น

แต่ถ้า run ใน mode การใช้ LLM จะขึ้น error message ดังนี้
ถ้ายังไม่ทำการ config ไว้
จากนั้นทำการ config ให้ถูกต้อง ก็จะใช้งานได้
และแจ้งด้วยว่าเลือกใช้ model อะไร และค่าใช้จ่ายในการทดสอบเท่าไร
จากนั้นทำการเขียน guideline ต่าง ๆ ให้ AI ทำงาน ผ่านไฟล์ .bugpatrol/instructions.md
ยกตัวอย่างเช่น ขั้นตอนการ login เข้าระบบ เป็นต้น
รวมทั้งสิ่งที่ต้องทำและห้ามทำเด็ดขาด
หรือจะให้ทำการ explore ระบบที่ต้องการทดสอบก่อนได้อีกด้วย
โดยที่ bugpatrol จะทำการเล่นระบบให้เองแบบอัตโนมัติ
หรือกำหนด goal และ จำนวนรอบการเล่นระบบได้อีกด้วย
จากนั้นลอง run judge -> fixer ต่อได้เลย
และไม่พอ ยังสามารถดู dashboard ของการทำงานได้อีกด้วย

หรือจะใช้งานผ่าน AI Agent ได้
จากนั้นติดตั้งสิ่งต่าง ๆ ผ่าน Agent Skills ก็ได้อีก
ลองเล่นหรือใช้งานกันดูได้
เดี๋ยวไปลองเล่นแบบละเอียดอีกรอบ