背景介紹
1.某款手遊的v1.0已經發布到App Store;
2.該手遊是不支援多版本用戶端相容的,也就是說如果現在server的版本是v2.0的話,那麼當你開啟v1.0的client的時候會提示升級,否則無法進入遊戲;
3.資料庫裡面玩家的主鍵是由Device ID和Game Center ID共同決定的;
4.有兩個團隊,一個是Team Dev(dev team),一個是運營團隊(ops team);
5.用QA表示提供版本的人員,用QC表示測試版本的人員;
6.第一次安裝遊戲的時候,裝置中該遊戲的Documents檔案夾是空的,遊戲的存檔就保持在這個檔案夾中,在不卸載的情況下安裝新版本,Documents裡面的檔案還是原來的內容。
本文目的
為了拋磚引玉,因為我總感覺我後面要說的測試流程不是最佳的,如果你有更好的方案,歡迎賜教。
為了表述方便,約定如下:
1.有兩個測試環境,一個是dev team維護,一個是ops team維護,所以分別稱它們為dev-env和ops-env;
2.每個測試環境都分別有兩台機子(每台機子,可以理解為一個server,當然這裡做了簡化,真實情況可能一個server由好幾台機子組成),dev-env的兩台機子分別叫做dev-cert和dev-prod,ops-env的兩台機子叫做ops-cert和ops-prod(這個其實就是真正玩家的server);
3.client首先都是會串連prod的,當發現prod的版本號碼低於client的時候,才會串連到cert,這裡的版本號碼是指組建號,不是在App Store上面顯示的那個版本號碼;
下面類比從v1.0升級到v2.0,在這之前所有server的版本號碼都是v1.0。
測試流程一、dev-env
1.QA部署v2.0到dev-cert,發v2.0的client給QC,QC刪除裝置上面的所有相關的舊版本,安裝v2.0;
2.這個時候,因為dev-prod是v1.0,所以現在實際串連的是dev-cert,QC做full test,大概需要一到兩天時間;
(第2步是為了單獨測試v2.0)
3.QC刪除裝置上面的v2.0,安裝v1.0,這個時候應該串連的是dev-prod,然後從資料庫中讀取存檔,並玩一會遊戲;
4.QA部署v2.0到dev-prod,這個時候,QC裝置上面的v1.0應該會提示有新的client版本,只能點擊更新按鈕轉到App Store上面遊戲的頁面,否則無法繼續玩v1.0;
5.QC在不刪除v1.0的情況下安裝v2.0,不刪除v1.0的目的是保留client原來的本地封存檔案,因為真正的玩家是不會刪除之後再安裝的,之後QC做簡單測試;
(第3、4、5步是為了測試版本升級以及存檔的讀取,QC應該分別記錄某個Game Center ID在某台裝置上面,串連某台server的情況下,所完成的遊戲進度)
6.QC刪除裝置上面的v2.0,然後重新安裝v2.0的client,這是為了測試某些玩家第一次安裝新版本的情況;
7.QA手動修改dev-prod的版本號碼到v3.0,這個時候,QC開啟v2.0的client,看是否有提示升級;
8.QC發dev-env的測試報告;
以上8步完全沒有問題之後,進入ops-env測試流程。
二、ops-env
9. QA重新做一個v2.0的client發給QC;
10. QA發v2.0的server包給ops team,ops team部署v2.0到ops-cert;
11.QC full test大概需要一天左右,這個時候因為ops-prod還是v1.0,所以實際串連的是ops-cert;
12.QC發ops-env的測試報告;
13.ops-team把v2.0的client發給Apple審核,Apple審核的時候實際上用的也是ops-cert;
14.Apple審核通過之後,ops-team release v2.0的client,同時把v2.0的server部署到ops-prod。
以上任何一步如果有問題的話,都需要從頭開始。
總結
目前估計在有4個QC的情況下,從第1步到第12步,在一切順利的情況下也需要大概3天時間左右。如果中間出現問題,那就不知道要多長時間了,所以我感覺這個流程不是很好,如果你有很好的想法,歡迎賜教。
-陳小道
個人號:iamcdz
公眾號:ichenxiaodao
文檔資訊
- 著作權聲明:自由轉載-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
- 原文網址:http://blog.csdn.net/cdztop/article/details/19100355