賈曉輝 劉安戰(zhàn) 李勇軍
摘? 要∶文章以測試實戰(zhàn)及就業(yè)導(dǎo)向為根本出發(fā)點,對“軟件測試”課程開展了以測試大賽及開源項目為測試實踐的“兩段式實踐”教學(xué)改革探索,并詳實記錄了實踐教學(xué)的“兩真”執(zhí)行過程及“一真”執(zhí)行結(jié)果。該實踐方案為學(xué)生指明了測試行業(yè)就業(yè)的方向,為實現(xiàn)軟件工程專業(yè)應(yīng)用型人才培養(yǎng)目標(biāo)指出了一條切實可行之路。
關(guān)鍵詞∶兩段式實踐;軟件測試;教學(xué)改革;開源軟件;測試大賽中圖法分類號∶TP311??? 文獻(xiàn)標(biāo)識碼∶A
Exploration on practical teaching reform of skill-oriented "software testing" course JIA Xiaohui,LIU Anzhan,LI Yongjun
(Software College,Zhongyuan University of Technology,Zhengzhou 45007, China)
Abstract:The article takes the actual testing and enployment orientation as the fundamental starting point, carries out the“two-stage practice”teaching reform and exploration for the“software testing”course with testing competitions and open source projects as the testing practice, and records the "two truths" of practical teaching in detail and"olne true”execution result. This practice program points out the direction of the students employmert in the testing industry, and points out a practical way to achieve the goal of training applied talents in software engineering.
Key words: two-stage practice,software testing, teaching reform, open source software, testing competition
1現(xiàn)狀
現(xiàn)階段,功能測試、自動化測領(lǐng)域試及人工智能、大數(shù)據(jù)方向的新興測試領(lǐng)域蓬勃發(fā)展。2020年,第十四屆軟件測試現(xiàn)狀調(diào)查數(shù)據(jù)統(tǒng)計顯示,54.2%的公司未來在功能測試領(lǐng)域投入更多資金,56.9%的公司計劃未來在接口自動化測試領(lǐng)域投入更多資金,行業(yè)對接口自動化測試需求呈現(xiàn)出快速發(fā)展趨勢。據(jù)統(tǒng)計,2020年,中國軟件測試人才缺口近40萬,并且每年以20%的速度增加。然而,測試就業(yè)優(yōu)勢并沒有打破大學(xué)生對軟件測試學(xué)習(xí)的固有認(rèn)識。絕大部分學(xué)生及講師對測試工作依然留有刻板印象。例如,學(xué)生對測試行業(yè)沒有客觀認(rèn)識,教師缺乏教學(xué)熱情、照本宣科、自顧自講課,難以激發(fā)學(xué)生的學(xué)習(xí)熱情,教學(xué)內(nèi)容不能緊跟軟件測試行業(yè)的發(fā)展,測試課程的實踐環(huán)節(jié)不能從根本上發(fā)現(xiàn)項目存在的場景問題。學(xué)生視野囿于教材,看不到社會需求。因為沒有經(jīng)歷合適的實踐過程,課程學(xué)習(xí)結(jié)束之后依然看不清形式,找不到就業(yè)方向,甚至不能全面正確理解軟件開發(fā)所包含的工作。因此,高校的“軟件測試”課程亟須從實際出發(fā),主動擁抱企業(yè)檢驗,用實際行動縮短“供、需”之間的差距。
針對所存在的問題,國內(nèi)外學(xué)者進(jìn)行了相關(guān)研究。例如,吳瀟雪等[1]從教學(xué)方法方面進(jìn)行了探索,提出了基于Scrum方法的“軟件測試”課程教學(xué)模式,取得了良好的教學(xué)效果。鄭霖娟等[2]從崗位需求出發(fā),提出教學(xué)時應(yīng)以崗位核心能力為中心確定教學(xué)目標(biāo),極大提高了學(xué)生的崗位技能和職業(yè)素養(yǎng)。李雯睿等[3]基于項目提出了以基于主動學(xué)習(xí)策略的“軟件測試”課程學(xué)習(xí)方法。張維勤等[4]對“軟件測試”課程提出了基于項目驅(qū)動教學(xué)模式的改革實踐。劉曉榮等[5]從課程體系方面研究了技能大賽對“軟件測試”課程的作用和意義?!败浖y試與質(zhì)量保證”是中原工學(xué)院軟件學(xué)院軟件工程專業(yè)的一門核心專業(yè)技能課程,受專業(yè)總學(xué)時壓縮影響,設(shè)置成為30學(xué)時的秋季學(xué)期考查課程,常規(guī)教學(xué)效果微乎其微。經(jīng)過討論及權(quán)衡,明確以培養(yǎng)軟件測試工程師崗位核心能力為教學(xué)目標(biāo),從提升學(xué)生的實踐動手能力入手,提出了以“兩段式實踐”為抓手的“軟件測試”課程教學(xué)改革。
2教學(xué)改革探索
如何有效利用有限的課堂時間并能從測試能力上訓(xùn)練學(xué)生,同時保證學(xué)生從心底欣然接受軟件測試的相關(guān)就業(yè)崗位,是教師首先需要考慮的問題。軟件測試是保證軟件質(zhì)量的重要手段,也是軟件工程中不可分割的一個組成部分。隨著移動互聯(lián)網(wǎng)的迅速發(fā)展和當(dāng)前市場對軟件測試人員的需求越來越大,“軟件測試”課程的地位應(yīng)該也逐步提高,目標(biāo)應(yīng)該調(diào)整為培養(yǎng)符合社會需求的優(yōu)秀軟件測試工程師,不應(yīng)該繼續(xù)止步于課本上的測試概念,因此從“測試競賽+測試開源項目”兩個方面進(jìn)行了改革嘗試。
2.1競賽參與
最直接、最近距離了解企業(yè)需求的渠道就是參加社會競賽。因為企業(yè)的真實需求存在于競賽中,因此競賽也是行業(yè)需求的風(fēng)向標(biāo)。比如,美國有名的Netflix百萬推薦算法大賽和國內(nèi)的火焰杯軟件測試大賽等都是基于行業(yè)需求。
“全國大學(xué)生軟件測試大賽”旨在建立軟件產(chǎn)業(yè)和高等教育的資源對接,探索產(chǎn)教研融合的軟件測試專業(yè)培養(yǎng)體系,進(jìn)一步推動高等院校軟件測試專業(yè)建設(shè)。截止到2019年,參賽人次已超過41000人,涉及高校超過390所,在高校中具有一定影響力,因此課程組教師決定帶領(lǐng)學(xué)生迎接挑戰(zhàn),參加2021年的全國大學(xué)生軟件測試大賽。
(1)組織學(xué)生報名??紤]到教學(xué)目標(biāo)及學(xué)生的課業(yè)承受能力,結(jié)合測試時間,及時調(diào)整教學(xué)內(nèi)容,將該課程的實踐學(xué)習(xí)主要內(nèi)容修改為測試大賽的練習(xí)。組織2019級網(wǎng)絡(luò)方向54名學(xué)生結(jié)合個人興趣報名參加了2021年的Web應(yīng)用、移動應(yīng)用等六個測試方向的全國大學(xué)生測試大賽。并提出“靠開發(fā)進(jìn)不了大廠,也要靠測試進(jìn)入大廠”的學(xué)習(xí)口號。
(2)結(jié)合競賽方向安裝測試環(huán)境。為了打消大部分學(xué)生的畏難情緒,有效利用有限的課堂時間,提高課堂教學(xué)質(zhì)量及效率,發(fā)揮學(xué)習(xí)能力強(qiáng)的學(xué)生“領(lǐng)頭羊”的作用,課堂上分享個人測試環(huán)境安裝經(jīng)驗,激發(fā)更多學(xué)生的競爭意識,其他學(xué)生緊隨其后,積極參與,測試環(huán)境的安裝問題得以高效解決。
(3)測試題目的練習(xí)。因為測試大賽主要工作涉及功能測試及性能測試,考慮到不同的測試方向,其測試環(huán)境、測試軟件各不相同,不能占用課堂時間一一講解。而不經(jīng)歷完整的測試競賽,則不能提升學(xué)生的測試經(jīng)驗。因此,經(jīng)反復(fù)權(quán)衡,決定教師主講性能測試,學(xué)生自學(xué)功能測試的解決方案。一方面,教師課前將歷屆測試大獎得主的經(jīng)驗分享及JMETER測試軟件、測試得分點等以不同形式推給學(xué)生提前了解,然后課堂上重點內(nèi)容重點講解。性能測試問題很快得到了較好處理,部分學(xué)生經(jīng)過練習(xí),性能測試取得了滿分的好成績。另一方面,同一測試方向的學(xué)生結(jié)成學(xué)習(xí)小組,共同解決相似的測試問題,學(xué)生也明確了需要自學(xué)的測試工作。高效率的群體學(xué)習(xí),使得大部分學(xué)生很快熟悉了各自測試方向的競賽要求,并迅速進(jìn)入測試訓(xùn)練狀態(tài)。
2021年,中原工學(xué)院軟件學(xué)院第一次組織學(xué)生參加了全國軟件測試競賽,以賽促學(xué),從最開始的了解大賽、報名、安裝環(huán)境、練習(xí)、參加大賽,每個環(huán)節(jié)都是師生共同面對的巨大挑戰(zhàn),每一步都離不開教師的引導(dǎo),更離不開學(xué)生的積極配合。這不僅提升了課堂學(xué)習(xí)質(zhì)量,學(xué)生通過競賽或找到了學(xué)習(xí)目標(biāo),或明確了學(xué)習(xí)興趣,或?qū)崿F(xiàn)了自我突破,所有參與的學(xué)生都極大地鍛煉了自學(xué)能力,并感受到了集體智慧的力量。中原工學(xué)院軟件學(xué)院2019級網(wǎng)絡(luò)方向?qū)W生主修高級程序語言是C++,而軟件測試競賽需要的語言環(huán)境全部是Java,測試腳本、測試用例、測試運(yùn)行都需要Java實現(xiàn),需要有極大勇氣挑戰(zhàn)自己。歷經(jīng)初賽、復(fù)賽,長達(dá)1個多月的準(zhǔn)備時間,取得了3個省級三等獎,4個省級優(yōu)勝獎的好成績,如表1所列。
2.2項目實踐
實踐是提升學(xué)習(xí)能力的重要手段。測試大賽初賽結(jié)束后,小部分學(xué)生晉級省賽,大部分學(xué)生回歸正常課堂。若測試大賽更多的是依靠個人興趣及毅力堅持到底,則課堂實踐學(xué)習(xí)就要更多依賴?yán)蠋熞龑?dǎo)、激勵。為了使學(xué)生真正理解測試行業(yè)并能從業(yè)測試行業(yè)工作,經(jīng)過研究,最終決定拋棄最初測試個人項目的測試實踐教學(xué)安排,轉(zhuǎn)而投向開源項目的測試。
“禪道”是一款開源的國產(chǎn)軟件項目管理軟件,其版本迭代非???。關(guān)于測試的管理流程,從建立測試小組,分配測試任務(wù)、測試執(zhí)行、bug提交、缺陷修復(fù)等管理流程,全程使用“禪道”。布置實踐任務(wù)的時候,鼓勵學(xué)生測試“禪道”,并把測試發(fā)現(xiàn)的bug提交到“禪道”官網(wǎng)的論壇中,一方面是體現(xiàn)學(xué)生的個人測試能力,另一方面也提高自身在測試行業(yè)的關(guān)注度。部分學(xué)生在測試“禪道”候的確發(fā)現(xiàn)了缺陷,而教師關(guān)于測試對象、測試論壇、缺陷管理等提醒也使得學(xué)生看問題越來越長遠(yuǎn),學(xué)生在學(xué)習(xí)中逐步具備了初步描繪自己職業(yè)發(fā)展的想法。以團(tuán)隊形式組建的項目測試小組,不僅加強(qiáng)了交流,也提升了合作能力,加深了學(xué)生之間的相互了解和友誼。
2.3教學(xué)相長
第一次測試課程的實踐教學(xué)探索,參與改革的教師無形中需要投入更多地學(xué)習(xí)時間。為了保證教學(xué)內(nèi)容緊跟行業(yè)發(fā)展,每次課程都能使學(xué)生有收獲,教師都是提前組織即將學(xué)習(xí)的主題內(nèi)容,在網(wǎng)上找各種視頻及其他形式的資源,經(jīng)過篩選,把最合適的視頻及文本轉(zhuǎn)發(fā)到學(xué)生群,安排給學(xué)生自學(xué)。然后,教師獨自消化、總結(jié),隨時線上交流,相互探討。最終,在課堂上以教師講解或者學(xué)生分享等方式傳達(dá)到更多學(xué)生,并留出時間開展測試練習(xí),撰寫測試報告。
學(xué)生在實踐的過程中遇到各種問題,反過來能啟發(fā)教師。在利用“禪道”管理軟件進(jìn)行測試的過程中,某學(xué)生發(fā)揚(yáng)愚公移山、持之以恒的精神解決登錄密碼丟失的問題,其鍥而不舍的學(xué)習(xí)精神值得表揚(yáng)與肯定;有學(xué)生還聰明地發(fā)現(xiàn)免下載、免注冊的“云禪道”,為大家提供了更快捷的使用方法;還有學(xué)生經(jīng)過測試發(fā)現(xiàn)了“禪道”的一些缺陷。學(xué)生發(fā)現(xiàn)問題并獨立解決問題的成長過程,讓老師獲得職業(yè)成就感。
3課程考核
學(xué)生的成績與學(xué)生的學(xué)習(xí)過程緊密結(jié)合,綜合考慮測試大賽的實踐過程、測試環(huán)境安裝或者測試流程相關(guān)視頻的錄制、測試報告、口頭匯報、測試論文等各個實踐環(huán)節(jié),加權(quán)打分,該班級最終成績打破了歷史上最好期末考試成績記錄,54人中21人最終成績90分以上,占比39%。但是,也有1人因為很多實踐過程沒有參與而不及格。期末成績分布如圖1所示。
分?jǐn)?shù)并不能完全反映學(xué)生的學(xué)習(xí)收獲情況,需要教師針對實際情況給與客觀評價。比如,一部分從來沒參加過任何競賽的學(xué)生,認(rèn)為自己敢于實現(xiàn)從0到1的突破,就是最大的收獲;有的學(xué)生因為參加競賽更加明確了自己的努力方向;有的學(xué)生因為學(xué)習(xí)該課程對自己的專業(yè)更加有信心;也有學(xué)生不僅專業(yè)技能得到提升,更是從團(tuán)隊合作中獲得了友情等不一而足。
4經(jīng)驗總結(jié)
采取上述形式打破常規(guī)組織教學(xué),實際上任課教師最初也曾經(jīng)動搖過,因為該課程是只有30學(xué)時的考查課,部分學(xué)生只希望獲得相應(yīng)學(xué)分。當(dāng)教師要求他們投入更多的時間去參加競賽,可能遭到拒絕,甚至可能對教師的教學(xué)評價成績產(chǎn)生影響。但是,這種最接近工作場景的競賽才能夠最大限度地讓學(xué)生體會測試的工作內(nèi)容、了解行業(yè)的發(fā)展和需求,即使再困難也值得嘗試。因此,首先要想辦法讓學(xué)生理解教師的良苦用心,主動配合。其次是調(diào)動學(xué)生的積極性,盡力幫助學(xué)生進(jìn)入競賽狀態(tài)。
5改進(jìn)措施
不斷總結(jié)經(jīng)驗,繼續(xù)完善以技能為導(dǎo)向的軟件質(zhì)量保證與測試課程改革,有效開展“兩段式實踐”教學(xué),既能學(xué)習(xí)軟件測試?yán)碚撝R,又可以積累軟件測試實踐經(jīng)驗,為就業(yè)做好準(zhǔn)備,形成成熟并可以推廣的教學(xué)執(zhí)行方案。
第一階段圍繞競賽安排教學(xué)進(jìn)度及教學(xué)內(nèi)容。因為測試大賽初賽是在每年的10月底舉行,所以學(xué)期開始首先安排大賽需要的功能測試?yán)碚撝R,然后結(jié)合個人興趣,圍繞軟件測試大賽報名、練習(xí)等開展實踐學(xué)習(xí),直到測試初賽結(jié)束;第二階段以開源項目為測試對象安排教學(xué)工作。在測試實際項目的同時,強(qiáng)調(diào)測試用例設(shè)計的重要性及測試報告的規(guī)范性,合理分配測試工作,有計劃地結(jié)合專業(yè)方向,重點傳授與方向相關(guān)的測試工具的使用方法。
6結(jié)束語
本文圍繞以實踐為抓手的“軟件測試”課程實踐教學(xué)改革,以提升學(xué)生實踐能力為目標(biāo),介紹了“軟件測試”課程中創(chuàng)造性地加入測試競賽、開源項目為測試對象的實踐探索,并總結(jié)了實踐教學(xué)經(jīng)驗,同時指出了后續(xù)的改進(jìn)方向。
參考文獻(xiàn):
[1]吳瀟雪,鄭煒,慕德俊,等.基于Scrum方法的軟件測試教學(xué)模式探索與實踐[J].計算機(jī)教育,2018(2):74-77.
[2]鄭霖娟,林昆.基于崗位核心能力的“軟件測試技術(shù)”課程設(shè)計與實踐[J].軟件,2020,41(10):286-288.
[3]李雯睿,張鵬程,楊種學(xué).基于主動學(xué)習(xí)策略的軟件測試教學(xué)方法初探[J].計算機(jī)教育,2012(8):54-57.
[4]張維勤,張國鋒.基于項目驅(qū)動教學(xué)模式的軟件測試課程創(chuàng)新研究[J].信息與電腦,2020,32(17):243-244.
[5]劉曉榮,高蘭德.基于技能大賽下的軟件測試課程體系的探討與研究[J].電腦知識與技術(shù):學(xué)術(shù)版,2019,15(11):91-92.
作者簡介:
賈曉輝(1972—),碩士,副教授,研究方向:知識圖譜。