前面介紹了測試用例的規(guī)范,那么要如何設(shè)計一份高質(zhì)量的測試用例呢骚灸?設(shè)計用例時又要怎么去思考,才能保證不會遺漏測試點呢软瞎?下面我給大家介紹一套方法逢唤,或者說是思考的方向拉讯,這套方法基本上適用于任何功能模塊涤浇,大家設(shè)計用例的時候,只要按照這個方法去思考魔慷,基本上可以規(guī)避90%以上的問題只锭,其它的就要靠自己以及整個團(tuán)隊的實際項目經(jīng)驗了。
一院尔、用例設(shè)計的方法
用例設(shè)計的方法其實很簡單蜻展,只要明確自己是測什么一切即可了然于胸,信手拈來邀摆。
如果我們脫離某個具體的游戲功能來思考的話纵顾,測試實際上面對的是一堆代碼數(shù)據(jù),所有的測試工作其實是在對這堆數(shù)據(jù)進(jìn)行測試栋盹。
測試員一般不需要搞清楚技術(shù)到底是怎么將這些數(shù)據(jù)加工成一個可視化施逾、可操作的游戲的,但是需要明白一個底層的邏輯例获,那就是要將數(shù)據(jù)加工成游戲汉额,首先得把這些數(shù)據(jù)加工成一個個的數(shù)據(jù)塊,比如玩家的昵稱就是一個數(shù)據(jù)塊榨汤,而這些數(shù)據(jù)塊通常的術(shù)語就叫做“對象”蠕搜,決定對象特性的東西叫做屬性,比如玩家昵稱的長度收壕、不同的詞語構(gòu)成等妓灌。而玩家操作就是改變某個對象的某條屬性,或者使該對象與其它對象發(fā)生交互蜜宪,從而產(chǎn)生一系列的變化旬渠,另一方面講只要游戲在運行,其本身就是某些對象之間不停的在發(fā)生交互端壳。還有告丢,對象與對象之間的交互一定有一個大的前提條件那就是支撐其運行的硬件設(shè)備,比如電腦、手機(jī)等岖免。最后所有的交互變化都有同一個衡量尺度岳颇,那就是時間。
所以在測試數(shù)據(jù)的基礎(chǔ)上我們又可以上升一個更容易理解和操作的層面颅湘,那就是對游戲中各種“對象”的測試话侧,這些對象可以是一個按鈕、一個界面闯参、一條屬性值等等瞻鹏。
有了以上這些最基礎(chǔ)的底層邏輯分析,我們就可以總結(jié)出最基本的四個角度去設(shè)計一個具體功能的測試用例鹿寨,這四個角度就是對象新博、過程、環(huán)境脚草、時間赫悄。下面我用一個具體的小例子說明一下這四個角度分別都要測試那些內(nèi)容。
需求舉例:假設(shè)游戲中的郵件內(nèi)有個領(lǐng)取附件獎勵的按鈕其功能如下:
1馏慨、只有郵件有附件的時候才展示領(lǐng)取按鈕
2埂淮、領(lǐng)取附件后按鈕消失
針對這個簡單功能,我畫個流程圖如圖1-1写隶。
接下來我們從上面提到的四個角度去分析
1倔撞、對象
對象即“領(lǐng)取”按鈕,我們遇到的第一個測試問題很可能就是“如何測試一個按鈕慕趴?”回想我們的回答可能是痪蝇,看它的大小尺寸、顏色秩贰、點擊效果霹俺、點擊音效等等,仔細(xì)分析這些答案其實它們都有個共同點毒费,就是我們說的這些點都是表現(xiàn)層面的丙唧,沒錯,當(dāng)我們從對象的角度去構(gòu)思測試點的時候其實考慮的就是它表現(xiàn)層面應(yīng)該是個什么樣子觅玻。
2想际、過程
過程即對象發(fā)生變化的過程,上面的郵件領(lǐng)取按鈕有兩個明顯的變化過程溪厘,從無到有再到無胡本,與之對應(yīng)的是三個明顯的對象在不同狀態(tài)下的表現(xiàn):無→有→無,那么從過程的角度測試其實就是驗證以下兩方面的內(nèi)容:
促使對象發(fā)生變化的原因或者說條件正不正確畸悬;
對象發(fā)生變化后的表現(xiàn)正不正確侧甫。
而為了測試這兩點我們就要去設(shè)計測試條件,比如我們要給測試帳分別發(fā)一封帶附件和一封不帶附件的郵件來測試按鈕是否正確顯示的判斷條件,而此處其實是通過驗證按鈕對象從無狀態(tài)到有狀態(tài)的具體表現(xiàn)來驗證了它的判斷條件是否正確披粟≈涠停看到這里其實我們已經(jīng)發(fā)現(xiàn)了不管測試什么,其實最終都要落到對象的特定狀態(tài)表現(xiàn)上來守屉,也就是我們能直觀觀察到的層面惑艇,我們不用關(guān)心它這個條件在代碼上到底是怎么寫的,我們只需要設(shè)定特定的條件然后去操作觀察實際表現(xiàn)結(jié)果即可拇泛,這其實就是所謂的“黑盒測試”,而黑盒測試最關(guān)鍵的地方就是條件設(shè)計的合理性滨巴。
這里要額外說一下網(wǎng)絡(luò)游戲的對象變化過程,因為網(wǎng)絡(luò)游戲的數(shù)據(jù)存儲是放在數(shù)據(jù)庫的俺叭,所以這里的過程就要多驗證數(shù)據(jù)是否正常存入數(shù)據(jù)庫的過程恭取。比如一些游戲領(lǐng)取到郵件獎勵后下線等10分鐘再上線測試獎勵內(nèi)容是否還在,其實就是在測試玩家數(shù)據(jù)是否正常入庫绪颖,而數(shù)據(jù)的入庫條件就是先放在緩存里10分鐘后再寫入數(shù)據(jù)庫中秽荤。
3甜奄、環(huán)境
上面說了對象發(fā)生變化的過程柠横,下面要說的是對象是在什么樣的環(huán)境下發(fā)生變化的,這里的環(huán)境總的來說分為以下三個方面:
游戲內(nèi)環(huán)境:游戲內(nèi)對象發(fā)生變化的場景等课兄;
網(wǎng)絡(luò)環(huán)境:如果是網(wǎng)絡(luò)游戲則需要考慮牍氛;
軟硬件設(shè)備支撐環(huán)境:游戲運行的軟件環(huán)境比如系統(tǒng)版本,硬件設(shè)備比如電腦烟阐、手機(jī)等搬俊。
先說游戲環(huán)境,這里又分為服務(wù)器環(huán)境和客戶端環(huán)境蜒茄,很多復(fù)雜的網(wǎng)絡(luò)游戲往往不會只有一個服務(wù)器進(jìn)程唉擂,它很可能有登錄服、游戲服檀葛、聊天服等等玩祟,而測試要測的就是當(dāng)一個對象發(fā)生變化的時候,我們要保證它在每一個服務(wù)器上都能正常發(fā)生變化屿聋,同時發(fā)生變化切換服務(wù)器進(jìn)程后它的表現(xiàn)依然是正常的空扎,還有當(dāng)服務(wù)器發(fā)生宕機(jī)等異常時依然能保證數(shù)據(jù)的正常,比如就上面的附件領(lǐng)取按鈕來說润讥,對服務(wù)器環(huán)境來說就要測試在游戲服转锈、聊天服上的具體領(lǐng)取表現(xiàn)。而對客戶端來說要考慮的就比較繁雜一些楚殿,比如UI沖突撮慨、不同界面場景下的操作沖突等,這個就要結(jié)合具體游戲和自身經(jīng)驗去構(gòu)思。
再說網(wǎng)絡(luò)環(huán)境砌溺,從這個角度考慮其實誕生了一個專有名詞叫做“弱網(wǎng)測試”其本質(zhì)其實就是測試游戲?qū)ο笤谌蹙W(wǎng)環(huán)境下的變化過程正不正常菇曲,弱網(wǎng)測試的具體方法后面會詳細(xì)說明。
最后考慮硬件環(huán)境時也有一些專有名詞比如客戶端兼容測試(手游在不同型號抚吠、系統(tǒng)版本的手機(jī)上運行)常潮,UI適配(手游在不同UI尺寸的手機(jī)上運行)等,還有硬件設(shè)備上游戲與其它軟件的兼容測試楷力,比如輸入法兼容測試等等喊式,對于這些測試通常都是很簡單的在對應(yīng)的環(huán)境上運行游戲查看有無異常即可。此處的關(guān)鍵是能經(jīng)常關(guān)注行業(yè)動態(tài)萧朝,對可能存在的影響游戲運行的軟硬件因素做出正確判斷岔留,制定合適的測試策略即可。
4检柬、時間
對于所有變化的對象來說献联,時間都是一個隱形的條件,比如上面的郵件附件一直不領(lǐng)取何址,按鈕就一直顯示里逆,這里“一直”就是時間的概念,不過通常我們不用刻意去考慮這個影響因素用爪,但部分功能會非常依賴時間做設(shè)計原押,比如某活動在固定的時間開啟和關(guān)閉,這里就要特別去做測試偎血。還有我們在做性能測試的時候會在某個場景持續(xù)掛機(jī)很長時間诸衔,這也是從時間的角度去做測試的結(jié)果。
5颇玷、運用過程
知道了設(shè)計測試用例的四個思考的角度笨农,對于一個實際功能具體運用時可以參考下面的說明。
1帖渠、對象谒亦,先聚焦測試對象,即要測試的對象是什么阿弃,表現(xiàn)聚焦于一個對象在某個狀態(tài)時直接呈現(xiàn)出來的視覺表現(xiàn)诊霹;
2、過程渣淳,對象的變化過程是怎樣的脾还,理清楚對象在變化過程中狀態(tài)都有哪些變化,都涉及到哪些對象入愧,涉及到的對象都有哪些狀態(tài)變化鄙漏;狀態(tài)聚焦于當(dāng)狀態(tài)發(fā)生改變時嗤谚,促使其變化的規(guī)則正不正確;
3怔蚌、環(huán)境巩步,在對象狀態(tài)變化過程中,環(huán)境變更對其可能造成的影響桦踊,環(huán)境聚焦于當(dāng)對象狀態(tài)發(fā)生改變時支撐其運行的環(huán)境如果出現(xiàn)異常會不會對對象狀態(tài)大改變有所影響椅野;
4、時間籍胯,對象變化過程是否和時間有關(guān)系竟闪,如果與時間有關(guān),通常都是當(dāng)作對象狀態(tài)改變的判定條件杖狼;
綜上炼蛤,從對象的表現(xiàn)、過程蝶涩、環(huán)境理朋、時間四個方面,根據(jù)功能需求結(jié)合實際游戲的其它功能盡可能的聯(lián)想绿聘,窮舉各種測試點嗽上,基本上可以覆蓋到大部分測試的盲區(qū)。為了更方便的記憶運用斜友,下面是總結(jié)的口訣炸裆。
記憶口訣:“面向?qū)ο罂幢憩F(xiàn)垃它,理清過程看狀態(tài)鲜屏,考慮環(huán)境出異常,時間一般當(dāng)條件国拇÷迨罚”
<完>
個人淺見,歡迎留言交流酱吝。?(^?^●)?