從軟件角度講,電子游戲本身也是一種軟件,屬于軟件的一類,因此游戲測試和軟件測試必然有其共同點,本文不詳細討論這部分,而主要討論其差異。
首先,我們從軟件的開發過程入手:
通常一個軟件的開發過程如下:
接受訂單
需求分析
設計文檔
程序設計
程序實現
集成測試
阿爾法測試
貝塔測試
軟件發布
游戲也是一種軟件,開發過程也逃不出這個框架,但是從開發的第一步開始,游戲就與一般的軟件存在了比較大的差異:
首先:通常,軟件的開發是由客戶訂單開始的,用戶是明確的,用戶的需求也是相對明確的。而游戲的開發,通常并沒有客戶訂單,用戶群的定位也是游戲策劃根據市場調研等資訊設定的,因此用戶的需求相對來說更加不明確。對于游戲來說,即使明確了用戶群,用戶的需求也是來自于游戲策劃根據間接信息分析出來的,而并非用戶的直接需求。因此,對于游戲測試來說,相對軟件測試就多了一個步驟:對需求文檔本身的測試,而一般的軟件測試是沒有這個步驟的。
對于測試來說,這一點直接影響到測試標準的制定。
通常,測試是以設計文檔為標準,檢驗軟件是否滿足用戶需求,但是對于游戲測試來說,很難說以設計文檔為標準就能夠滿足用戶的需求。
雖然,軟件測試同樣也存在類似的問題,但是并沒有嚴重到需要一個專門的針對文檔的測試過程的程度,而對于游戲來說這個步驟的重要性已經逐漸被認同。畢竟根據測試理論,越早發現bug修正的成本越低,而在文檔階段發現并修正bug顯然要比代碼實現以后進行修正的成本低得多。
其次:一般軟件開發的過程以軟件發布作為終點,而對于游戲來說,特別是網絡游戲,發布僅僅是一個開始。游戲發布后,在游戲運營過程中,開發團隊仍然需要對運營中的游戲作不斷地維護更新以及后續版本的設計開發。
運營中的維護更新和后續版本的設計是根據運營情況把握用戶的需求變化,并對變化的需求進行滿足的過程,這個開發過程往往時間周期很短,并且開發的內容與游戲原本的內容之間的關聯十分復雜和緊密,此時的游戲測試任務往往不是通常軟件測試(特別是白盒測試)的手段能夠勝任的。
另外,游戲相對于普通軟件還有一個差異:一般應用軟件的用戶使用軟件的目的目標是明確的,并且軟件會提供相應的操作手冊對用戶的行為進行指引和限制;而游戲用戶進行游戲的目的和目標往往不是很明確,并且游戲也不能像應用軟件一樣對用戶的操作作出太多的限制。因此,玩家在游戲中的行為更加不可控,這對于游戲測試員來說更是一個嚴重的挑戰,游戲測試員需要考慮到玩家可能進行的所有行為的可能性。
綜合以上幾個方面的原因,我認為游戲測試要比普通的軟件測試復雜得多。
測試的定位和意義:
游戲測試在開發中的定位是什么呢?玩游戲找bug?這顯然是錯誤的,我的理解如下:
1:協助開發人員改進產品質量,盡量多盡量早得發現產品中存在的缺陷,并協助開發人員消除缺陷,促使產品能夠更好的滿足用戶需求,并節約開發成本。
協助開發人員包括兩個方面:
A:協助設計人員完善設計
B:查找bug并協助程序員修正bug
找到bug并對bug進行定位是測試員最基本的工作之一,定位bug包括兩個方面:
A:盡量100%重現bug,找到bug出現的充分條件
B:盡量精準的定位bug,找到bug出現的充要條件
理論上所有的bug都是能夠找到其充要條件的,但是實際情況要根據項目需要,以及測試團隊和程序團隊的能力、工作量對比靈活掌握。
2:對產品進行質量評測,提供給開發團隊、運營團隊以及各級領導作為決策的參考依據之一。
我認為這是測試團隊的重要職能之一,如果忽略了這個職能,則很容易有“游戲測試就是玩游戲找bug”的錯誤認識。
原文轉自:http://www.anti-gravitydesign.com