![基于游戲模式的軟件測試技術(shù)課程實踐教學(xué)設(shè)計_第1頁](http://file4.renrendoc.com/view/9d1ab6d87c0e7437e1bfa6d4a2c17686/9d1ab6d87c0e7437e1bfa6d4a2c176861.gif)
![基于游戲模式的軟件測試技術(shù)課程實踐教學(xué)設(shè)計_第2頁](http://file4.renrendoc.com/view/9d1ab6d87c0e7437e1bfa6d4a2c17686/9d1ab6d87c0e7437e1bfa6d4a2c176862.gif)
![基于游戲模式的軟件測試技術(shù)課程實踐教學(xué)設(shè)計_第3頁](http://file4.renrendoc.com/view/9d1ab6d87c0e7437e1bfa6d4a2c17686/9d1ab6d87c0e7437e1bfa6d4a2c176863.gif)
![基于游戲模式的軟件測試技術(shù)課程實踐教學(xué)設(shè)計_第4頁](http://file4.renrendoc.com/view/9d1ab6d87c0e7437e1bfa6d4a2c17686/9d1ab6d87c0e7437e1bfa6d4a2c176864.gif)
![基于游戲模式的軟件測試技術(shù)課程實踐教學(xué)設(shè)計_第5頁](http://file4.renrendoc.com/view/9d1ab6d87c0e7437e1bfa6d4a2c17686/9d1ab6d87c0e7437e1bfa6d4a2c176865.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于游戲模式的軟件測試技術(shù)課程實踐教學(xué)設(shè)計
孫軍梅戴雅婕姚茂群肖蕾Summary:為了使軟件測試技術(shù)學(xué)習(xí)者更好地掌握軟件測試技術(shù)的概念、方法和原理,并提高學(xué)習(xí)者的興趣,作者設(shè)計了基于游戲模式的實踐教學(xué)環(huán)境,設(shè)計開發(fā)了一個基于角色扮演類游戲的軟件測試技術(shù)實驗系統(tǒng)。學(xué)習(xí)者通過分別扮演不同的角色進行實驗,寓教于樂并體驗如何進行軟件測試,以及如何編寫可靠性高的軟件代碼來提高軟件質(zhì)量。Key:軟件測試技術(shù)實驗;游戲模式;變異體:G434
:A
論文編號:1674-2117(2020)12-0000-05軟件測試是軟件開發(fā)活動中不可或缺的一部分,但調(diào)查顯示,計算機或軟件工程類專業(yè)課程中更多重視程序的設(shè)計和實現(xiàn)。[1]文獻[2]指出,測試在軟件開發(fā)人員的日?;顒又邪缪莸慕巧h不如人們希望的那樣,而且新聞頻繁地報道關(guān)于軟件漏洞造成的影響,使人們對軟件測試在實踐中產(chǎn)生的效果產(chǎn)生了懷疑。與編程和設(shè)計相比,測試通常被認為是無聊和困難的。[3]教學(xué)中主要體現(xiàn)在教學(xué)內(nèi)容抽象與學(xué)生學(xué)習(xí)興趣不高。文獻[4]對軟件測試教育對軟件代碼可靠性的影響進行了實證研究,研究發(fā)現(xiàn)軟件測試知識能提高編寫的代碼的可靠性。國內(nèi)軟件行業(yè)也普遍存在“重開發(fā),輕測試”的觀點,這種觀點延伸到軟件測試技術(shù)課程的教學(xué)中,導(dǎo)致部分學(xué)生對軟件測試這個職業(yè)存在認識偏差。因此,軟件測試課程必須改變原來偏重理論講解、學(xué)生缺乏實踐經(jīng)驗的教學(xué)模式,加強實踐教學(xué)環(huán)節(jié),讓學(xué)生在實踐中體會到軟件測試技術(shù)的重要性。[5]因此該課程迫切需要一個既能夠體現(xiàn)軟件測試技術(shù)相關(guān)知識,增強學(xué)生實踐操作能力,又能夠吸引學(xué)生興趣的實驗環(huán)境?;谟螒蚰J降能浖y試技術(shù)實驗系統(tǒng)將軟件測試技術(shù)的知識點融入到游戲關(guān)卡中,為學(xué)習(xí)者提供了一個充滿挑戰(zhàn)和樂趣的實驗環(huán)境,讓學(xué)習(xí)者在快樂中學(xué)習(xí)相關(guān)概念并在通關(guān)的實踐中提升實踐動手能力。本系統(tǒng)在設(shè)計時借鑒了變異測試的理念,變異測試是一種基于缺陷的在細節(jié)方面對程序源代碼進行改進的動態(tài)的軟件測試方法。[6]變異測試首創(chuàng)于20世紀70年代,發(fā)展至今,在學(xué)術(shù)界已得到了廣泛的關(guān)注和研究,但在工業(yè)應(yīng)用上仍比較少。在大學(xué)的軟件測試技術(shù)教材中也提得比較少,一般不作為基本的教學(xué)內(nèi)容。但通過對變異測試的研究,筆者發(fā)現(xiàn)變異測試的思想雖然在實際應(yīng)用中還不完全成熟,但通過變異測試的練習(xí),可以加深學(xué)習(xí)者對軟件測試基本概念、方法和原理的理解,[7-9]基于此,筆者設(shè)計開發(fā)了本實驗系統(tǒng)。該系統(tǒng)是基于一個角色扮演類游戲而設(shè)計的,學(xué)習(xí)者可以分別扮演不同的角色來創(chuàng)建變異體和測試用例,體會如何編寫可靠性高的軟件,學(xué)習(xí)進行軟件測試的基本方法和原理?!駥嶒瀮?nèi)容1.白盒測試/黑盒測試方法白盒測試方法和黑盒測試方法[10-11]是軟件測試中用得最多得兩種測試技術(shù),也是目前工業(yè)界仍舊在普遍使用的兩種方法。白盒測試是基于程序源代碼對程序內(nèi)部的邏輯結(jié)構(gòu)以及相關(guān)信息進行測試的方法,測試者需先了解程序的內(nèi)部結(jié)構(gòu),根據(jù)被測程序的內(nèi)部結(jié)構(gòu)設(shè)計測試用例,檢驗程序中的每條通路是否能按照預(yù)定的要求正確工作。白盒測試最常用的方法有語句覆蓋、分支覆蓋、條件覆蓋等。黑盒測試是基于程序功能的測試方法,目的是檢查軟件的各項功能是否實現(xiàn)或軟件中是否存在功能上的錯誤。黑盒測試最常見的方法有等價類劃分法、邊界值分析法等。①語句覆蓋:為了發(fā)現(xiàn)或確認程序中的錯誤,程序代碼必須被執(zhí)行。直觀地說,如果包含bug的語句從未被任何測試執(zhí)行過,那么就無法檢測到bug。語句覆蓋率是衡量測試質(zhì)量的最通用的標(biāo)準。圖1是一個演示語句覆蓋的游戲程序:圖1(a)為被測試的程序,圖1(b)是測試程序。此測試程序中設(shè)計的測試用例僅涵蓋了if條件語句的true分支,而未涵蓋第二個return語句,因此此測試程序沒有達到語句覆蓋的要求。②分支覆蓋:分支覆蓋要求程序控制流圖中的所有邊至少執(zhí)行一次,這意味著每個if條件語句都需要取一次真值和假值。圖2給出了一個分支覆蓋示例游戲程序。圖2(a)是被測程序,圖2(b)是測試程序,初始測試集涵蓋了所有語句,即滿足語句覆蓋的要求,但沒有達到分支覆蓋的要求。③循環(huán)測試:系統(tǒng)已經(jīng)定義了各種覆蓋標(biāo)準來處理循環(huán)引起的挑戰(zhàn)。例如,不同的循環(huán)迭代次數(shù)可能導(dǎo)致發(fā)現(xiàn)不同的錯誤。圖3顯示了一個循環(huán)測試示例游戲程序,其中現(xiàn)有的測試套件涵蓋了循環(huán)未執(zhí)行和僅執(zhí)行一次的情況,但不包括循環(huán)多次執(zhí)行的情況。④邊界值測試。圖4顯示了邊界值測試的示例,其中現(xiàn)有測試集實現(xiàn)了分支覆蓋,但是沒有在x>100的邊界上進行測試。2.測試用例概念在進行軟件測試時,設(shè)計測試用例是一個非常重要的環(huán)節(jié),測試用例設(shè)計的好壞直接影響到是否能發(fā)現(xiàn)缺陷,測試用例設(shè)計得好就能發(fā)現(xiàn)缺陷,并可能會發(fā)現(xiàn)比較多的缺陷,設(shè)計得不好,也許就發(fā)現(xiàn)不了缺陷或者只能發(fā)現(xiàn)一些比較容易發(fā)現(xiàn)的缺陷。所以,編寫測試用例是軟件測試中必不可少的環(huán)節(jié)。本實驗系統(tǒng)學(xué)習(xí)者通過扮演防御者角色來設(shè)計測試用例,掌握一些設(shè)計測試用例的技巧,并積累設(shè)計好的測試用例的經(jīng)驗?!駥嶒炏到y(tǒng)的設(shè)計與實現(xiàn)1.實驗系統(tǒng)框架結(jié)構(gòu)本系統(tǒng)結(jié)構(gòu)由游戲模式和學(xué)習(xí)模式兩個模塊組成如圖5所示。學(xué)習(xí)模式主要提供給對相關(guān)知識還不是很熟悉的學(xué)習(xí)者在進入游戲模式之前進行學(xué)習(xí)、練習(xí)的模塊。游戲模式主要提供給學(xué)習(xí)者實操使用。2.游戲模式設(shè)計游戲包括攻擊者模式和防御者模式兩種游戲模式,學(xué)習(xí)者可以通過攻擊者模式來對源程序進行修改,通過防御者模式來創(chuàng)建測試用例檢測出修改的部分。通過兩種模式的操作,學(xué)習(xí)者可以對軟件測試的相關(guān)概念、方法和原理進行實操訓(xùn)練。(1)攻擊者模式在攻擊者模式中,學(xué)習(xí)者最主要的目標(biāo)就是改變源程序,使改變的部分盡可能難被測試用例檢測出來,如下頁圖6所示,學(xué)習(xí)者可在此模塊看到詳細源代碼,并且可對源代碼進行合法的微小的修改。學(xué)習(xí)者在修改程序時須遵守以下規(guī)則:①不能修改源程序的類名、函數(shù)名、變量名以及數(shù)據(jù)類型;②修改后的程序必須可運行,即沒有語法上的缺陷;③不能向程序中添加新的if語句或循環(huán)語句;④修改的部分必須有輸出值;⑤每次修改程序只能引入一個故障(fault)。以圖1所示的語句覆蓋示例為例。當(dāng)學(xué)習(xí)者作為攻擊者時,系統(tǒng)將向?qū)W習(xí)者玩家展示源程序和測試集,學(xué)習(xí)者的任務(wù)是修改源程序創(chuàng)建測試集不能檢測到的變異體,下頁圖7所示的游戲程序為攻擊者創(chuàng)建的一個變異體。(2)防御者模式在防御者模式中,學(xué)習(xí)者最主要的目標(biāo)就是創(chuàng)建測試用例,找出攻擊者模式中玩家創(chuàng)建的變異體。如下頁圖8所示,學(xué)習(xí)者可根據(jù)修改后的源代碼在界面上輸入測試用例。測試數(shù)據(jù)需要滿足以下條件:①輸入的測試數(shù)據(jù)必須對源程序和修改后的源程序引起不同的程序狀態(tài);②修改的輸出值的語句必須被執(zhí)行且該輸出值能夠被測試數(shù)據(jù)檢測出來。判斷學(xué)習(xí)者是否殺死當(dāng)前變異體的最主要的方式是,學(xué)習(xí)者創(chuàng)建測試用例后,在源代碼和修改代碼中運行該測試用例,然后判斷兩者的輸出值是否相同。如果源代碼和修改代碼的輸出值不同,則說明學(xué)習(xí)者創(chuàng)建的測試用例成功檢測出了修改部分,即殺死了當(dāng)前變異體,反之則說明沒有檢測出程序的修改。還是以圖1的語句覆蓋為例,如果防御者輸入的測試用例為x=10,則運行源代碼和修改代碼后的輸出結(jié)果是一樣的,說明防御者設(shè)計的測試用例沒有發(fā)現(xiàn)缺陷,據(jù)此判定攻擊者勝,攻擊者得分。如果輸入測試用例為x=3,則運行源代碼和修改后代碼的輸出結(jié)果是不一致的,據(jù)此可以判定防御者在這一局中勝,防御者得分?!窠虒W(xué)評估1.課程管理教師可以使用這個基于游戲模式的實驗系統(tǒng)來進行軟件測試技術(shù)課程的實驗教學(xué),并通過這個系統(tǒng)對課程進行管理。系統(tǒng)在實際使用時教師可以以管理員的角色來對源代碼進行管理。教師可以根據(jù)教學(xué)進度更換或者新增符合當(dāng)前教學(xué)知識點的比較典型的游戲代碼,讓學(xué)習(xí)者根據(jù)當(dāng)前所學(xué)的內(nèi)容,針對新的源代碼進行代碼修改;同時,學(xué)習(xí)者也可以針對新修改的程序來設(shè)計測試用例。教師可以查看每位學(xué)習(xí)者的參與度,也可以根據(jù)每個學(xué)習(xí)者修改的程序數(shù)量、檢測出來的變異體數(shù)量等信息來判斷學(xué)習(xí)者對知識的掌握程度。2.教學(xué)效果使用基于游戲的軟件進行實踐學(xué)習(xí),寓教于樂,還可以增強學(xué)習(xí)過程中的競爭性,增強學(xué)習(xí)者學(xué)習(xí)的積極性,同時也增強學(xué)習(xí)者實踐教學(xué)的參與度。軟件記錄了每位學(xué)習(xí)者修改的源程序數(shù)量、檢查出多少修改代碼的數(shù)量以及在練習(xí)模式中答對的習(xí)題數(shù)量,學(xué)習(xí)者和教師均可以通過這些數(shù)據(jù)分析學(xué)習(xí)成果,學(xué)習(xí)者可以通過在游戲中扮演不同的角色,在游戲通關(guān)中掌握知識,也能夠了解自己在哪些方面存在不足,需要改進。教師可以根據(jù)學(xué)習(xí)者的實踐教學(xué)參與度來調(diào)整課堂教學(xué)內(nèi)容、教學(xué)方法以及教學(xué)難度,適當(dāng)增加源代碼以及習(xí)題的難度,可以提升學(xué)習(xí)者學(xué)習(xí)的積極性、競爭性。本系統(tǒng)不僅可以作為實驗用工具,還可以作為評價工具。例如,將課程考試由筆試的形式改為在游戲軟件中進行,在規(guī)定的時間內(nèi)創(chuàng)建一定數(shù)量的有效新代碼,創(chuàng)建測試用例檢查新代碼?!窠Y(jié)語在本文中,我們提出了基于游戲的軟件測試技術(shù)實驗教學(xué)模式,使學(xué)生在游戲中掌握軟件測試技術(shù)的相關(guān)概念、方法和原理。學(xué)生在創(chuàng)建新程序以及創(chuàng)建測試用例的同時,不僅可以掌握軟件測試的相關(guān)知識,還能對如何編寫高質(zhì)量軟件有一定的理解。同時,由于實驗是在游戲中進行的,這樣就為枯燥的軟件測試課程增加了樂趣,更加吸引學(xué)生。接下來我們所面對的挑戰(zhàn)就是評估此款游戲軟件對使用者產(chǎn)生的影響,評估游戲軟件在學(xué)習(xí)者使用的過程中是否有不合理或需要優(yōu)化的地方。Reference:[1]Astigarraga,T.,Dow,E.M.,Lara,C.,Prewitt,R.,Ward,M.R.,2010.Theemergingroleofsoftwaretestingincurricula.In:ProceedingsoftheIEEETransformingEngineeringEducation:CreatingInterdisciplinarySkillsforComplexGlobalEnvironments.IEEE,pp.1–26.[2]M.Beller,G.Gousios,A.Panichella,andA.Zaidman.When,how,andwhydevelopers(donot)testintheirIDEs.InACMSymposiumontheFoundationsofSoftwareEngineering(FSE),pages179–190,2015.[3]CleggBS,RojasJM,F(xiàn)raserG.TeachingSoftwareTestingConceptsUsingaMutationTestingGame[C]//2017IEEE/ACM39thInternationalConferenceonSoftwareEngineering:SoftwareEngineeringEducationandTrainingTrack(ICSE-SEET).ACM,2017.[4]LazzariniLemos,OtávioAugusto,F(xiàn)agundesSilveira,F(xiàn)ábio,CutigiFerrariF,etal.TheimpactofSoftwareTestingeducationoncodereliability:Anempiricalassessment[J].JournalofSystemsandSoftware,2017:S0164121217300419.[5]董玉坤.“軟件測試”課程教學(xué)現(xiàn)狀分析[J].課程教育研究,2015(25):229-229.[6]JiaY,HarmanM.AnAnalysisandSurveyoftheDevelopmentofMutationTesting[J].IEEETransactionsonSoftwareEngineering,2011,37(05):649-678.[7]使用muJava進行變異測試[EB/OL].https:///wkw1125/article/details/51967630.[8]茆亮亮.變異測試技術(shù)應(yīng)用研究[D].合肥:中國科學(xué)技術(shù)大學(xué),2010.[9]陳翔,顧慶.變異測試:原理、優(yōu)化和應(yīng)用[J].計算機科學(xué)與探索,2012(12).[10]BillHetzel.TheCompleteguidetoSoftwareTesting.1993:1057-1075.[11]CoreySandler,GlenfordMyers,TomBadgett,TheArtofSoftwareTesting,3rd
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國鋼銅復(fù)合材料軸承座數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國耐磨用塑料數(shù)據(jù)監(jiān)測研究報告
- 2025年包裝印刷器材項目可行性研究報告
- 2025至2030年中國電動油脂泵數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國康爾健膠囊數(shù)據(jù)監(jiān)測研究報告
- 2025年中國鋁材擠出機市場調(diào)查研究報告
- 2025年中國薄荷夾心軟片市場調(diào)查研究報告
- 利潤表與現(xiàn)金流量表分析考核試卷
- 實驗室儀器設(shè)備批發(fā)考核試卷
- 2025-2030年戶外探險凍干能量棒企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 2025年上半年山東氣象局應(yīng)屆高校畢業(yè)生招考易考易錯模擬試題(共500題)試卷后附參考答案
- 第二單元 主題活動三《世界那么大我想去看看》(說課稿)-2023-2024學(xué)年六年級下冊綜合實踐活動內(nèi)蒙古版
- 人教版2024-2025學(xué)年八年級上學(xué)期數(shù)學(xué)期末壓軸題練習(xí)
- 【人教版化學(xué)】必修1 知識點默寫小紙條(答案背誦版)
- 江蘇省無錫市2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 幼兒園防四害安全教育
- 全國第三屆職業(yè)技能大賽(無人機駕駛(植保)項目)選拔賽理論考試題庫(含答案)
- 《奧特萊斯業(yè)態(tài)淺析》課件
- 2022年湖南省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 國家安全教育課程教學(xué)大綱分享
評論
0/150
提交評論