ผลตรวจ Test

ผลทดสอบแต่ละรอบ จัดเป็นหัวข้อตามเรื่องที่ตรวจ แต่ละข้อบอกเป็นประโยคว่าตรวจอะไร เลือกดูเฉพาะเรื่องของ BA หรือ Technical ได้

ผ่าน

Mockup workspace: Sitemap / Page flow / Screen Listing

31 ต.ค. 2569, ผ่าน 7 จาก 7 ข้อ

Mockup browser 43 ข้อ + regression 70/25/9 รวม 147 ข้อผ่าน พร้อม Go/race/vet และ artifact validation

1 หัวข้อที่ตรวจ

ข้อมูลและการบันทึกร่วม

Technical

ตรวจ catalog/API/storage และไม่รบกวนเครื่องมือเดิม

  • ตรวจ 170 screen records, 990 preview variants, 6 component contracts/previews และ 162 flow mappings ผ่าน
  • go test -race -count=1 ./... และ go vet ./... ผ่าน รวม catalog/reference validation ทุก flow ผ่าน
  • Same-origin write, invalid references, path/symlink confinement และ concurrent stale saves ถูกตรวจ ผ่าน
  • Saved graph ไม่ถูกแทนที่เมื่อ source เปลี่ยน และ JSON เสียไม่ถูก reset เงียบ ผ่าน
  • Save/Restore เก็บ revision snapshots และปฏิเสธ stale save โดยคง local edits ผ่าน
  • mockups-check.mjs ผ่าน 43 assertions; Use cases 70; workflow review 25; task briefs 9 ผ่าน
  • ตรวจ GET บน 8099 ครบเมนู/guide/catalog/drafts และไม่มี real mockup graph ถูกสร้างโดย tests ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
python3 mockups/tools/build_catalog.py --check; cd tracker && go test -race -count=1 ./... && go vet ./...; Playwright mockups-check/usecases-check/workflow-review-check/task-brief-check บน temporary data
ผลจากเครื่องมือทดสอบ
ผ่าน 147, ไม่ผ่าน 0, ข้าม 0
หมายเหตุ
147 คือ browser assertions 43+70+25+9; Go/data checks เพิ่มแยกกัน ทดสอบเขียนเฉพาะ /tmp/tnsu-mockup-final/data ไม่ approve Use cases จริง
ผ่าน

ทบทวน Use cases และ canonical decision diagrams

31 ต.ค. 2569, ผ่าน 7 จาก 7 ข้อ

ตรวจครบ 162 กรณี/47 decisions พร้อม browser 95 assertions โดยใช้ temporary data เท่านั้น

1 หัวข้อที่ตรวจ

โครงสร้าง แผนภาพและการถดถอย

Technical

รักษาความสอดคล้องของต้นฉบับ ภาพ และ approval/history

  • go test -race -count=1 ./... และ go vet ./... ผ่าน ผ่าน
  • ทุกขั้นทั้ง 162 use cases เข้าถึงได้ ไม่มี dangling edge/dead end และมีทางถึง terminal outcome ผ่าน
  • เงื่อนไข workflow ที่เปลี่ยนทำ approval stale โดยไม่เขียนทับ saved diagram ผ่าน
  • สร้าง generated catalog ซ้ำได้ผลเหมือนเดิมทั้ง 37 ไฟล์ ผ่าน
  • usecases-check.mjs ผ่าน 70 assertions รวม grid zoom export PNG และ revision/approval ผ่าน
  • workflow-review-check.mjs ผ่าน 25 assertions รวม branch labels, reset, saved revision, fit และ mobile ผ่าน
  • ตรวจหน้า 8099 แบบอ่านอย่างเดียวแสดง canonical draft รุ่นใหม่โดยไม่สร้าง approval จริง ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
