MVP 10 use case — Walk-through test plan
MVP 10 use case — Walk-through test plan
Test plan thực tế chạy trên app build cuối. Mỗi case ghi:
- Steps (preconditions + actions)
- Expected outcome
- Failure mode + acceptable workaround
Pass criteria MVP: 8/10 case work end-to-end với TV thật + Home Assistant.
Preconditions
- App XTalk cài (iOS hoặc Android)
- TV Sony BRAVIA 2015 (hoặc Android TV khác) cùng Wi-Fi
- (Optional) HA instance ở
http://<lan-ip>:8123với Long-Lived token - (Optional) Đèn/AC đã add HA, expose qua app pair flow
- Server local (Cloudflare tunnel) running + OpenRouter API key set
D1 — “Good morning” (sáng dậy)
Test text: “anh chào buổi sáng” hoặc “good morning”
Steps:
- Mở app, Chat tab
- Gõ “anh chào buổi sáng”
Expected:
- LLM emit ≥ 2 actions trong cùng response (welcome scene)
- Một action
power_onTV - Một action
set_brightnessđèn (vd 70%) - Speech: “Chào buổi sáng anh! Đã bật TV và đèn.”
Failure mode: Nếu manifest không có scene → LLM fallback unknown.
Workaround: tạo manual scene HA trước.
D4 — TV sleep timer
Test text: “đặt sleep timer 30 phút”
Expected:
- LLM hiện tại trả
fallback: out_of_scopevì hẹn giờ chưa support - Speech: “Chức năng hẹn giờ sẽ có ở bản sau”
Status: ⚠️ Defer P2 (cần background scheduler client). Acceptable beta: ❌ — đánh dấu known issue.
D5 — Welcome home scene
Test text: “anh về rồi”
Steps:
- Pair TV + ít nhất 1 đèn HA
- Gõ “anh về rồi”
Expected:
- 3 actions: power_on TV + set_brightness 30% đèn ấm + set_temperature 25°C AC
- Speech: “Chào mừng anh về!”
Failure mode: thiếu device → adapt với devices có.
D7 — Good night
Test text: “chúc ngủ ngon”
Expected:
- 2-3 actions: power_off TV + turn_off đèn + AC chế độ ngủ
- Speech: “Chúc anh ngủ ngon!”
F2 — Đổi kênh TV bằng tên VN
Test text: “bật VTV1” / “chuyển kênh HTV7” / “ON Sports”
Expected:
- Single action:
tune_channel { channel: "VTV1" } - Client executor map “VTV1” → kênh số 1 → emit KEYCODE_1
- TV chuyển kênh 1
- Speech: “Đã chuyển sang VTV1”
Note: TV phải đang ở chế độ live TV (không phải streaming app).
F3 — Bé ngủ — quiet mode
Test text: “bé đang ngủ” hoặc “im lặng đi”
Expected:
- LLM emit
muteTV + (optional)set_brightness 10%đèn - Speech: “Đã chuyển quiet mode, đèn dịu lại”
F5 — Bà nghe cải lương qua YouTube TV
Test text: “bật cải lương cho bà”
Expected:
- Single action:
launch_content { query: "cải lương", app: "youtube" } - Client executor → HOME → launch YouTube search URL → DPAD_DOWN → CENTER → auto-play
- Speech: “Đã mở cải lương trên YouTube”
Status: ✅ Verified working trên Sony BRAVIA.
VN1 — Channel VN bằng tên kênh (wow moment)
Test text: “bật ON Sports đi” / “FPT Play đâu”
Expected:
tune_channel { channel: "ON Sports" }hoặclaunch_app { app: "fpt_play" }- TV chuyển kênh / mở app
Note: ON Sports kênh số 91 trên VTVCab. FPT Play app deeplink fptplay.vn.
W1 — Focus mode (WFH)
Test text: “vào chế độ tập trung” / “focus mode”
Expected:
- TV mute hoặc power_off (defaults).
- Đèn ấm 40% (warm white)
- Không có notification → app set DND mode (defer P2)
- Speech: “Đã vào focus mode”
S5 — Đèn ấm + nhạc khi có khách
Test text: “có khách đến” / “scene tiếp khách”
Expected:
- Đèn set warm 60%
- TV launch Spotify hoặc YouTube nhạc nhẹ
- Speech: “Đã setup phòng tiếp khách”
Walk-through procedure
- Mở app, ghi log toàn bộ test session
- Với mỗi case:
- Capture screenshot trước + sau khi tap Send
- Ghi response time (chat bubble appear)
- Ghi action result (✓/✗ cho từng action)
- Quan sát TV/đèn có thay đổi không
- Tally: pass / fail / partial
- Pass criteria: 8/10
Known issues acceptable cho beta
- D4 Sleep timer — defer P2
- W1 DND mode — defer P2 (cần native API iOS/Android background)
- D1/D5 multi-action scenes — phụ thuộc manifest có đủ devices
- ATV
power_onkhông bật được TV nếu TV tắt Quick Start mode
Post-test
Sau mỗi case, paste debug log (long-press chat bubble → “Copy full debug”) vào issue tracker để track LLM accuracy + executor success rate.
Anh chạy walk-through này 1 lần/tuần trong P1 beta, gửi summary qua email xuyenthanhngo@gmail.com.