Starcat Developer

การทดสอบ

ให้ agent ของคุณเขียน workflow test รันในเครื่องหรือใน cloud sandbox และยืนยัน commit หนึ่งครั้งให้ใช้ได้กับทุก deployment

คำเตือน:

อยู่ในขั้นทดลอง การทดสอบอัตโนมัติยังใหม่และยังพัฒนาต่อเนื่อง พฤติกรรมที่อธิบายไว้ในที่นี้ใช้งานได้ในตอนนี้ แต่รายละเอียดอาจเปลี่ยน หากพบสิ่งผิดปกติ ติดต่อทีม Stardeck

Workflow test ช่วยจับการเปลี่ยนแปลงที่ทำให้การชำระเงิน การจอง หรือสต็อกพังได้ก่อนที่ลูกค้าจะเจอ ขอให้ coding agent ของคุณ หรือ Starcat Developer ในแท็บ Build ครอบคลุม workflow หนึ่ง แล้วมันจะเขียนและดูแลการทดสอบให้ รันในเครื่องด้วย npm test หรือรันใน cloud sandbox จากแท็บ Tests

ทำงานอย่างไร

การทดสอบแต่ละอันเดินผ่าน workflow แบบเดียวกับที่ลูกค้าทำ ("ใส่สินค้าสองชิ้นในตะกร้า ชำระเงิน ยืนยันว่าคำสั่งซื้อปรากฏ") แล้วตรวจผลลัพธ์

การทดสอบรันในสำเนาที่แยกต่างหากของแอปคุณ ซึ่งมีฐานข้อมูลในหน่วยความจำเป็นของตัวเอง และตัวแทนสำหรับอีเมล การชำระเงิน และการเข้าสู่ระบบ การรันทดสอบไม่แตะข้อมูลลูกค้าจริง ไม่ส่งอีเมลจริง และไม่ตัดบัตรจริง

ควรเขียนการทดสอบแบบไหน

AGENTS.md ของแอปคุณสั่งให้ทุก agent เขียนการทดสอบเพียงสี่แบบ:

แบบตรวจอะไร
Workflowเรียก route จริงของแอปกับฐานข้อมูลทดสอบตามลำดับที่คนจริงทำ (เข้าสู่ระบบ ใส่ตะกร้า ชำระเงิน) รวมถึงกรณีขอบ เช่น สต็อกหมด
Screenเรนเดอร์หน้าด้วย Testing Library บน backend ทดสอบจริง
Structureตรวจกฎที่ใช้ทั้งแอปด้วยการอ่านโค้ดหรือ manifest
End-to-end smokeขับเบราว์เซอร์จริงผ่านเส้นทางปกติหนึ่งเส้นของ flow สำคัญ อย่างมากหนึ่งอันต่อ flow เพราะช้า

ไม่มี unit test ล้วนๆ และไม่มีการทดสอบที่ใช้ mock ฟังก์ชันที่ทดสอบโดดๆ หรือจุดเชื่อมต่อที่ถูกแทนด้วย vi.mock อาจผ่านทั้งที่การชำระเงินพัง กฎเรื่องราคาหรือภาษีจึงทดสอบผ่าน route ที่ใช้กฎนั้น โดยตรวจสิ่งที่มันบันทึกไว้

แท็บ Tests

ดูและรันการทดสอบของคุณ:

1

เปิดแอปของคุณ

เปิดแอปใน Stardeck แล้วไปที่แท็บ Settings
2

ไปที่แท็บ Tests

ใต้ Observability เปิด Tests
3

รัน suite

คลิก Run all เพื่อรันทั้งหมด หรือ Run ข้าง workflow เดียวเพื่อรันเฉพาะอันนั้น

ผลลัพธ์สตรีมแบบสด จากนั้นแต่ละ workflow จะแสดงผ่านหรือไม่ผ่าน ระยะเวลา และรายละเอียดของความล้มเหลว

หมายเหตุ:

แท็บ Tests รัน suite ใน cloud sandbox ของแอป ซึ่งต้องกำลังทำงานอยู่ หากไม่ได้ทำงาน ให้เปิดแท็บ Build ของแอปเพื่อเริ่ม sandbox แล้วรันอีกครั้ง

ยืนยันครั้งเดียว deploy ได้เร็ว

เมื่อการรันทดสอบทั้งหมดเสร็จ Stardeck จะเทียบไฟล์ที่ถูกทดสอบจริงกับ commit ที่ถูกสร้างขึ้น ถ้าตรงกันและทุกการทดสอบผ่าน commit จะได้ badge Verified สีเขียว

deployment ของ commit นั้นทั้ง production และ preview จะได้ badge เดียวกัน โดยไม่รัน suite ซ้ำ การ deploy commit ที่ผ่านการยืนยันแล้วจึงยังเร็ว

หากไฟล์เปลี่ยนหลังการรันทดสอบ commit ที่เกิดขึ้นจะยังไม่ได้รับการยืนยันจนกว่าจะรัน suite ทั้งหมดอีกครั้ง การรัน workflow แบบกรองมีประโยชน์ตอน debug แต่มีเพียงผลจาก Run all ที่ไม่กรองเท่านั้นที่ยืนยัน commit ได้