python3 docs/agent/tools/check_use_case_review.py; cd tracker && go test -race -count=1 ./... && go vet ./...; Playwright usecases-check.mjs + workflow-review-check.mjs บน temporary server
ผลจากเครื่องมือทดสอบ
ผ่าน 95, ไม่ผ่าน 0, ข้าม 0
หมายเหตุ
95 คือ browser assertions (70+25); Go และ data checks ตรวจเพิ่มแยกกัน การรันทดสอบก่อนหน้าพบ pointer นอก viewport และแก้ให้ scroll canvas ก่อนลากแล้วรันครบผ่าน ดู P-013
ผ่าน

ปิดงานจัดทำ Role/Security Matrix ฉบับร่าง

31 ต.ค. 2569, ผ่าน 4 จาก 4 ข้อ

ตรวจหลักฐานฉบับร่างและเปลี่ยนสถานะ Done เฉพาะ T-201/T-202 โดยคงรายการรอ BA/Security ยืนยัน

1 หัวข้อที่ตรวจ

สถานะและหลักฐาน

BA และ Technical

ปิดงาน Agent ที่เสร็จแล้วโดยไม่อนุมัติข้อกำหนดแทนผู้ตรวจ

  • Role/Security Matrix draft v0.1 มีไฟล์และหัวข้อครบตาม checkpoint C-004 ผ่าน
  • เปลี่ยนเป็น Done เฉพาะ T-201/T-202 และเวลา finished อ้างอิง C-004 ผ่าน
  • ข้อมูล review และ task อื่นทุก field คงเดิม ผ่าน
  • go test -count=1 ./... ผ่าน ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
ตรวจ artifacts/status diff และ cd tracker && go test -count=1 ./...
ผลจากเครื่องมือทดสอบ
ผ่าน 4, ไม่ผ่าน 0, ข้าม 0
หมายเหตุ
Done คือจัดทำฉบับร่างเสร็จ ไม่ใช่ยืนยัน business/security requirements; review.todo คงไว้
ผ่าน

ตรวจส่งมอบงานที่ Reviewed แล้ว

31 ต.ค. 2569, ผ่าน 9 จาก 9 ข้อ

Go race/vet ผ่าน Browser 70+9 รวม 79 assertions ผ่าน ใช้ข้อมูลชั่วคราวเพื่อปิดชุดงาน T-408–T-417

2 หัวข้อที่ตรวจ

Use cases และ diagram

BA และ Technical

ตรวจฟีเจอร์ที่ผ่านรีวิวทั้งชุดก่อนเก็บ Git

  • ตารางแบ่ง module/tabs/filter/collapse และ editor ทั้งชุดผ่าน 70 assertions ผ่าน
  • Save/revision history/rollback และ approval invalidation ทำงานครบ ผ่าน
  • PNG ส่งออกครบและ background White/Transparent ถูกต้องจริง ผ่าน
  • UI review panels, dark mode, mobile และ unsaved edits ผ่าน ผ่าน

Task briefs และคุณภาพโค้ด

BA และ Technical

รักษาผลรีวิวและรายละเอียดงานที่ตรวจแล้ว

  • Task briefs ผ่าน 9 assertions รวม T-303 และคำถาม 39 ข้อ ผ่าน
  • Go test -race -count=1 ./... ผ่าน ผ่าน
  • go vet ./... ผ่าน ผ่าน
  • JSON ทุกไฟล์ JavaScript syntax และ git diff --check ผ่าน ผ่าน
  • สถานะ T-408–T-417 ยังเป็น Reviewed และไม่มี Reject/Hold ค้าง ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
cd tracker && go test -race -count=1 ./... && go vet ./...; node tracker/e2e/usecases-check.mjs <chrome> <temporary-server> <shots> <playwright> <temporary-data>; node tracker/e2e/task-brief-check.mjs <chrome> <temporary-server> <shots> <playwright>
ผลจากเครื่องมือทดสอบ
ผ่าน 79, ไม่ผ่าน 0, ข้าม 0
หมายเหตุ
79 คือจำนวน browser assertions; Go suite ตรวจแยก ไม่มีการอนุมัติหรือแก้ diagram จริงใน repository
ผ่าน

