物理引擎的簡(jiǎn)單測(cè)試代碼,如果任何一個(gè)VTEST條件沒有滿足,那么測(cè)試就失敗。該測(cè)什么?當(dāng)要決定測(cè)試的范圍時(shí),實(shí)用第一。一般來說,為簡(jiǎn)單的功能編寫單元測(cè)試是沒有意義的,比如常見的getter和setter方法。為了讓自動(dòng)化測(cè)試物有 所值,被測(cè)試的代碼至少應(yīng)該是可能會(huì)產(chǎn)生錯(cuò)誤的,比如,發(fā)射一束穿透游戲場(chǎng)景的光線并且返回它穿過的任何幾何物體的方法(光線測(cè)試),然后將返回的結(jié)果與 編寫測(cè)試用例的作者提供的預(yù)期結(jié)果作比較。
到底是只為類的公用 接口編寫測(cè)試用例(黑盒測(cè)試)還是要兼顧類的私有成員(白盒測(cè)試),是一個(gè)有爭(zhēng)議的問題。通常來說,黑盒測(cè)試比白盒測(cè)試粗糙,它們只能檢查一個(gè)操作的最終 結(jié)果,不能檢查內(nèi)部中間狀態(tài),它們對(duì)于被修改的測(cè)試代碼比較遲鈍。剛才提到的光線測(cè)試功能可能被全部重寫(比如原先的版本運(yùn)行效率不夠),但是它返回的結(jié)果沒有變化。這時(shí),白盒測(cè)試用例就需要跟著重寫,然而黑盒測(cè)試可以繼續(xù)用來檢測(cè)代碼修改后,所產(chǎn)生的結(jié)果是否與原先一致。
因此,我們認(rèn)為自動(dòng)化測(cè)試中,測(cè)試范圍只要包括類的公有成員就夠了,畢竟,類的內(nèi)部修改比它接口修改要頻繁得多。
回歸測(cè)試
特別是在游戲開發(fā)領(lǐng)域,大多數(shù)情況下,把測(cè)試結(jié)果和用例編寫者提供的數(shù)據(jù)手工作比較是不太現(xiàn)實(shí)的。例如,檢測(cè)與復(fù)雜的幾何體碰撞的交點(diǎn),人工提供相關(guān)測(cè) 試數(shù)據(jù)幾乎不可能。相反,將測(cè)試結(jié)果與早期代碼產(chǎn)生的結(jié)果數(shù)據(jù)相比較,被稱為“回歸測(cè)試”。用例編寫者可以評(píng)審參考數(shù)據(jù),例如,使用簡(jiǎn)化圖形的碰撞物體,如果被證實(shí)是正確的,它就可以一直用于測(cè)試。這樣,自動(dòng)化測(cè)試可以幫助你確認(rèn)新代碼產(chǎn)生的結(jié)果與原先的一致。
代碼功能測(cè)試會(huì)生成非常復(fù)雜的輸出數(shù)據(jù),比如游戲的圖形渲染引擎,回歸測(cè)試是唯一可行的自動(dòng)化測(cè)試。以圖形渲染引擎為例,所有圖形測(cè)試以輸出最終平臺(tái)相關(guān)的圖形文件為結(jié)果。一旦自動(dòng)化測(cè)試開始運(yùn)行,渲染出來的圖形文件與樣本圖形文件逐一像素的進(jìn)行比較,如果有差異,那么測(cè)試失敗。為了減少樣本圖形文件的存占用,你可以使用圖形快照來進(jìn)行測(cè)試。
圖形回歸測(cè)試的優(yōu)勢(shì)在于即使是肉眼難以發(fā)現(xiàn)的微小差異也不會(huì)被漏掉。除非人們對(duì)這個(gè)場(chǎng)景非常熟悉,否則很難會(huì)有人注意到場(chǎng)景中缺失的一個(gè)陰影或一個(gè)物體或者某個(gè)光源的R值與B值被錯(cuò)換了。而回歸測(cè)試就不會(huì)放過任何一個(gè)這樣的錯(cuò)誤。
必須注意到,任何情況下,回歸測(cè)試的樣本數(shù)據(jù)都是自動(dòng)生成的。樣本數(shù)據(jù)也許是平臺(tái)相關(guān),特別涉及到渲染輸出的時(shí)候,因此,它也許要被生成多次,即使是這樣,當(dāng)渲染通道發(fā)生變化導(dǎo)致生成的圖形文件有所改變,樣本數(shù)據(jù)也要重新生成。為了不打擊開發(fā)者編寫回歸測(cè)試的積極性,要做到只需點(diǎn)擊框架用戶界面上一個(gè)按鈕就可以重新生成新的參考數(shù)據(jù)。
如何把所有的整合在一起
此文章共有6頁(yè) 上一頁(yè) 1 2 3 4 5 6 下一頁(yè)
文章來源:中國(guó)項(xiàng)目管理資源網(wǎng)
軟件開發(fā)項(xiàng)目管理培訓(xùn)課程方案 |