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