Task briefs และ stakeholder questions

30 ต.ค. 2569, ผ่าน 5 จาก 5 ข้อ

Go race/vet ผ่าน และ browser read-only 9 ข้อผ่าน ครอบคลุม task brief, T-303, questions, mobile และ SQL Server decision

1 หัวข้อที่ตรวจ

โครงสร้างข้อมูลและการแสดงผล

Technical

คง review history และไม่บันทึกข้อสรุปที่ไม่มีคำตอบ

  • Go test -race -count=1 ./... และ go vet ./... ผ่าน ผ่าน
  • รหัสคำถามไม่ซ้ำ dependencies อ้างอิง task ที่มีจริง และคำถาม answered ต้องมี answer ผ่าน
  • SSR Task แสดง description/deliverables/questions/ผู้ตอบครบ พร้อม escape ข้อความ ผ่าน
  • refs ทุกไฟล์ของ task ที่เติมรายละเอียดมีอยู่จริง ผ่าน
  • Browser read-only 9 assertions ผ่าน ไม่เปลี่ยนข้อมูล/ผลรีวิว ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
cd tracker && go test -race -count=1 ./...; go vet ./...; node e2e/task-brief-check.mjs <headless-shell> <base-url> <output-dir> <playwright-module>
ผลจากเครื่องมือทดสอบ
ผ่าน 9, ไม่ผ่าน 0, ข้าม 0
หมายเหตุ
passed 9 คือ browser assertions; งาน hosting/data model/scope ยังคง todo ตามเดิม การเติม brief ไม่ใช่การปิดงานเหล่านั้น
ผ่าน

Review panels UI และ PNG export

30 ต.ค. 2569, ผ่าน 5 จาก 5 ข้อ

Browser 70 ข้อผ่าน รวมไฟล์ PNG จริง และ UI Approval/History ทั้งจอเล็กและโหมดมืด

1 หัวข้อที่ตรวจ

PNG export และ regression

Technical

ส่งออกได้ครบและรักษาความโปร่งใสจริง

  • เปิด Export PNG dialog และเลือกพื้นหลังได้ ผ่าน
  • PNG พื้นหลัง White มี pixel มุมเป็น RGBA 255,255,255,255 ผ่าน
  • PNG Transparent มี alpha channel ที่มุมเท่ากับ 0 ผ่าน
  • ขนาด PNG ตรงกับ full graph bounds แม้ซูม viewport ผ่าน
  • Browser regression ทั้ง 70 ข้อผ่าน และ JavaScript syntax ถูกต้อง ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
node tracker/e2e/usecases-check.mjs <headless-shell> <temporary-server> <screenshots> <existing-playwright> <temporary-data>
ผลจากเครื่องมือทดสอบ
ผ่าน 70, ไม่ผ่าน 0, ข้าม 0
หมายเหตุ
ทดสอบการ Save/Approve เฉพาะ /tmp; ตรวจ PNG ที่ดาวน์โหลดจริง ไม่ใช้ screenshot แทนการส่งออก
ผ่าน

Horizontal workflow, revision history, approval และ module groups

30 ต.ค. 2569, ผ่าน 8 จาก 8 ข้อ

Browser 59 ข้อผ่าน Go race suite และ vet ผ่าน ทดสอบการเขียน/Approve เฉพาะข้อมูล /tmp

1 หัวข้อที่ตรวจ

ความถูกต้องและ concurrent edits

Technical

ไม่ทับงาน ไม่ยืนยันข้อมูลที่ยังไม่ได้ตรวจ และไม่ลบประวัติ

  • Go test -race -count=1 ./... และ go vet ./... ผ่าน ผ่าน
  • ทุก snapshot และ current graph เขียน atomic และอ่านกลับหลังสร้าง store ใหม่ได้ ผ่าน
  • การ Save พร้อมกันยอมรับครั้งเดียวและเก็บ history ถูกต้อง ผ่าน
  • stale restore / stale source / stale diagram approval ถูกปฏิเสธ ผ่าน
  • CSRF และ approval ที่ไม่มีชื่อหรือไม่ยืนยันถูกปฏิเสธ ผ่าน
  • ไฟล์เดิมที่ยังไม่มี history ถูกเก็บ revision เดิมก่อนบันทึกถัดไป ผ่าน
  • Approve ร่างเริ่มต้นจะ Save layout เป็น revision 1 ก่อนและบันทึกการยืนยัน ผ่าน
  • Browser regression ครบ 59 ข้อไม่พบ JavaScript exceptions ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
