版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 《白盒測試(JUnit測試框架)實訓(xùn)》課程設(shè)計</p><p> 題目: 貪吃蛇程序的白盒測試 </p><p> 姓名: </p><p> 學(xué)號: </p
2、><p> 班級: 測試0901 </p><p> 時間: 2010 年 9 月 10 日 </p><p> 白盒測試課程設(shè)計 — 貪吃蛇程序(Ver: 0.91 Alpha)的白盒測試</p><p><b> 程序功能簡介
3、:</b></p><p> 1. 游戲開始的時候,成績?yōu)?,等級為“初出茅廬!”,蛇的速度(線程掛起時間)為300。</p><p> 2. 蛇的行走方向通過鍵盤方向鍵上、下、左、右來操作。</p><p> 3. 蛇(藍(lán)色長條)吞吃一個食物(紅點方格)后,身體長度增加一格,吃掉的食物消失并隨機(jī)出現(xiàn)新食物(紅點方格),游戲者的分?jǐn)?shù)增加10分。&l
4、t;/p><p> 4. 當(dāng)分?jǐn)?shù)超過40,速度為250;分?jǐn)?shù)超過80,速度為200;分?jǐn)?shù)超過120,速度為160;分?jǐn)?shù)超過160,速度為120;分?jǐn)?shù)超過200,速度為100。</p><p> 5. 當(dāng)速度達(dá)到300時,顯示等級為“初出茅廬!”;速度達(dá)到250時,顯示“小試牛刀!”;速度達(dá)到200時,顯示“表現(xiàn)優(yōu)異!”;速度達(dá)到150時,顯示“疾風(fēng)之蛇!”;速度達(dá)到120時,顯示“已經(jīng)瘋子
5、!”;速度達(dá)到100時,顯示“超越神了!”。</p><p> 6. 當(dāng)蛇吃到上下邊界(頂部和底部黑色長方格)以及自己的身體后游戲結(jié)束。</p><p> 7. 游戲結(jié)束后,按enter回車鍵重新開始。</p><p><b> 白盒測試過程:</b></p><p><b> 一、代碼檢查:</
6、b></p><p><b> 1. 變量的檢查</b></p><p><b> 正常</b></p><p> 2. 命名和類型的檢查</p><p><b> 正常</b></p><p><b> 3. 程序邏輯審查&l
7、t;/b></p><p><b> 符合邏輯</b></p><p><b> 4. 程序語法檢查</b></p><p><b> 語法通過</b></p><p><b> 5. 程序結(jié)構(gòu)檢查</b></p><p&
8、gt;<b> 合理</b></p><p> 二、 靜態(tài)結(jié)構(gòu)分析:</p><p> 程序靜態(tài)結(jié)構(gòu)如下類圖所示</p><p> Snake類圖關(guān)聯(lián):</p><p> Controller類圖關(guān)聯(lián):</p><p> GamePanel類圖關(guān)聯(lián):</p><p&
9、gt; 1. 根據(jù)類圖及關(guān)聯(lián)簡述貪吃蛇程序的類功能及結(jié)構(gòu)。</p><p> ?。?)Food 繼承于Point,其實就是個坐標(biāo)對象所包含的方法 1、記錄新食物的位置 2、比較Food對應(yīng)的坐標(biāo)是否與蛇頭相等</p><p> ?。?)Ground對地板的封裝,它擁有成員變量二維rocks 記錄墻的位置,初始狀態(tài)墻在第1行和第15行 蛇是否撞墻的判斷方法isSnakeatGround&l
10、t;/p><p> ?。?)Snake繼承于Thread,通過蛇行為判斷相應(yīng)的動作:是否吃到自己的判斷,通過分?jǐn)?shù)值來獲得速度的判斷,通過方向的移動來判斷蛇頭的移動,蛇的運行狀態(tài)、運行方向、是否存活的判斷(吃自己),以及初始化蛇對象。</p><p> ?。?)Controller控制游戲,她創(chuàng)建snake、food、ground對象,并獲取計分面板和游戲面板對象能通過newGame()方法啟動
11、游戲利用 keyPressed()方法接收按鍵行為利用snakeMoved()處理蛇移動后的行為</p><p> SnakeListener蛇移動的監(jiān)聽器</p><p> ?。?)Global全局變量定義,包含單元格大小以及長寬各占多少單元格</p><p> (6)GamePanel游戲面板,繼承于JPanel,主要功能利用display()是獲得snak
12、e、food和ground對象 </p><p><b> 并畫蛇、食物和石頭</b></p><p> ?。?)GameUI組合貪吃蛇面板,觸發(fā)應(yīng)用程序運行</p><p> (8)ScorePanel計分面板,繼承于JPanel, 擁有5個標(biāo)簽對象, 最開始的成績設(shè)置為0,等級為初出茅廬</p><p> 其中
13、label2用來顯示成績值, label4用來顯示等級名稱</p><p><b> 結(jié)構(gòu)描述</b></p><p> 首先Gobal定義好場景的大小,在場景中加入計分面板ScorePanel和游戲面板GamePanel,再用GameUI組合貪吃蛇面板,觸發(fā)應(yīng)用程序運行。Food中設(shè)置新食物的坐標(biāo)位置,Gronud中二維rocks記錄墻的位置,并定義蛇撞墻的判斷
14、方法,Snake定義蛇的行為來判斷是否吃到自己獲得速度以及通過方向判斷蛇頭的移動,在Controller中創(chuàng)建snake,food,ground對象,結(jié)合它們中所有的蛇行為并關(guān)聯(lián)到游戲和計分面板。SnakeListener添加蛇移動的監(jiān)聽器。</p><p> 2. 判斷哪些是主要方法。</p><p> 1) boolean common.Ground.isSnakeEatGrou
15、nd(Snake snake):</p><p> 蛇是否撞墻的判斷方法</p><p> @param Snake snake蛇</p><p> @return true 蛇頭的坐標(biāo)等于在第一行和15行</p><p> 2) boolean common.Snake.isEatBody():</p><p&
16、gt;<b> 判斷蛇是否吃到自己</b></p><p> @return true:蛇身體的坐標(biāo)等于蛇頭的坐標(biāo)</p><p> 3) int common.Snake.getSpeed():</p><p><b> 通過分?jǐn)?shù)來獲得速度</b></p><p> 4) void
17、 view.ScorePanel.setGrade(int speed):</p><p> 根據(jù)參數(shù)判斷所處的等級,并更新計分板上的等級值 </p><p> @param speed 速度值</p><p> 5) void controller.Controller.keyPressed(KeyEvent e):</p><p>
18、; 通過keyPressed方法接收按鍵行為</p><p> 6) void controller.Controller.snakeMoved(Snake snake):</p><p><b> 蛇移動后的行為</b></p><p> 1是否吃到食物,true構(gòu)建新的食物坐標(biāo)</p><p> 2是否撞
19、到墻,true蛇死</p><p> 3重新畫蛇,食物,地板4跟新計分板上的分?jǐn)?shù)和等級</p><p> 7) void view.GameUI.main(String[] args):</p><p> GameUI的主函數(shù)</p><p> 8 void common.Snake.eatFood()</p>
20、<p> 蛇吃到食物后給蛇加尾巴,給游戲者加分</p><p> 3. 檢查方法調(diào)用是否符合要求。</p><p><b> 正常</b></p><p> 4. 方法調(diào)用層次是否過深。</p><p><b> 否</b></p><p> 5. 是
21、否存在孤立未被調(diào)用的成員及方法。</p><p> private GamePanel Snake .gamePanel</p><p> private JLabel label4;</p><p><b> 三、 動態(tài)測試</b></p><p> 根據(jù)結(jié)構(gòu)分析,貪吃蛇程序的產(chǎn)生BUG的主要模塊為snake、
22、controller、GameUI、ScorePanel,以下進(jìn)行主要功能模塊的單元測試</p><p> setGrade單元測試</p><p><b> A. 測試用例設(shè)計</b></p><p> B. 測試類腳本(測試文件名及結(jié)構(gòu))</p><p> void view.ScorePanelTest.t
23、estsetGrade ()</p><p> testsetGrade()測試等級內(nèi)容當(dāng)速度達(dá)到300時,顯示等級為"初出茅廬!" 當(dāng)速度達(dá)到250時,顯示等級為"小試牛刀!" 當(dāng)速度達(dá)到200時,顯示等級為"表現(xiàn)優(yōu)異!" 當(dāng)速度達(dá)到150時,顯示等級為"疾風(fēng)之蛇!" 當(dāng)速度達(dá)到120時,顯示等級為"已經(jīng)瘋子!"
24、; 當(dāng)速度達(dá)到100時,顯示等級為"超越神了!"</p><p><b> Speed單元測試</b></p><p><b> A. 測試用例設(shè)計</b></p><p> B. 測試類腳本(測試文件名及結(jié)構(gòu))</p><p> 1、void codetest.Snak
25、eTes.testGetSpeed1():testgetSpeedX()測試通過分?jǐn)?shù)來獲得速度</p><p> 2、void codetest.SnakeTes.testGetSpeed2()</p><p> 3、void codetest.SnakeTes.testGetSpeed3()</p><p> 4、void codetest.SnakeTes
26、.testGetSpeed4()</p><p> 5、void codetest.SnakeTes.testGetSpeed5()</p><p> 6、void codetest.SnakeTes.testGetSpeedBound1()</p><p> 7、void codetest.SnakeTes.testGetSpeedBound2()</
27、p><p> 8、void codetest.SnakeTes.testGetSpeedBound3()</p><p> 9、void codetest.SnakeTes.testGetSpeedBound4()</p><p> 10、void codetest.SnakeTes.testGetSpeedBound5()</p><p>
28、; 11、void codetest.SnakeTes.testGetSpeedBound6()</p><p> isSnakeEatGround單元測試</p><p><b> A. 測試用例設(shè)計</b></p><p> B. 測試類腳本(測試文件名及結(jié)構(gòu))</p><p> void codetest
29、.ControllerTest.testIsSnakeEatGround1()</p><p> testIsSnakeEatGround()測試 當(dāng)蛇吃到上下邊界時后蛇處于死亡狀態(tài)</p><p> IsEatBody單元測試</p><p><b> A. 測試用例設(shè)計</b></p><p> B. 測試類
30、腳本(測試文件名及結(jié)構(gòu))</p><p> void codetest.ControllerTest.testIsEatBody()</p><p> testIsEatBody()測試 當(dāng)蛇吃到自己后蛇處于死亡狀態(tài)</p><p> GameUI單元測試</p><p><b> A. 測試用例設(shè)計</b>&l
31、t;/p><p> B. 測試類腳本(測試文件名及結(jié)構(gòu))</p><p> void codetest.GameUITest.testGameStart()</p><p> KeyPressed單元測試</p><p><b> A. 測試用例設(shè)計</b></p><p> B. 測試類腳
32、本(測試文件名及結(jié)構(gòu))</p><p> void codetest.ControllerTest.testKeyPressed()</p><p> testKeyPressed()方法測試 蛇的行走方向通過鍵盤方向鍵上下左右來操作</p><p> AfterEatFood()單元測試</p><p><b> A. 測
33、試用例設(shè)計</b></p><p> B. 測試類腳本(測試文件名及結(jié)構(gòu))</p><p> void codetest.ControllerTest.testAfterEatFood()</p><p> testAfterEatFood()測試</p><p> 蛇(藍(lán)色長條)吞吃一個食物(紅色方格)后</p&g
34、t;<p> 身體長度增加一格,吃掉的食物消失并隨機(jī)出現(xiàn)新食物</p><p> 游戲者的分?jǐn)?shù)增加10分</p><p><b> 白盒測試缺陷報告:</b></p><p> 關(guān)于測試缺陷優(yōu)先級的說明:</p><p> 1 – 非常嚴(yán)重的缺陷,例如,軟件的意外退出甚至操作系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貪吃蛇課程設(shè)計
- 貪吃蛇課程設(shè)計
- 貪吃蛇課程設(shè)計
- 貪吃蛇java課程設(shè)計--貪吃蛇程序設(shè)計
- 貪吃蛇課程設(shè)計報告
- java課程設(shè)計貪吃蛇
- java課程設(shè)計--貪吃蛇
- 貪吃蛇課程設(shè)計報告
- 貪吃蛇課程設(shè)計報告
- 貪吃蛇vc課程設(shè)計
- 貪吃蛇課程設(shè)計報告
- android貪吃蛇課程設(shè)計報告
- java貪吃蛇游戲 課程設(shè)計
- java貪吃蛇課程設(shè)計報告
- java-課程設(shè)計--貪吃蛇
- c++課程設(shè)計----貪吃蛇
- c++貪吃蛇課程設(shè)計
- c語言貪吃蛇游戲課程設(shè)計
- c語言課程設(shè)計--貪吃蛇游戲
- qt課程設(shè)計--貪吃蛇游戲設(shè)計
評論
0/150
提交評論