網易游戲游戲開發(fā)工程師與游戲測試面試題_第1頁
網易游戲游戲開發(fā)工程師與游戲測試面試題_第2頁
網易游戲游戲開發(fā)工程師與游戲測試面試題_第3頁
網易游戲游戲開發(fā)工程師與游戲測試面試題_第4頁
網易游戲游戲開發(fā)工程師與游戲測試面試題_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、-作者xxxx-日期xxxx網易游戲游戲開發(fā)工程師與游戲測試面試題【精品文檔】網易游戲游戲開發(fā)工程師1.一次考試,有25人參加,有ABC三題,每人至少會做一題,在不會做A的人中,會做B的人是會做C的人的兩倍,在會做A的人中,只會做A的人比其他的少一人,不會做A的人和只會做A的人數(shù)相等,問只會做B的有幾人?解:設綠色加白色為X  紫色加白色為X/2   白色為Z   紅色為Y   藍色為Y+1所以由條件可得X+0.5X-Z+2Y+1=25     X+0.5X-Z=Y 

2、; 故3X=16+2Z 當且僅當Z=4,X=8時為整數(shù)解,故題目答案為X-Z=4人或以下三組解: Z=1,X=6;  Z=7,X=10;   Z=10,X=12;2.李氏夫婦請4對夫婦來家吃飯,已知每人不和自己和配偶握手,每人至少握手一次,不重復和人握手,李先生最后一問每人握手次數(shù)都不一樣,問李太太握手幾次.解:既然每人次數(shù)不同,就說明有1到8八種次數(shù),每人一種.初始:87  65  43  21  (00)  括號內為李氏夫婦的次數(shù) 

3、   從8看起,那個人肯定和另外的8人握手,否則沒有8次,而且他的配偶肯定是7次,否則不可能有8次握手的人.(X表示已計算的握手)第一次:X7  54  32  10  (11)第二次:XX  43  21  00  (22)第三次:XX  X3  10  00  (33)第四次:XX  XX &#

4、160;00  00  (44)所以李先生和李太太都握手了4次.3.幾何題如圖,兩圓交于AB兩點,由A作直線交于兩圓于CD,問CD何時最長?并證明.提示:相同弧段的圓周角是圓心角一半感謝影子情人提供解法答案是讓AB和CD垂直,這樣BD和CB是兩個直角三角形的斜邊提示可知道是直徑得整.4.假設一副撲克牌只有A,2,3,4,5,6六張,且每張有任意多張,沒有不同花型(即沒有桃心梅方),用PQRST表示不同的牌面,計算下列概率,并排順序PQRST,PPQRS,PPQQR,PPPQR,PPPPR,PPPPP,PPPQQ大概解法:概率里面的什么分子分母實在懶得打,

5、我還用幾次方和階乘表示了相對關系,這樣比較容易看,不要用大學的概率統(tǒng)計公式,直接用高中生想法,很容易求解.注意,每種牌的數(shù)量不限制,所以去除某種特定牌的概率是1/6,但是取出第一張任意牌的概率是6/6,同理第二張不同牌的概率是5/6,所以第一個概率是6!/65然后乘以6,因為有六種取法,C65嘛等于C61,也就是6!/64后面的也差不多,順便說一下,5張一樣的好難啊,竟然只有6/65,也就是1/1296,呵呵,要珍惜炸彈啊.然后乘以C61,也就是6/645已知二叉樹的先序和中序遍歷字符串,編程實現(xiàn)輸出后序遍歷字符串,如果沒有成功輸出Failed,最后分析時間和空間復雜度解:這是標準的ACM 2

6、255題,NOIp和NOI中也有一樣的題目,很經典的.我也提供一下網上的標準答案,懶得打了.時間復雜度是2的n次方吧我感覺是的,沒有空間消耗,除了棧的開辟消耗空間.#include <iostream>#include <string>using namespace std;void PrintPostOrder(const string & preorder, const string & inorder, int start1, int start2, int size)if(size = 1)cout << preorderstart1