cd tracker && go test -race -count=1 ./...; go vet ./...; node e2e/usecases-check.mjs <headless-shell> <temporary-server> <screenshots> <existing-playwright> <temporary-data>
ผลจากเครื่องมือทดสอบ
ผ่าน 59, ไม่ผ่าน 0, ข้าม 0
หมายเหตุ
59 คือจำนวน browser assertions; tests ของ approval ไม่เคยเขียนข้อมูลจริงใน repo
ผ่าน

Use cases tabs / full descriptions / Ctrl-wheel และ Overview order

30 ต.ค. 2569, ผ่าน 6 จาก 6 ข้อ

Browser regression ผ่าน 41 ข้อ พร้อม Go race suite และ vet ผ่าน ตรวจหน้า 8099 แบบอ่านอย่างเดียวผ่าน

1 หัวข้อที่ตรวจ

การซูมและ regression

Technical

ตรวจการทำงานร่วมกับ editor และการเก็บข้อมูลเดิม

  • Ctrl + scroll ขึ้นซูมเข้า ลงซูมออก โดยรักษาพิกัดใต้เมาส์ ผ่าน
  • dropdown แสดงสเกลตรงและไม่เปลี่ยนระดับ zoom ของ browser ผ่าน
  • scroll ไม่กด Ctrl ยังคง pan และ zoom/pan ไม่ทำให้ข้อมูลมีสถานะยังไม่บันทึก ผ่าน
  • Integration ต้องมีชื่อระบบที่ระบุ ไม่อนุมานจากขั้นตอนระบบทั่วไป ผ่าน
  • Browser ทั้ง 41 ข้อผ่าน รวมกริด เส้นหักมุม สองผู้ใช้ SSE save/reload และมือถือ ผ่าน
  • Go test -race -count=1 ./... และ go vet ./... ผ่าน ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
cd tracker && go test -race -count=1 ./...; go vet ./...; node e2e/usecases-check.mjs <headless-shell> <temporary-server> <screenshots> <existing-playwright> <temporary-data>; main read-only smoke
ผลจากเครื่องมือทดสอบ
ผ่าน 41, ไม่ผ่าน 0, ข้าม 0
หมายเหตุ
passed 41 หมายถึง browser regression; ยังตรวจ main 8099 แบบอ่านอย่างเดียวและ Go suite แยกต่างหาก
ผ่าน

Diagram Snap to grid และเส้นเชื่อมหักมุม

30 ต.ค. 2569, ผ่าน 4 จาก 4 ข้อ

Browser ผ่าน 24 ข้อหลังปรับ Snap to grid และเส้น orthogonal บนข้อมูล /tmp

1 หัวข้อที่ตรวจ

การจัดตำแหน่งและเส้นเชื่อม

BA และ Technical

จัด diagram ให้อยู่แนวเดียวกันและอ่านทางเดินของเส้นได้ง่าย

  • ลาก shape แล้วพิกัดขยับตรงกริด 20 หน่วย ผ่าน
  • ทุกช่วงของเส้นเชื่อมเป็นแนวนอนหรือแนวตั้ง หักมุม 90° ผ่าน
  • shape ที่เพิ่มและพิกัดหลังลากยังตรงกริดหลังบันทึกและเปิดใหม่ ผ่าน
  • Regression browser ทั้ง 24 ข้อผ่าน รวม Fit/กึ่งกลาง ซูม ลากเส้น สองผู้ใช้ SSE undo/redo โหมดมืดและมือถือ ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
