版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于游戲模式的軟件測(cè)試技術(shù)課程實(shí)踐教學(xué)設(shè)計(jì)
孫軍梅戴雅婕姚茂群肖蕾Summary:為了使軟件測(cè)試技術(shù)學(xué)習(xí)者更好地掌握軟件測(cè)試技術(shù)的概念、方法和原理,并提高學(xué)習(xí)者的興趣,作者設(shè)計(jì)了基于游戲模式的實(shí)踐教學(xué)環(huán)境,設(shè)計(jì)開(kāi)發(fā)了一個(gè)基于角色扮演類游戲的軟件測(cè)試技術(shù)實(shí)驗(yàn)系統(tǒng)。學(xué)習(xí)者通過(guò)分別扮演不同的角色進(jìn)行實(shí)驗(yàn),寓教于樂(lè)并體驗(yàn)如何進(jìn)行軟件測(cè)試,以及如何編寫(xiě)可靠性高的軟件代碼來(lái)提高軟件質(zhì)量。Key:軟件測(cè)試技術(shù)實(shí)驗(yàn);游戲模式;變異體:G434
:A
論文編號(hào):1674-2117(2020)12-0000-05軟件測(cè)試是軟件開(kāi)發(fā)活動(dòng)中不可或缺的一部分,但調(diào)查顯示,計(jì)算機(jī)或軟件工程類專業(yè)課程中更多重視程序的設(shè)計(jì)和實(shí)現(xiàn)。[1]文獻(xiàn)[2]指出,測(cè)試在軟件開(kāi)發(fā)人員的日?;顒?dòng)中扮演的角色遠(yuǎn)不如人們希望的那樣,而且新聞?lì)l繁地報(bào)道關(guān)于軟件漏洞造成的影響,使人們對(duì)軟件測(cè)試在實(shí)踐中產(chǎn)生的效果產(chǎn)生了懷疑。與編程和設(shè)計(jì)相比,測(cè)試通常被認(rèn)為是無(wú)聊和困難的。[3]教學(xué)中主要體現(xiàn)在教學(xué)內(nèi)容抽象與學(xué)生學(xué)習(xí)興趣不高。文獻(xiàn)[4]對(duì)軟件測(cè)試教育對(duì)軟件代碼可靠性的影響進(jìn)行了實(shí)證研究,研究發(fā)現(xiàn)軟件測(cè)試知識(shí)能提高編寫(xiě)的代碼的可靠性。國(guó)內(nèi)軟件行業(yè)也普遍存在“重開(kāi)發(fā),輕測(cè)試”的觀點(diǎn),這種觀點(diǎn)延伸到軟件測(cè)試技術(shù)課程的教學(xué)中,導(dǎo)致部分學(xué)生對(duì)軟件測(cè)試這個(gè)職業(yè)存在認(rèn)識(shí)偏差。因此,軟件測(cè)試課程必須改變?cè)瓉?lái)偏重理論講解、學(xué)生缺乏實(shí)踐經(jīng)驗(yàn)的教學(xué)模式,加強(qiáng)實(shí)踐教學(xué)環(huán)節(jié),讓學(xué)生在實(shí)踐中體會(huì)到軟件測(cè)試技術(shù)的重要性。[5]因此該課程迫切需要一個(gè)既能夠體現(xiàn)軟件測(cè)試技術(shù)相關(guān)知識(shí),增強(qiáng)學(xué)生實(shí)踐操作能力,又能夠吸引學(xué)生興趣的實(shí)驗(yàn)環(huán)境?;谟螒蚰J降能浖y(cè)試技術(shù)實(shí)驗(yàn)系統(tǒng)將軟件測(cè)試技術(shù)的知識(shí)點(diǎn)融入到游戲關(guān)卡中,為學(xué)習(xí)者提供了一個(gè)充滿挑戰(zhàn)和樂(lè)趣的實(shí)驗(yàn)環(huán)境,讓學(xué)習(xí)者在快樂(lè)中學(xué)習(xí)相關(guān)概念并在通關(guān)的實(shí)踐中提升實(shí)踐動(dòng)手能力。本系統(tǒng)在設(shè)計(jì)時(shí)借鑒了變異測(cè)試的理念,變異測(cè)試是一種基于缺陷的在細(xì)節(jié)方面對(duì)程序源代碼進(jìn)行改進(jìn)的動(dòng)態(tài)的軟件測(cè)試方法。[6]變異測(cè)試首創(chuàng)于20世紀(jì)70年代,發(fā)展至今,在學(xué)術(shù)界已得到了廣泛的關(guān)注和研究,但在工業(yè)應(yīng)用上仍比較少。在大學(xué)的軟件測(cè)試技術(shù)教材中也提得比較少,一般不作為基本的教學(xué)內(nèi)容。但通過(guò)對(duì)變異測(cè)試的研究,筆者發(fā)現(xiàn)變異測(cè)試的思想雖然在實(shí)際應(yīng)用中還不完全成熟,但通過(guò)變異測(cè)試的練習(xí),可以加深學(xué)習(xí)者對(duì)軟件測(cè)試基本概念、方法和原理的理解,[7-9]基于此,筆者設(shè)計(jì)開(kāi)發(fā)了本實(shí)驗(yàn)系統(tǒng)。該系統(tǒng)是基于一個(gè)角色扮演類游戲而設(shè)計(jì)的,學(xué)習(xí)者可以分別扮演不同的角色來(lái)創(chuàng)建變異體和測(cè)試用例,體會(huì)如何編寫(xiě)可靠性高的軟件,學(xué)習(xí)進(jìn)行軟件測(cè)試的基本方法和原理?!駥?shí)驗(yàn)內(nèi)容1.白盒測(cè)試/黑盒測(cè)試方法白盒測(cè)試方法和黑盒測(cè)試方法[10-11]是軟件測(cè)試中用得最多得兩種測(cè)試技術(shù),也是目前工業(yè)界仍舊在普遍使用的兩種方法。白盒測(cè)試是基于程序源代碼對(duì)程序內(nèi)部的邏輯結(jié)構(gòu)以及相關(guān)信息進(jìn)行測(cè)試的方法,測(cè)試者需先了解程序的內(nèi)部結(jié)構(gòu),根據(jù)被測(cè)程序的內(nèi)部結(jié)構(gòu)設(shè)計(jì)測(cè)試用例,檢驗(yàn)程序中的每條通路是否能按照預(yù)定的要求正確工作。白盒測(cè)試最常用的方法有語(yǔ)句覆蓋、分支覆蓋、條件覆蓋等。黑盒測(cè)試是基于程序功能的測(cè)試方法,目的是檢查軟件的各項(xiàng)功能是否實(shí)現(xiàn)或軟件中是否存在功能上的錯(cuò)誤。黑盒測(cè)試最常見(jiàn)的方法有等價(jià)類劃分法、邊界值分析法等。①語(yǔ)句覆蓋:為了發(fā)現(xiàn)或確認(rèn)程序中的錯(cuò)誤,程序代碼必須被執(zhí)行。直觀地說(shuō),如果包含bug的語(yǔ)句從未被任何測(cè)試執(zhí)行過(guò),那么就無(wú)法檢測(cè)到bug。語(yǔ)句覆蓋率是衡量測(cè)試質(zhì)量的最通用的標(biāo)準(zhǔn)。圖1是一個(gè)演示語(yǔ)句覆蓋的游戲程序:圖1(a)為被測(cè)試的程序,圖1(b)是測(cè)試程序。此測(cè)試程序中設(shè)計(jì)的測(cè)試用例僅涵蓋了if條件語(yǔ)句的true分支,而未涵蓋第二個(gè)return語(yǔ)句,因此此測(cè)試程序沒(méi)有達(dá)到語(yǔ)句覆蓋的要求。②分支覆蓋:分支覆蓋要求程序控制流圖中的所有邊至少執(zhí)行一次,這意味著每個(gè)if條件語(yǔ)句都需要取一次真值和假值。圖2給出了一個(gè)分支覆蓋示例游戲程序。圖2(a)是被測(cè)程序,圖2(b)是測(cè)試程序,初始測(cè)試集涵蓋了所有語(yǔ)句,即滿足語(yǔ)句覆蓋的要求,但沒(méi)有達(dá)到分支覆蓋的要求。③循環(huán)測(cè)試:系統(tǒng)已經(jīng)定義了各種覆蓋標(biāo)準(zhǔn)來(lái)處理循環(huán)引起的挑戰(zhàn)。例如,不同的循環(huán)迭代次數(shù)可能導(dǎo)致發(fā)現(xiàn)不同的錯(cuò)誤。圖3顯示了一個(gè)循環(huán)測(cè)試示例游戲程序,其中現(xiàn)有的測(cè)試套件涵蓋了循環(huán)未執(zhí)行和僅執(zhí)行一次的情況,但不包括循環(huán)多次執(zhí)行的情況。④邊界值測(cè)試。圖4顯示了邊界值測(cè)試的示例,其中現(xiàn)有測(cè)試集實(shí)現(xiàn)了分支覆蓋,但是沒(méi)有在x>100的邊界上進(jìn)行測(cè)試。2.測(cè)試用例概念在進(jìn)行軟件測(cè)試時(shí),設(shè)計(jì)測(cè)試用例是一個(gè)非常重要的環(huán)節(jié),測(cè)試用例設(shè)計(jì)的好壞直接影響到是否能發(fā)現(xiàn)缺陷,測(cè)試用例設(shè)計(jì)得好就能發(fā)現(xiàn)缺陷,并可能會(huì)發(fā)現(xiàn)比較多的缺陷,設(shè)計(jì)得不好,也許就發(fā)現(xiàn)不了缺陷或者只能發(fā)現(xiàn)一些比較容易發(fā)現(xiàn)的缺陷。所以,編寫(xiě)測(cè)試用例是軟件測(cè)試中必不可少的環(huán)節(jié)。本實(shí)驗(yàn)系統(tǒng)學(xué)習(xí)者通過(guò)扮演防御者角色來(lái)設(shè)計(jì)測(cè)試用例,掌握一些設(shè)計(jì)測(cè)試用例的技巧,并積累設(shè)計(jì)好的測(cè)試用例的經(jīng)驗(yàn)?!駥?shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)1.實(shí)驗(yàn)系統(tǒng)框架結(jié)構(gòu)本系統(tǒng)結(jié)構(gòu)由游戲模式和學(xué)習(xí)模式兩個(gè)模塊組成如圖5所示。學(xué)習(xí)模式主要提供給對(duì)相關(guān)知識(shí)還不是很熟悉的學(xué)習(xí)者在進(jìn)入游戲模式之前進(jìn)行學(xué)習(xí)、練習(xí)的模塊。游戲模式主要提供給學(xué)習(xí)者實(shí)操使用。2.游戲模式設(shè)計(jì)游戲包括攻擊者模式和防御者模式兩種游戲模式,學(xué)習(xí)者可以通過(guò)攻擊者模式來(lái)對(duì)源程序進(jìn)行修改,通過(guò)防御者模式來(lái)創(chuàng)建測(cè)試用例檢測(cè)出修改的部分。通過(guò)兩種模式的操作,學(xué)習(xí)者可以對(duì)軟件測(cè)試的相關(guān)概念、方法和原理進(jìn)行實(shí)操訓(xùn)練。(1)攻擊者模式在攻擊者模式中,學(xué)習(xí)者最主要的目標(biāo)就是改變?cè)闯绦?,使改變的部分盡可能難被測(cè)試用例檢測(cè)出來(lái),如下頁(yè)圖6所示,學(xué)習(xí)者可在此模塊看到詳細(xì)源代碼,并且可對(duì)源代碼進(jìn)行合法的微小的修改。學(xué)習(xí)者在修改程序時(shí)須遵守以下規(guī)則:①不能修改源程序的類名、函數(shù)名、變量名以及數(shù)據(jù)類型;②修改后的程序必須可運(yùn)行,即沒(méi)有語(yǔ)法上的缺陷;③不能向程序中添加新的if語(yǔ)句或循環(huán)語(yǔ)句;④修改的部分必須有輸出值;⑤每次修改程序只能引入一個(gè)故障(fault)。以圖1所示的語(yǔ)句覆蓋示例為例。當(dāng)學(xué)習(xí)者作為攻擊者時(shí),系統(tǒng)將向?qū)W習(xí)者玩家展示源程序和測(cè)試集,學(xué)習(xí)者的任務(wù)是修改源程序創(chuàng)建測(cè)試集不能檢測(cè)到的變異體,下頁(yè)圖7所示的游戲程序?yàn)楣粽邉?chuàng)建的一個(gè)變異體。(2)防御者模式在防御者模式中,學(xué)習(xí)者最主要的目標(biāo)就是創(chuàng)建測(cè)試用例,找出攻擊者模式中玩家創(chuàng)建的變異體。如下頁(yè)圖8所示,學(xué)習(xí)者可根據(jù)修改后的源代碼在界面上輸入測(cè)試用例。測(cè)試數(shù)據(jù)需要滿足以下條件:①輸入的測(cè)試數(shù)據(jù)必須對(duì)源程序和修改后的源程序引起不同的程序狀態(tài);②修改的輸出值的語(yǔ)句必須被執(zhí)行且該輸出值能夠被測(cè)試數(shù)據(jù)檢測(cè)出來(lái)。判斷學(xué)習(xí)者是否殺死當(dāng)前變異體的最主要的方式是,學(xué)習(xí)者創(chuàng)建測(cè)試用例后,在源代碼和修改代碼中運(yùn)行該測(cè)試用例,然后判斷兩者的輸出值是否相同。如果源代碼和修改代碼的輸出值不同,則說(shuō)明學(xué)習(xí)者創(chuàng)建的測(cè)試用例成功檢測(cè)出了修改部分,即殺死了當(dāng)前變異體,反之則說(shuō)明沒(méi)有檢測(cè)出程序的修改。還是以圖1的語(yǔ)句覆蓋為例,如果防御者輸入的測(cè)試用例為x=10,則運(yùn)行源代碼和修改代碼后的輸出結(jié)果是一樣的,說(shuō)明防御者設(shè)計(jì)的測(cè)試用例沒(méi)有發(fā)現(xiàn)缺陷,據(jù)此判定攻擊者勝,攻擊者得分。如果輸入測(cè)試用例為x=3,則運(yùn)行源代碼和修改后代碼的輸出結(jié)果是不一致的,據(jù)此可以判定防御者在這一局中勝,防御者得分?!窠虒W(xué)評(píng)估1.課程管理教師可以使用這個(gè)基于游戲模式的實(shí)驗(yàn)系統(tǒng)來(lái)進(jìn)行軟件測(cè)試技術(shù)課程的實(shí)驗(yàn)教學(xué),并通過(guò)這個(gè)系統(tǒng)對(duì)課程進(jìn)行管理。系統(tǒng)在實(shí)際使用時(shí)教師可以以管理員的角色來(lái)對(duì)源代碼進(jìn)行管理。教師可以根據(jù)教學(xué)進(jìn)度更換或者新增符合當(dāng)前教學(xué)知識(shí)點(diǎn)的比較典型的游戲代碼,讓學(xué)習(xí)者根據(jù)當(dāng)前所學(xué)的內(nèi)容,針對(duì)新的源代碼進(jìn)行代碼修改;同時(shí),學(xué)習(xí)者也可以針對(duì)新修改的程序來(lái)設(shè)計(jì)測(cè)試用例。教師可以查看每位學(xué)習(xí)者的參與度,也可以根據(jù)每個(gè)學(xué)習(xí)者修改的程序數(shù)量、檢測(cè)出來(lái)的變異體數(shù)量等信息來(lái)判斷學(xué)習(xí)者對(duì)知識(shí)的掌握程度。2.教學(xué)效果使用基于游戲的軟件進(jìn)行實(shí)踐學(xué)習(xí),寓教于樂(lè),還可以增強(qiáng)學(xué)習(xí)過(guò)程中的競(jìng)爭(zhēng)性,增強(qiáng)學(xué)習(xí)者學(xué)習(xí)的積極性,同時(shí)也增強(qiáng)學(xué)習(xí)者實(shí)踐教學(xué)的參與度。軟件記錄了每位學(xué)習(xí)者修改的源程序數(shù)量、檢查出多少修改代碼的數(shù)量以及在練習(xí)模式中答對(duì)的習(xí)題數(shù)量,學(xué)習(xí)者和教師均可以通過(guò)這些數(shù)據(jù)分析學(xué)習(xí)成果,學(xué)習(xí)者可以通過(guò)在游戲中扮演不同的角色,在游戲通關(guān)中掌握知識(shí),也能夠了解自己在哪些方面存在不足,需要改進(jìn)。教師可以根據(jù)學(xué)習(xí)者的實(shí)踐教學(xué)參與度來(lái)調(diào)整課堂教學(xué)內(nèi)容、教學(xué)方法以及教學(xué)難度,適當(dāng)增加源代碼以及習(xí)題的難度,可以提升學(xué)習(xí)者學(xué)習(xí)的積極性、競(jìng)爭(zhēng)性。本系統(tǒng)不僅可以作為實(shí)驗(yàn)用工具,還可以作為評(píng)價(jià)工具。例如,將課程考試由筆試的形式改為在游戲軟件中進(jìn)行,在規(guī)定的時(shí)間內(nèi)創(chuàng)建一定數(shù)量的有效新代碼,創(chuàng)建測(cè)試用例檢查新代碼。●結(jié)語(yǔ)在本文中,我們提出了基于游戲的軟件測(cè)試技術(shù)實(shí)驗(yàn)教學(xué)模式,使學(xué)生在游戲中掌握軟件測(cè)試技術(shù)的相關(guān)概念、方法和原理。學(xué)生在創(chuàng)建新程序以及創(chuàng)建測(cè)試用例的同時(shí),不僅可以掌握軟件測(cè)試的相關(guān)知識(shí),還能對(duì)如何編寫(xiě)高質(zhì)量軟件有一定的理解。同時(shí),由于實(shí)驗(yàn)是在游戲中進(jìn)行的,這樣就為枯燥的軟件測(cè)試課程增加了樂(lè)趣,更加吸引學(xué)生。接下來(lái)我們所面對(duì)的挑戰(zhàn)就是評(píng)估此款游戲軟件對(duì)使用者產(chǎn)生的影響,評(píng)估游戲軟件在學(xué)習(xí)者使用的過(guò)程中是否有不合理或需要優(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]董玉坤.“軟件測(cè)試”課程教學(xué)現(xiàn)狀分析[J].課程教育研究,2015(25):229-229.[6]JiaY,HarmanM.AnAnalysisandSurveyoftheDevelopmentofMutationTesting[J].IEEETransactionsonSoftwareEngineering,2011,37(05):649-678.[7]使用muJava進(jìn)行變異測(cè)試[EB/OL].https:///wkw1125/article/details/51967630.[8]茆亮亮.變異測(cè)試技術(shù)應(yīng)用研究[D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2010.[9]陳翔,顧慶.變異測(cè)試:原理、優(yōu)化和應(yīng)用[J].計(jì)算機(jī)科學(xué)與探索,2012(12).[10]BillHetzel.TheCompleteguidetoSoftwareTesting.1993:1057-1075.[11]CoreySandler,GlenfordMyers,TomBadgett,TheArtofSoftwareTesting,3rd
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年鋼筋工程專項(xiàng)勞務(wù)分包協(xié)議范本版B版
- 2024年高科技設(shè)備回購(gòu)擔(dān)保及研發(fā)支持合同2篇
- 2025年度大件運(yùn)輸許可電子檔案管理規(guī)范3篇
- 2024年設(shè)備技術(shù)轉(zhuǎn)讓協(xié)議2篇
- 2024年甲乙雙方標(biāo)準(zhǔn)建設(shè)工程施工合同示范文本的簽訂
- 2025年度離婚后子女撫養(yǎng)費(fèi)及監(jiān)護(hù)權(quán)支付協(xié)議3篇
- 2025年度賓館客戶關(guān)系管理系統(tǒng)開(kāi)發(fā)與實(shí)施合同3篇
- 2025年度化妝品店鋪轉(zhuǎn)讓及銷售渠道拓展合同3篇
- 2025年度按揭中二手房買賣合同范本:全裝修交付版3篇
- 2024年版地方政府土地征收補(bǔ)償合同標(biāo)準(zhǔn)文本
- 期末復(fù)習(xí)試題(試題)-2024-2025學(xué)年五年級(jí)上冊(cè)數(shù)學(xué)蘇教版
- 河北省石家莊市2023-2024學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 2024 ESC心房顫動(dòng)管理指南解讀-第二部分
- 小學(xué)科學(xué)說(shuō)課稿:《水能溶解一些物質(zhì)》說(shuō)課稿
- 國(guó)家八年級(jí)數(shù)學(xué)質(zhì)量測(cè)試題(六套)
- 設(shè)計(jì)說(shuō)明書(shū)——曲柄連桿機(jī)構(gòu)
- 物理化學(xué)實(shí)驗(yàn)報(bào)告
- 少兒財(cái)商講座(課堂PPT)
- 3勞務(wù)分包商動(dòng)態(tài)評(píng)價(jià)管理制度
- 市場(chǎng)發(fā)展部崗位職責(zé)
- 《水利水電工程施工監(jiān)理規(guī)范SL288-2021表格》2021年1月更新
評(píng)論
0/150
提交評(píng)論