摘要:今天就說說移動(dòng)測(cè)試中最重要的兩個(gè)方向。自動(dòng)化測(cè)試完全不同于手游自動(dòng)化測(cè)試手機(jī)和手游的開發(fā)技術(shù)不同,這導(dǎo)致了兩者的自動(dòng)化測(cè)試技術(shù)是截然不同的。手游和的第二個(gè)玩法不同在于探索性。
隨著智能設(shè)備的普及和移動(dòng)互聯(lián)網(wǎng)的興起,各家互聯(lián)網(wǎng)巨頭紛紛在往移動(dòng)端布局和轉(zhuǎn)型,同時(shí)初創(chuàng)的移動(dòng)互聯(lián)網(wǎng)公司也都盯著這個(gè)市場(chǎng)希望分一杯羹。在這個(gè)大環(huán)境下,互聯(lián)網(wǎng)的重心已經(jīng)慢慢從Web端轉(zhuǎn)向了移動(dòng)端,而移動(dòng)端的軟件測(cè)試也變得越來越重要了。今天就說說移動(dòng)測(cè)試中最重要的兩個(gè)方向。
APP自動(dòng)化測(cè)試完全不同于手游自動(dòng)化測(cè)試
手機(jī)App和手游的開發(fā)技術(shù)不同,這導(dǎo)致了兩者的自動(dòng)化測(cè)試技術(shù)是截然不同的。以安卓開發(fā)舉例,手機(jī)App一般使用Android SDK開發(fā),使用Java編寫。通過Android提供的服務(wù),我們可以獲取App當(dāng)前窗口的視圖信息,進(jìn)而查找和操作按鈕等控件,以完成自動(dòng)化測(cè)試,如Uiautomator。這個(gè)過程是標(biāo)準(zhǔn)化的,從技術(shù)上來說沒有任何難度,因此各個(gè)公司各個(gè)App自動(dòng)化測(cè)試的方法都大同小異。
但手游的開發(fā)卻不是這樣。手游一般使用引擎開發(fā),現(xiàn)在著名的有cocos2d和unity3d。兩者都是使用引擎自帶的語(yǔ)言進(jìn)行開發(fā),主流的分別是c++和c#,雖然在開發(fā)過程中也有按鈕等控件的概念。手游測(cè)試的自動(dòng)化很難實(shí)現(xiàn),現(xiàn)在也TestBird這種專門做測(cè)試公司能深入游戲引擎來進(jìn)行自動(dòng)化測(cè)試。
接下來具體說說不同之處
玩法不同導(dǎo)致功能測(cè)試更復(fù)雜
隨機(jī)性。游戲的場(chǎng)景和過程是動(dòng)態(tài)并且伴有隨機(jī)要素的,這體現(xiàn)在兩點(diǎn)。
1、你重復(fù)玩一個(gè)游戲關(guān)卡,很可能兩次出現(xiàn)敵人以及游戲過程是不同的。
2、你玩一個(gè)手游的時(shí)候不進(jìn)行操作,敵人和周圍的場(chǎng)景也在時(shí)刻發(fā)生改變。
這兩點(diǎn)對(duì)自動(dòng)化測(cè)試帶來了極大的挑戰(zhàn),如果測(cè)試腳本寫的不夠靈活,很容易導(dǎo)致上一次運(yùn)行成功的腳本這一次就無(wú)法運(yùn)行了。我們需要在測(cè)試腳本里適當(dāng)?shù)募尤胩剿骱妥赃m應(yīng)的功能。
App測(cè)試就沒有這個(gè)問題,大部分App的使用方式都是靜態(tài)且可以重復(fù)的。因此自動(dòng)化測(cè)試可以完全按照測(cè)試腳本進(jìn)行編寫并執(zhí)行。
探索性。手游和App的第二個(gè)玩法不同在于探索性。App一般都是功能性的,好的App需要把它的功能簡(jiǎn)單明了地告訴用戶。而游戲重在娛樂性,需要給玩家一定的探索要素。因此在做手游測(cè)試的時(shí)候,我們需要測(cè)試游戲的用戶幫助說明是否清晰,同時(shí)后續(xù)的游玩和探索過程和前面給出的說明之間是否有合理聯(lián)系,規(guī)則的指示是否有足夠的提示性。
難度測(cè)試。App希望做的越簡(jiǎn)單,用戶的使用成本越低越好。而手游是有難度設(shè)置的。我們?cè)谧鍪钟喂δ軠y(cè)試的時(shí)候,會(huì)把資源和等級(jí)調(diào)到最大以方便后期功能的執(zhí)行,但當(dāng)所有的功能測(cè)試都做完后,我們需要把自己的資源初始化,以"回歸"一個(gè)普通玩家的水平,通過普通玩家的視角來查看游戲的難度提升是否合理,資源分配是否均勻。
關(guān)卡測(cè)試。App的使用是功能性的,一個(gè)功能的重復(fù)使用總是一樣的。而手游具有關(guān)卡的概念,即便是同一種玩法,關(guān)卡和關(guān)卡之間也有細(xì)微的差別,前面的關(guān)卡測(cè)試正確了,并不表示后面的關(guān)卡一定是正確的。作者曾經(jīng)碰到過一個(gè)手游的Bug,當(dāng)游戲進(jìn)行到某個(gè)后期關(guān)卡時(shí),游戲一定會(huì)崩潰。而導(dǎo)致這個(gè)Bug的原因也很簡(jiǎn)單:這個(gè)關(guān)卡的圖片資源在打包客戶端的時(shí)候沒有加入。因此當(dāng)我們玩前面的關(guān)卡時(shí)并不會(huì)觸發(fā)這個(gè)Bug,但一到后面的關(guān)卡就出錯(cuò)了。
這類Bug雖然原因簡(jiǎn)單,但確實(shí)非常難測(cè)試到。因?yàn)楦鱾€(gè)關(guān)卡的玩法雖然都一致,但一個(gè)游戲的關(guān)卡數(shù)卻是非常多。如果我們要遍歷所有的關(guān)卡走一遍,那耗費(fèi)的人力成本將是非常大的。對(duì)于這類重復(fù)性的關(guān)卡測(cè)試,建議使用自動(dòng)化腳本進(jìn)行遍歷。
PvP測(cè)試。App的使用普遍是單人的,而手游往往有玩家對(duì)戰(zhàn)的PvP模式,好的手游更是具有實(shí)時(shí)的PvP模式。由于兩個(gè)玩家實(shí)時(shí)進(jìn)行游戲合作或者對(duì)戰(zhàn),因此網(wǎng)絡(luò)延遲的測(cè)試就變得非常關(guān)鍵了。我們?cè)跍y(cè)試中需要模擬不同的網(wǎng)絡(luò)對(duì)游戲延遲的影響,觀察兩個(gè)玩家的狀態(tài)和數(shù)據(jù)是否一致,同時(shí)體驗(yàn)網(wǎng)絡(luò)延遲對(duì)游戲手感的影響,這在傳統(tǒng)的App測(cè)試中是完全不需要的。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/8757.html
摘要:導(dǎo)語(yǔ)幾個(gè)月前,網(wǎng)易易盾正式推出加固。易盾最新一代的加固方案,以獨(dú)有的靜態(tài)保護(hù)技術(shù),使得應(yīng)用程序中的代碼出現(xiàn)下沉,達(dá)到不可逆的效果,兼顧冷熱啟動(dòng)時(shí)間內(nèi)存占用率體積等重要指標(biāo),同時(shí)保障用戶加固的靈活性,可以免費(fèi)試用。 導(dǎo)語(yǔ):幾個(gè)月前,網(wǎng)易易盾正式推出Java2c加固。它以獨(dú)有的靜態(tài)保護(hù)技術(shù),使得應(yīng)用程序中的代碼出現(xiàn)下沉,達(dá)到不可逆的效果,兼顧冷熱啟動(dòng)時(shí)間、CPU、 內(nèi)存占用率、體積等重要指...
摘要:之所以能卓爾不群靠地就是一種自成一派且精悍有效的編輯器哲學(xué)當(dāng)然也是,就好像網(wǎng)游千千萬(wàn)卻唯有一覽眾山小,那靠地不是技巧與外在,而是與眾不同的世界觀。征服其實(shí)是一種領(lǐng)悟,我融入了的哲學(xué)而已。這也是好東西,它比上一個(gè)更貼近的哲學(xué)。 就在幾個(gè)小時(shí)以前,我回答了一個(gè)關(guān)于推薦開發(fā)工具的問題,很多朋友表示喜歡和鼓勵(lì),非常感謝!我也很想多寫一些細(xì)節(jié),于是便起意開一個(gè)系列來聊聊我多次提到的 Vim。 ...
摘要:歡迎使用中文文檔架構(gòu)概覽是網(wǎng)易項(xiàng)目團(tuán)隊(duì)開發(fā)的一個(gè)基于進(jìn)行開發(fā)的應(yīng)用層框架,提供了一個(gè)輕量級(jí)的容器來編寫簡(jiǎn)單可維護(hù)的。 JavaScript 可以……嘛,不就是操作一下 DOM,可以讓元素飛來飛去嗎JavaScript 是……不就是用 jQuery 讓網(wǎng)頁(yè)動(dòng)起來,頂多就是再用用 Ajax 和后端進(jìn)行一下數(shù)據(jù)交換嗎JavaScript 是一門……最討厭和鄙視這種弱類型不需要編譯的腳本語(yǔ)言...
閱讀 910·2021-09-03 10:42
閱讀 1521·2019-08-30 15:56
閱讀 1457·2019-08-29 17:27
閱讀 881·2019-08-29 15:25
閱讀 3168·2019-08-26 18:27
閱讀 2490·2019-08-26 13:41
閱讀 1898·2019-08-26 10:39
閱讀 1589·2019-08-23 18:36