node tracker/e2e/usecases-check.mjs <headless-shell> <temporary-server> <screenshots> <existing-playwright> <temporary-data>
ผลจากเครื่องมือทดสอบ
ผ่าน 24, ไม่ผ่าน 0, ข้าม 0
หมายเหตุ
การลากทดสอบใช้จุดที่ไม่อยู่กึ่งกลางระหว่างสองช่องกริด เพื่อไม่ผูก assertion กับทศนิยมจาก SVG zoom
ผ่าน

Use cases Table view และ Diagram editor

30 ต.ค. 2569, ผ่าน 7 จาก 7 ข้อ

Go suite พร้อม race detector และ go vet ผ่าน Browser ผ่าน 23 ข้อบนข้อมูลสำเนา รวมการจัดกึ่งกลางและ Fit ทั้งหมดตามคำขอล่าสุด

1 หัวข้อที่ตรวจ

ความถูกต้องและการบันทึก

Technical

รักษาข้อมูลและไม่ทับงานของผู้ใช้อื่น

  • Go test -race -count=1 ./... ผ่านทุก test รวม SSE ผ่าน
  • go vet ./... และ JavaScript syntax check ผ่าน ผ่าน
  • ปฏิเสธ CSRF รหัสไม่รู้จัก JSON ผิดรูปแบบ ข้อมูลเกินขนาด shape/เส้นไม่ถูกต้อง และ revision เก่า ผ่าน
  • บันทึกแล้วอ่านกลับได้ และรองรับวงจรกับ canvas ว่าง ผ่าน
  • ทดสอบสองผู้ใช้จริง: บันทึกเวอร์ชันเก่าไม่ทับงานอีกคนและเก็บข้อความในหน้าจอไว้ ผ่าน
  • SSE จริงไม่ล้าง diagram ที่ยังไม่บันทึก ผ่าน
  • Browser ทดสอบ 23 ข้อผ่านและไม่พบ JavaScript exception ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
cd tracker && go test -race -count=1 ./...; go vet ./...; node e2e/usecases-check.mjs <headless-shell> <temporary-server> <screenshots> <existing-playwright> <temporary-data>
ผลจากเครื่องมือทดสอบ
ผ่าน 23, ไม่ผ่าน 0, ข้าม 0
หมายเหตุ
passed 23 คือ browser assertions; Go suite ผ่านทุกข้อด้วย ใช้ Playwright ที่มีอยู่แล้ว ไม่ได้เพิ่ม dependency ให้ tracker ทดสอบการเขียนบนข้อมูล /tmp เท่านั้น
ผ่าน

Tracker โหลดช้าเมื่อเปิดหลาย tab

30 ต.ค. 2569, ผ่าน 3 จาก 3 ข้อ

ตรวจว่า tab ที่ไม่ได้ดูคืนช่องเชื่อมต่อ, กลับมาแล้ว live update ทำงานต่อ และ CSS/JS โหลดจาก cache ผ่านทุกข้อ

1 หัวข้อที่ตรวจ

Server

Technical

ยืนยันว่า server ไม่ใช่ต้นเหตุ

  • ทุกหน้าตอบภายใน 2 ms บนเครื่อง และ 5–25 ms ผ่าน tailnet ผ่าน
  • CSS/JS ที่มี ?v ตรงกับ build ได้ Cache-Control immutable, ไม่มีหรือไม่ตรงได้ no-cacheTestStaticCaching ผ่าน
  • go test ทั้งหมด27 ผ่าน ผ่าน
ผ่าน

Timeline เต็มจอและเส้นแบ่ง

30 ต.ค. 2569, ผ่าน 4 จาก 4 ข้อ

ตรวจว่า Timeline ใช้พื้นที่เต็มจอ, chart ยืดถึงขอบขวา, ลากเส้นแบ่งได้และจำค่า, ย่อ/ขยายแถวได้ และตำแหน่งแถบยังถูกต้องหลังเปลี่ยนเป็น % ผ่านทุกข้อ

