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