การรัน npm test ในเครื่องไม่ยืนยัน commit รัน suite ทั้งหมดใน cloud sandbox: Run all ในแท็บ Tests หรือ run_project_tests จาก coding agent ของคุณบนการเชื่อมต่อแบบ Read & write

deployment ยังดำเนินต่อได้จาก commit ที่ยังไม่ได้รับการยืนยัน ดูว่ามี badge สีเขียวหรือไม่ เมื่อต้องการยืนยันว่าโค้ดที่ deploy จริงผ่าน suite ของมัน

การเพิ่มหรือเปลี่ยนการทดสอบ

ขอให้ coding agent หรือ Starcat Developer ของคุณด้วยภาษาธรรมดา:

Add a test for the checkout flow: adding items, paying with a test card, and seeing the order in admin
Write a test that makes sure two people can't book the same time slot
Cover the inventory workflow: placing an order reduces stock, and you can't order more than is in stock

agent เขียนการทดสอบ รัน และแก้โค้ดถ้าพบบั๊กจริง workflow นั้นจะปรากฏในแท็บ Tests

สร้างโดยเริ่มจากการทดสอบ

อธิบายพฤติกรรมก่อนให้ agent สร้างฟีเจอร์ การทดสอบจะกลายเป็นเกณฑ์การยอมรับของคุณ

วิธีทำ

1

อธิบายพฤติกรรม

ระบุสิ่งที่คนทำและสิ่งที่ควรเกิดขึ้น:

Before building anything, write tests for a gift card feature:
- someone buys a $50 gift card and receives the code by email
- someone pays for part of an order with a gift card and the rest by credit card
- someone can't spend the same gift card balance twice
2

ตรวจชื่อการทดสอบ

การทดสอบปรากฏในแท็บ Tests โดยใช้ชื่อตามประโยคของคุณ ขอเพิ่มสิ่งที่ขาด ตอนนี้การทดสอบจะล้มเหลว ซึ่งเป็นเรื่องปกติ

3

ขอให้สร้างฟีเจอร์

Now build the gift card feature until all those tests pass

agent สร้างและรันซ้ำจนผ่านทั้งหมด

ก่อนจะรื้อสิ่งที่ใช้งานได้อยู่แล้ว ให้ขอให้ agent ครอบคลุมพฤติกรรมปัจจุบันก่อน แล้วค่อยเปลี่ยน:

Before changing anything: make sure the checkout workflow has tests covering
ordering, payment, and the confirmation email. Then change shipping to be
calculated by weight instead of a flat rate.

เมื่อไหร่ไม่ต้องทำ

ข้ามการทดสอบสำหรับข้อความ สไตล์ เลย์เอาต์ และการแก้เนื้อหาครั้งเดียว ตรวจสิ่งเหล่านั้นใน preview ใช้การทดสอบกับ เงิน การจอง สต็อก บัญชีผู้ใช้ หรืออะไรก็ตามที่มีกฎ

การรันการทดสอบในเครื่อง

ในเครื่อง suite เป็นโปรเจกต์ Vitest มาตรฐาน จากไดเรกทอรีของแอปคุณ:

npm test

การรันในเครื่องใช้ฐานข้อมูลที่แยกต่างหากและตัวแทนชุดเดียวกัน และไม่ต้องใช้ credential จริง ดู Running Locally

npm run test:e2e รัน end-to-end suite ด้วย Playwright กับ dev server ที่กำลังรันอยู่ของคุณ มันเขียนข้อมูลจริงลงใน data store ที่ .env.local ของคุณชี้ไป

จาก coding agent ของคุณ list_project_tests, run_project_tests และ get_test_run แสดงรายการ รัน และอ่าน suite ใน cloud sandbox ต้องมี agent:tests:run และ end-to-end suite ต้องใช้การเชื่อมต่อแบบ Read & write ดู เครื่องมือและสิทธิ์

คำถามที่พบบ่อย

การทดสอบมีค่าใช้จ่ายหรือกระทบลูกค้าของฉันไหม

ไม่ การทดสอบรันกับสำเนาที่แยกต่างหาก และใช้พลังประมวลผลของ sandbox เล็กน้อยระหว่างรัน

commit ของฉันแสดงว่าการทดสอบล้มเหลว ต้องทำอย่างไร

เปิดแท็บ Tests เพื่อดูว่า workflow ไหนล้มเหลว ขอให้ agent แก้ แล้วรัน suite ทั้งหมดเพื่อให้ commit ใหม่ได้ Verified

แอปของฉันยังไม่มีการทดสอบเลย

deployment ดำเนินต่อได้โดยไม่มี badge การยืนยัน ขอให้ agent ครอบคลุม workflow ที่สำคัญที่สุดของคุณ

ทดสอบ workflow เดียวโดยไม่รันทั้งหมดได้ไหม

ได้ ในแท็บ Tests คลิก Run ข้าง workflow ที่ต้องการ

ถัดไป: Publishing & Deployment

Deploy commit ที่ผ่านการยืนยันไปยัง preview หรือ production