1 หัวข้อที่ตรวจ

Timeline layout

Technical

ตำแหน่งแถบยังถูกต้องหลังเปลี่ยนจาก px เป็น %

  • Task 1 วันกว้าง 1 หน่วยพอดี และความกว้างขั้นต่ำ = จำนวนหน่วย × 44 px ผ่าน
  • Task ที่ยังเปิดอยู่ยืดถึงเส้นตอนนี้ ผ่าน
  • แถบ Epic ครอบทุก task ข้างใน ผ่าน
  • go test ทั้งหมด26 ผ่าน ผ่าน
ผ่าน

Timeline (Gantt chart)

30 ต.ค. 2569, ผ่าน 8 จาก 8 ข้อ

ตรวจหน้า Timeline: คำนวณช่วงเวลาและตำแหน่งแถบถูกต้องทุกระดับเวลา, ย่อ/ขยาย, เลื่อนไปที่ตอนนี้ และ Live update ไม่ทำให้ตำแหน่ง scroll หาย ผ่านทุกข้อ

2 หัวข้อที่ตรวจ

Scales (Hour / Day / Week)

BA และ Technical

สลับระดับเวลาได้และหน้าไม่หนักเกินไป

  • ทั้ง 3 scale เปิดได้ (HTTP 200) และ scale ที่ไม่รู้จักกลับเป็น Day ผ่าน
  • Week เริ่มวันจันทร์ ผ่าน
  • Hour view จำกัด 21 วันรอบตอนนี้เมื่อแผนยาว ผ่าน
  • Minimum span: Day 21 วัน, Week 12 สัปดาห์, Hour 48 ชม. ไม่ให้ chart แคบเกินไป ผ่าน

Interaction (E2E)

BA และ Technical

ใช้งานใน browser จริง

  • เปิดหน้าแล้วเส้น "ตอนนี้" อยู่ในจอ ผ่าน
  • ย่อ Milestone แล้วซ่อนแถวลูกทั้งหมด และจำค่าหลัง reload ผ่าน
  • Live update ไม่ทำให้ตำแหน่ง scroll แนวนอนหาย120 → 120 px ในมุมมองชั่วโมง ผ่าน
  • Light / Dark / Mobile แสดงผลถูกต้อง ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
go test -count=1 -v ./... ; timeline browser check
ผลจากเครื่องมือทดสอบ
ผ่าน 30, ไม่ผ่าน 0, ข้าม 0 ใช้เวลา 0.3s (go test) + 20s (E2E)
หมายเหตุ
go test: 26 ผล (20 test + 6 subtest), E2E timeline 4 checks
ผ่าน

File viewer, Reviewed status และ Done สีเขียว

30 ต.ค. 2569, ผ่าน 10 จาก 10 ข้อ

ตรวจว่าไฟล์แนบเปิดเป็นหน้า HTML ในแท็บใหม่ได้ และปลอดภัย, สถานะ Reviewed ทำงานตามที่ตกลง และทุก flow เดิมยังผ่านหลังเปลี่ยน ผ่านทุกข้อ

3 หัวข้อที่ตรวจ

Security (file viewer)

Technical

ตัวเปิดไฟล์ต้องไม่เปิดอะไรนอก repo

  • Path traversal (../ และ %2e%2e) ได้ 404 หลัง clean path ผ่าน
  • .git และไฟล์ซ่อนเปิดไม่ได้ ผ่าน
  • Symlink ที่ชี้ออกนอก repo เปิดไม่ได้ (EvalSymlinks + prefix check) ผ่าน
  • Text ที่ไม่ใช่ path ใน repo ไม่ถูกทำเป็นลิงก์ ผ่าน

Markdown renderer

Technical

เอกสารใน docs/ แสดงครบเหมือนบน GitLab

  • Pipe table รวม escaped pipe และ code ในช่อง ผ่าน
  • Heading ID แบบ GitHub รองรับภาษาไทย ผ่าน
  • ยังตัด <script>, javascript: และ HTML tag ออก ผ่าน