7、;return;if(size = 0)return;int i = inorder.find(preorderstart1);PrintPostOrder(preorder, inorder, start1+1, start2, i-start2);PrintPostOrder(preorder, inorder, start1+1+i-start2, start2+1+i-start2, size-i+start2-1);cout << preorderstart1;int main(void)string preorder, inorder;while(cin >>

8、; preorder >> inorder)PrintPostOrder(preorder, inorder, 0, 0, preorder.size();cout << endl;游戲測試 一位游戲業(yè)HR給出了一份招聘游戲測試的題,覺得挺有趣,有必要拿來分享一下。順便讓各位看觀了解一下游戲測試是個什么活。 測試面試題程序部門按照如下需求文檔,設計了一個游戲程序: 用面向對象的思想,設計一個簡單的游戲框架。程序需求如下:1. 用命令行模式實現(xiàn),不需要界面2. 游戲世界中,存在5個房間:A、B、C、D、E。有些房間之間存在連通性(從一個房間所

9、能到達的另一個房間),而有些房間之間則不存在。具體如下:   雙向:A<->B、A<->C、C<->D、單向:D->A、D->E、E->B3. 玩家可以控制角色從一個房間走到另一個房間(敲入命令goto A,則進入A房間),每次只能走一步路徑。起始房間為A每次進入房間,需要列出下一步可進入的房間。         例如:在房間C敲入:goto D,會列出:       &#

10、160; A         E         C4. 每個房間里存在不同的NPC,NPC具有名稱,玩家進入一個房間后,需要列出該房間的所有NPC名稱。具體如下:A房間:無B房間:雜貨商、漁民C房間:武器商D房間:防具商E房間:大海龜、海貓貓5. NPC具有簡單的對話功能,敲入talk NPC名稱,則可以看到NPC所說的話。對話內容可自行設計。擴展需求1玩家擁有金錢和背包,初始金錢為100,背包中有5個格子,每個格子中可以放下一個物品

11、。初始物品為“回城符”、“小刀”擴展需求2其中的一些NPC具有交易功能,玩家可以將自己身上的物品交易給NPC以獲得金錢、或者通過身上的金錢購買物品。具體如下:雜貨商:出售 蠟燭(20)、小刀(30)、回城符(10)        漁民:     出售 魚肉(10)        武器商:出售 烏木劍(50)        防具商:出售 木盾(40)

12、        括號里的表示出售價格,同時也是收購價格。打命令“shop NPC名稱”可以列出該NPC所出售的物品和價格打命令“buy NPC名稱 物品名稱”可購買物品打命令“sell NPC名稱 物品名稱”可出售物品打命令item可以列出自己背包中的物品。背包滿的情況下,不允許再買入物品,并提示“背包滿”。閱讀文檔時間為1小時,閱讀文檔完畢后請在2小時內完成如下題目:1,  請為按照文檔畫出五個房間和他們之間的路徑和方向; 2,  按照文檔說明和,填寫下表Start roomInputOutp

13、ut示例AGoto AB,CAGoto B AGoto C AGoto D AGoto E BGotoA BGoto B BGoto C BGoto D BGoto E CGoto A CGoto B CGoto C CGoto D CGoto E DGoto A DGoto B DGoto C DGoto D DGoto E EGoto A EGoto B EGoto C E

14、Goto D EGoto E          3,  針對擴展需求1和2,測試背包功能,描述你的測試思路和方法。一道AS3面試題的解答題目:對一批編號為1-100全部開關朝上(開)的燈進行以下操作:開關編號凡是1的倍數(shù)反方向撥一次開關;若該編號也是2的倍數(shù)反方向又撥一次開關;若該編號又是3的倍數(shù)反方向又撥一次開關以此類推一直計算到100為止。目的:請trace出經過反復開關操作后所有關閉的燈的開關編號。這是我寫給大家看的易懂版本:var n:int, m:int;

15、 var range:int = 100; for(var i:int = 1; i <= range; i +)   n = 1;   while(true)     if(n > i / n)       break;      &#

16、160;   if(i % n = 0)       if(i / n = n)         trace("結果",i);         break;         

17、60;       n +;    下面是寫著玩的縮寫版本,不過正常寫項目代碼,我不會這樣干的,在這兒只是娛樂一下而已。下面這段代碼想玩就看看,不想玩的看上面就行了,判斷原理是一樣,沒區(qū)別!var n:int = 1, range:int = 1000; for(var i:int = 1; i <= range; i += n = 

18、;1)   while(n > 0) n = n > i / n ? 0 : !(i % n) ? i / n = n ? -1 : n + 1 : n + 1;   if(n = -1) trace(&qu

19、ot;結果",i); 我將range都改成100000后,第一種方法耗時7233毫秒,第二種縮減的寫法耗時1840毫秒。對于易讀易懂,你會選擇那種方法呢?對于暗淚同學的回復,下面增加一點內容:其實上面寫的是正常算法,如果2億次,通過分析題目,可以得出只要該數(shù)能被開平方時,就是關閉狀態(tài),因此這道題目如果是寫在項目里面,可以這樣寫:var range:int = 1000000000; var num:int = Math.pow(range,0.5); for(var i:int = 1;

20、0;i <= num; i +)   trace("結果",i * i) 我測試過10億次的效率,僅需要6毫秒何其快啊!游戲軟件功能測試測試用例的編寫方法淺談 一、 游戲軟件與通用軟件的區(qū)別 a) 通用軟件的需求明確,游戲軟件需求理想化 i. 通用軟件中用戶每步操作的預期結果都是明確且有規(guī)范可參考的,而網游中并不是所有的需求都有一個明確的預期結果,拿技能平衡性來說,我們所謂的平衡也只是相對的平衡,而非絕對的平衡。沒有什么明確的參考參數(shù)。只能根據(jù)以往游戲的經驗獲得一個感知的結果。 ii. 網

