前端測試計劃
具體測試項如下:
- 注冊測試
- 登入測試
- 忘記密碼測試
- 一次登入後自動登入測試
- 登出測試
- 編輯資料測試
- 檢視好友測試
- 搜尋好友測試
- 添加好友測試
- 擷取目前正在遊戲的房間測試
- 建立房間測試
- 加入房間測試
- 鎖定房間測試
- 選擇座位測試
- 房間設定測試
- 遊戲流程測試
後端測試計劃
APP中的測試主要分為兩大部分,一個是對接口的測試,一個是對遊戲流程的測試。
對接口的測試主要分為兩部分,一類是HTTP接口的測試,這類接口負責的是遊戲之外的各種功能,可以看成是靜态的,相對而言比較好測試;而另一類接口則是WebSocket接口,這類接口都是在遊戲過程中用到的,可以看成是動态的,情況也比較複雜,測試相對較困難。
而對遊戲流程的測試隻能從建立房間開始到遊戲結束為止一點點的去測試,對流程中每一步驟的各種情況都要盡量覆寫到。
由于人力物力還有時間的限制,我們隻能通過幾台手機去一點點的嘗試,一步一步的按照遊戲流程往前推進,不斷的進行測試與程式修複。
測試過程及結果
測試過程分兩部分:一台機器測試和多台機器測試。
一台機器可以完成的測試有:注冊、登入、忘記密碼、自動登入、登出、編輯資料、檢視好友、搜尋并添加好友、擷取目前正在遊戲的房間、建立房間等。
需要多台機器完成的測試有:加入房間、鎖定房間、選擇座位、房間設定、遊戲流程。
我們對前者進行了一一測試,發現了兩個問題,在下面給出bug記錄及解決過程。
對後者進行了多台機器多種角色測試。
前端Bug記錄
- 無法進入搜尋好友界面。解決方案:導入未導入的包,并更換檔案,成功修複,但錯誤原因尚不明确。
- 若一名玩家建立了房間但網絡出現故障或強制退出APP等情況,這個房間就會成為死房間,無法再加入。解決方案:當一名玩家重新登入時,檢測是否存在他之前建立的房間,若有,解散該房間,釋放該房間的玩家。
- 鎖定房間時,經常會出現伺服器響應慢的情況。解決方案:将伺服器5s響應一次改為1s響應一次。
- 進入遊戲流程時,經常會出現有玩家“離奇”死亡。解決方案:鎖定房間時沒有初始化好玩家生存表的值。
- 玩家選擇好座位後重新選擇時,會同時占據兩個座位。解決方案:重新選擇時清除原座位資訊。
- 遊戲過程中不該使用技能的狀态不能下一步。解決方案:對下一步做限制,若不該使用技能,則可以直接下一步。
後端Bug記錄
(1) 通信資料類型錯誤,為了統一,所有的通信資料都是轉換為字元串之後再轉為json進行傳遞的,前端和後端在進行通信時都會忘記将某些非字元串資料轉為字元串,或者處理時忘了将字元串轉為其他類型進行處理。
(2) 變量未初始化使用。因為在伺服器中儲存着一些遊戲中經常會用到的一些資料,而這些資料有可能沒有初始化就使用。
(3) 多次登入未處理。
(4) 房間關閉和退出後未将之前的資料删掉導緻錯誤。
(5) 各種下标溢出錯誤,比如投票時判斷平票時需要用到兩個結果,可是非平票情況下隻有一個結果,就會出現下标溢出錯誤。
場景測試
APP為所有使用者提供了統一的功能,使用者的使用場景包括如下幾點:
- 想玩狼人殺但沒有人會或者沒有人想扮演法官的玩家
- 想玩狼人殺但沒有牌的玩家
- 想玩狼人殺且想讓狼人在夜間交流更友善的玩家
- 想玩狼人殺但經常忘記場上形勢的玩家
- 想玩狼人但找不到人來玩的玩家
- 下載下傳下來一個人看看APP功能的玩家
- 下載下傳下來隻是看看的吃瓜群衆
綜合上述使用者場景,我們需要進行1人~多人、不同種角色組合的遊戲測試,以滿足使用者的需求。
測試矩陣
遊戲人數 | 測試平台 | 測試機型 | 狼人人數 | 預言家 | 女巫 | 守衛 | 丘比特 | 遊戲局數 |
---|---|---|---|---|---|---|---|---|
1人 | IOS | IPhone6s | 是 | 1局 | ||||
…… | Android | IPhone5 | 2人 | 否 | 2局 | |||
8人 | IPhone4s | 3人 | 3局 | |||||
小米note | 4人 | |||||||
樂視1s | ||||||||
紅米 |
伺服器:Windows系統, 1核1G記憶體,Django架構,MySQL資料庫
性能測試與壓力測試
裝置所限,未能進行高強度的壓力測試。至于性能方面,因為隻有測試的幾台裝置,是以速度還是很快的。
出口條件
(1) 新增功能都已實作。
(2) 軟體能夠正常運作。
(3) 伺服器能夠穩定運作。
(4)測試矩陣中的典型情況得到測試并無bug。