Regression (E2E)

BA และ Technical

flow เดิมยังทำงานหลังเปลี่ยน

  • Live update: browser เห็น task count เปลี่ยนเองโดยไม่ reload ผ่าน
  • Theme: Light / Dark / System ผ่าน 5 กรณี ผ่าน
  • Review form: Reject + Checklist + Save ผ่าน 7 checks บนข้อมูลสำเนา ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
go test -count=1 -v ./... ; node e2e/{live,theme,review}-check.mjs ; viewer check
ผลจากเครื่องมือทดสอบ
ผ่าน 43, ไม่ผ่าน 0, ข้าม 0 ใช้เวลา 0.3s (go test) + ~40s (E2E)
หมายเหตุ
go test: 25 ผล (19 test + 6 subtest). E2E: live 1, theme 5, review form 7, viewer 5 checks
ผ่าน

Review form: Approve / Reject / Hold

30 ต.ค. 2569, ผ่าน 14 จาก 14 ข้อ

ตรวจ Review form ที่ให้กรอกผลรีวิวแล้วกด Save ได้จากหน้าเว็บ: บันทึกลง milestones.json ถูกต้อง, กัน CSRF และไม่ทับข้อความที่กำลังพิมพ์ตอนมี Live update ผ่านทุกข้อ

3 หัวข้อที่ตรวจ

Data integrity (milestones.json)

Technical

Save แล้วเปลี่ยนเฉพาะ field ที่เกี่ยวข้อง diff ใน git อ่านง่าย

  • Ordered JSON round-trip: อ่านแล้วเขียนกลับได้ไฟล์เหมือนเดิมทุก byteทดสอบกับไฟล์ข้อมูลจริงทั้ง 4 ไฟล์ ผ่าน
  • Field อื่นและลำดับ key ไม่เปลี่ยน ภาษาไทยและ <b> ไม่ถูก escape ผ่าน
  • Atomic write: เขียนไฟล์ชั่วคราวแล้ว rename ไม่มีไฟล์ครึ่ง ๆ ผ่าน

Security

Technical

เปิดผ่าน Tailscale แล้ว ต้องกันการส่งฟอร์มจากเว็บอื่น

  • CSRF: POST จาก Origin อื่นได้ 403 ผ่าน
  • POST ที่ไม่มี Origin และ Referer ได้ 403 ผ่าน
  • Request ที่ถูกปฏิเสธไม่แก้ไฟล์ข้อมูล ผ่าน
  • Task ที่ไม่มีจริงได้ 404 ผ่าน
  • Form size limit 64 KB และ Decision ไม่เกิน 10,000 ตัวอักษร ผ่าน

Browser (E2E)

BA และ Technical

ทดสอบใน headless Chrome กับข้อมูลชุดสำเนา ไม่แตะข้อมูลจริง

  • Live update ไม่ทับข้อความที่กำลังพิมพ์ในฟอร์ม ผ่าน
  • เลือก Reject, ติ๊ก Checklist, กรอกชื่อ แล้ว Save ได้ ผ่าน
  • Redirect ไป tab Rejected พร้อม notice ผ่าน
  • Decision แสดงผลเป็น Markdown ผ่าน
  • ไฟล์ข้อมูลบันทึกผลและชื่อผู้รีวิว ผ่าน
  • Browser จำชื่อผู้รีวิวไว้ใช้ครั้งต่อไป ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
go test -count=1 -v ./... ; node e2e/review-check.mjs <chrome> http://localhost:8098 <copy>/milestones.json T-201
ผลจากเครื่องมือทดสอบ
ผ่าน 29, ไม่ผ่าน 0, ข้าม 0 ใช้เวลา 0.3s (go test) + 12s (E2E)
หมายเหตุ
go test: 22 ผล (16 test + 6 subtest), E2E review form: 7 checks บน server แยกที่ port 8098 กับข้อมูลสำเนา ข้อมูลจริงไม่ถูกแก้
ผ่าน