21、絡游戲中的某些功能是有預期結果可參考的。例如組隊、交易,而另外一些帶有策劃創(chuàng)意的功能,卻是根據(jù)策劃個人的理解,來確定其預期結果的。人的思考力都是有限的,所以不能保證在他的創(chuàng)意中會考慮到各種各樣復雜的細節(jié)。也不能夠保證這個創(chuàng)意就可以完全被用戶所接受。 當你作為游戲測試人員時,很多時候你需要做的不僅僅是驗證功能。也需要幫助開發(fā)者和用戶找到一個互相容忍的平衡點。游戲軟件的測試員帶有對策劃需求的懷疑,力求通過自己的努力在玩家和開發(fā)者之間將可能產生的矛盾減小。 b) 通用軟件開發(fā)過程中需求變更少,游戲軟件開發(fā)過程中需求便更快 i. 通用軟件的使用人群和軟件的功能針對性,決定軟件從開始制作就很少再有新的需

22、求變更。而游戲軟件,為了滿足玩家對游戲的認可度,策劃需要不斷的揣摩玩家的喜好,進行游戲功能的改進。加之網游制作本身就是一個龐大復雜的工程,開發(fā)者不可能做到在開發(fā)的前期,就對游戲架構及擴展性做出最好的評估。所以導致為了滿足用戶的需求而不斷的進行一些基礎架構的修改,基礎架構的修改必然導致某些功能的顛覆。所以就出現(xiàn)了,游戲開發(fā)過程中的一個惡性循環(huán),當基礎架構修改到滿意了,玩家的需求又有了新的變化,隨之而來的又要進行新的調整,再進行新的修改。最終導致了游戲軟件的開發(fā)周期不斷加長。任何一個有經驗的團隊,對于每一個影響基礎的改動都應該做出正確的評估。 二、 網游有哪些測試內容 a) 性能 i. 客戶端性能

23、 ii. 服務器端性能 1. 服務器 2. 數(shù)據(jù)庫 iii. 網絡 b) 功能 i. 從運行完 game.exe 打開游戲界面后可進行的各種操作、玩法 ii. 界面 iii. 音樂 c) 自動化 i. 測試工作組織實施中需要的工具、軟件、平臺的開發(fā) ii. 自動化的回歸測試作用:游戲中基礎的、變動不大的、出錯率高的、可進行 checklist 重復測試的功能、性能等自動化是一個好方法 iii. 任何時候自動化都取代不了人腦,它只是將一些重復性的勞動從我們測試人員身上去掉,讓我們有更多的時間做更有意義的事情,如果你覺得你做一件事情是重復的,且有規(guī)律可行的,不防考慮自動化 三、 游戲中針對功能性測

24、試測試用例編寫淺談 先了解下游戲中有哪些功能: a) 游戲發(fā)開中的功能有哪些 i. 不同的游戲對于功能的劃分不同,但是目前主流一些功能劃分中有以下內容: 1. 基礎操作 2. Npc 3. 地圖 4. 裝備 5. 劇情 6. 技能 7. 人際 8. PVP 9. 這樣我們很簡單的將整個游戲的功能進行了劃分,劃分完畢,下來的工作就是針對某個功能的測試了。很多人都問過一個問題,游戲測試中測試用例到底有什么用。下面繼續(xù) b) 游戲測試的測試用例有什么作用 i. 測試執(zhí)行過程中,按照用例指示的操作檢查操作結果是否正確,記錄測試過程中發(fā)現(xiàn)的 bug ii. 按照用例的執(zhí)行結果確認功能的通過與否,也有的按

25、照用例的覆蓋率來確定單服測試的通過與否 iii. 便于回歸測試的執(zhí)行 這樣講應該比較明白了吧。 c) 測試用例應該包括什么測試執(zhí)行過程中所需的所有信息,舉例說明下。例如: i. 表頭:功能名稱、案例編寫人員、編寫時間、測試人員、測試時間 ii. 正文:功能點、測試點、測試輸入、預期結果、實際結果 iii. 用例執(zhí)行結果統(tǒng)計 d) 功能點模塊化理念 都知道一個復雜龐大的系統(tǒng),程序在實現(xiàn)時會將其分成若干模塊按照模塊功能優(yōu)先級進行實現(xiàn)。我們測試過程中也采用這種方法,將復雜的功能點按照實現(xiàn)功能進行分類,分類后的測試點,再進行分類,直至細分成為一條條用例。就像庖丁解牛那樣。 按照等價類劃分法,將同一判斷

26、條件的測試點組成一個集,在這個條件基礎上再次判斷的條件,我們假設它已經成立。這樣在用例設計過程中就需要測試人員清楚的知道,哪些條件是一類需優(yōu)先確認的,哪些是以這類條件為基礎的。我們最終形成的測試用例一定確保的是一條用例只檢查一個測試點。 這樣設計也有另外一個好處,如果一條用例不能走通,其它的還可以繼續(xù)檢測,經常會遇到測試過程中由于一個 bug ,導致測試工作停滯。現(xiàn)在這樣子我們就可以采取腳本調試,或者其它方法跳過有 bug 的測試內容,繼續(xù)進行其它測試點的測試了。 e) 場景測試法協(xié)助功能點細分 游戲測試中,場景測試方法是經常用到的一種方法,什么是場景測試法,及按照功能設計要求,在腦中模擬出來的一個功能使用時的操作流程。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論