iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0
自我挑戰組

Robot Framework 與 Websocket 協議測試系列 第 6

待測系統構思:一個簡單的搖骰子遊戲

  • 分享至 

  • xImage
  •  

開場

恭喜各位忠實讀者,撐過各項基礎技術如 Robot Framework、WebSocket、Protobuf 的介紹環節,接著就是待測系統的部分,這是一個為了喝杯牛奶養了一條牛的故事。

遊戲主流程

為了簡化整體程式碼架構,我們設計一個最簡單的示範用遊戲,叫做「丟一顆骰子」猜結果。
押中最後開獎數字即可獲得六倍回報,身為佛心且熱心公益的莊家,完全不考慮莊家抽成 (運營成本) 與 Jackpot 獎池抽水積累的部分。

整體的流程就是:

  1. 玩家端連線登入
  2. 等待伺服器通知開局
  3. 玩家下注並發送完成信號
  4. 莊家開獎,決定中獎號碼
  5. 莊家計算派彩並通知玩家更新帳號餘額
  6. 回到步驟一,等待下一次開局

贏分規則與試算

一個骰子有六面,骰一次有 1~6 六種結果,每一個結果機率剛好是 1/6
在不考慮其他因素的簡化版本,押重開獎數字就給六倍,結束

遊戲服務內部樣貌

實際上,伺服器內部展開會比上述複雜得多,必須包含以下組件:

  1. WebSocket 的底層連線處理,主要負責底層 I/O 通訊的部分
  2. Protobuf 協議訊息的編碼解碼或者稱序列化與反序列化處理
  3. 遊戲核心邏輯引擎,主要處理遊戲邏輯與運算
  4. 狀態機,負責協調整體服務內部狀態
  5. 使用者帳務管理,負責管理目前使用者的登入 session 跟帳戶餘額等
  6. 遊戲桌/遊戲房間管理,負責各個遊戲房間的目前運作狀態

這跟測試沒有直接關係,不過若以白盒或者灰盒測試的角度來看,懂點內部實作更有利於針對性設計檢驗的測試項目

客戶端的流程

對應的客戶端跟上述差不多,不過玩家端只需要以下三部分:

  1. WebSocket 連線
  2. Protobuf 協議處理
  3. 遊戲邏輯
    剩下的其他部分,大多是等伺服器通知,不需處理。

SDD 規格驅動開發

有了上述基本少設計之後,套用 AI 時代最紅的 SDD 規格驅動開發,亦即有規格就有 AI 代理會幫忙最終成果
步驟如下:

  1. 建立一份空白內容的 Readme.md
  2. 大略描述需求規格
  3. 開啟喜歡的 Vibe Coding 助手如 Claude Code 或 OpenAI Codex CLI
  4. 請它對於大略版本 README.md 做補全
  5. 人工審閱並給予修改意見
  6. 重複步驟 4-5 直到大致規格符合需求為止
  7. 這時候我們就有了 PRD 專案需求文件
  8. 然後請它基於 README.md 這份 PRD 長出對應的技術規格書
  9. 這裡就是 AI 可以全力發揮的地方,可以把各種細部規格都規畫出來
  10. AI 規劃一個版本後自動存檔
  11. 人工一樣做一次審閱,給予修改意見
  12. 重複步驟 10-11 直到滿意為止,或是 token 用完強制 CD
  13. 到這跟 AI 就協作完成詳細技術規格書 functional_spec.md 跟 產品高階規格 README.md

小結語與下一步

有了詳細技術規格書 functional_spec.md 跟產品高階規格 README.md,今日目標就達成了
接著我們會花幾篇把這頭牛從概念、需求文件變成有血有肉真的可以執行的伺服器程式碼,敬請期待!


上一篇
訊息協議介紹: Protobuf
下一篇
待測系統的網路封包標頭解析
系列文
Robot Framework 與 Websocket 協議測試10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言