Tracker รอบ 2: หน้าย่อย, Checkpoint, Test แบบจัดกลุ่ม, Review tabs

30 ต.ค. 2569, ผ่าน 17 จาก 17 ข้อ

ตรวจว่าข้อมูลงานถูกต้อง หน้าเว็บทุกหน้าเปิดได้ การรีวิวแยกตามสถานะ และการอัปเดตสดยังทำงาน หลังเพิ่มหน้าย่อย Milestone / Epic / Task, ประวัติ Checkpoint จาก Agent, หน้าผลทดสอบแบบจัดกลุ่ม และ tab การรีวิว ผ่านทุกข้อ

5 หัวข้อที่ตรวจ

Pages & Routing

BA และ Technical

ทุกหน้าเปิดได้ และไปถึงรายละเอียดของงานได้ทุกระดับ

  • ทุก page ได้ HTTP 200 จากข้อมูลจริงทดสอบกับ server ที่รันอยู่ด้วย 11 หน้า ได้ 200 ทุกหน้า ผ่าน
  • Milestone / Epic / Task page มี breadcrumb ผ่าน
  • Multi-milestone: sidebar แสดงทุก milestone, epic code เป็น E1.x ผ่าน
  • URL ที่ไม่มีจริงได้ 404milestone / epic / task ที่ไม่มี และ epic ที่อยู่ผิด milestone ผ่าน

Test results view (BA / Technical)

BA และ Technical

แต่ละฝ่ายเลือกดูเฉพาะหัวข้อที่เกี่ยวกับงานของตัวเองได้

  • Filter BA / Technical แสดง group และ count ถูกต้อง ผ่าน
  • มี case fail แล้ว run เป็น "ไม่ผ่าน" ผ่าน

Markdown sanitize

Technical

ข้อความจากไฟล์ข้อมูลต้องแสดงสวยงาม แต่ฝังสคริปต์หรือ HTML ไม่ได้

  • Render bold / italic / code / link / list ถูกต้อง ผ่าน
  • Sanitize: ตัด <script>, javascript: link และ HTML tag ผ่าน
  • ข้อความใน code span ไม่ถูก format ซ้ำ ผ่าน

Live update (SSE)

Technical

หน้าที่เปิดค้างไว้ต้องเปลี่ยนเองเมื่อข้อมูลเปลี่ยน

  • File watcher: แก้ไฟล์แล้ว reload และ broadcast ผ่าน
  • SSE /events ส่ง hello แล้ว update ผ่าน
  • E2E: browser เห็น task count เปลี่ยนเองโดยไม่ reload27 → 28 ใน headless Chrome แล้วคืนไฟล์ข้อมูลเหมือนเดิม ผ่าน

Theme (Light / Dark / System)

BA และ Technical

เลือกธีมได้และจำค่าที่เลือก

  • ระบบตั้งเป็นโหมดมืด + เลือก "ตามระบบ" ได้ธีมมืด ผ่าน
  • ระบบตั้งเป็นโหมดสว่าง + เลือก "ตามระบบ" ได้ธีมสว่าง ผ่าน
  • กด "มืด" แล้วเปลี่ยนเป็นธีมมืดทันที ผ่าน
  • reload แล้วยังเป็นธีมมืด ผ่าน
  • กลับไป "ตามระบบ" แล้วลบค่าที่จำไว้ ผ่าน
สำหรับ Technical: คำสั่งและผลดิบ
คำสั่ง
go test -count=1 -v ./... ; node e2e/live-check.mjs ; node e2e/theme-check.mjs
ผลจากเครื่องมือทดสอบ
ผ่าน 25, ไม่ผ่าน 0, ข้าม 0 ใช้เวลา 0.5s (go test) + 15s (e2e)
หมายเหตุ
go test: 19 ผล (13 test + 6 subtest), e2e อัปเดตสด 1 ชุด, e2e ธีม 5 กรณี และตรวจ 11 หน้าบน server ที่รันอยู่