張艷梅,王榮存,薛 猛,鞠小林,袁 冠,姜淑娟
(1.中國礦業大學 計算機科學與技術學院,江蘇 徐州 221116;2.南通大學 計算機科學與技術學院,江蘇 南通 226019)
所謂專業認證(即專門職業性專業認證)指的是專業性認證機構對高等教育機構開設的職業性專業教育實施的專門性認證,由專門職業協會會同該專業領域的教育工作者一起進行,為相關人才進入專門職業界從業的預備教育提供質量保證。它主要是對專業學生培養目標、質量、師資隊伍、課程設置、實驗設備、教學管理、各種教學文件及原始資料等方面的評估,指向一所學校的具體專業或專門學校。專業認證是社會中介組織進行的外部評估,以本專業所有學生的學習結果為認證的主要目標,保證與改進教育質量,建立與今后注冊工程師制度相銜接的與國際等效的認證體系。專業認證的目的之一是吸引工業界的廣泛參與,密切工程教育與工業界之間的聯系,提高工程教育人才培養對產業的適應性,開展專業認證可以為學生就業提供保證[1]。
在我國啟動高校“雙一流”建設戰略的新形勢下,專業認證處于重要地位,發揮著其積極作用,為高校建立良好的人才培養體系,建立持續優化的質量保障機制提供保障,從而不斷提高專業實力和人才培養質量。我國加入《華盛頓協議》意味著專業認證具備國際實質等效性,能促進高校專業按照國際先進理念促進教學改革,加快我國高校與國際水平接軌,最終建成世界一流大學[2]。
隨著“互聯網+”和信息技術的發展,IT產業在社會生活和國民經濟中廣泛深入,軟件質量和可靠性的保證尤為重要。目前我國IT行業大約有400萬左右技術崗位,其中軟件測試技術人才缺口至少30萬。軟件測試人員與開發人員占比在1∶4及以上的企業高達55.13%。目前,我國高質量軟件測試技術人才非常稀缺,嚴重影響著軟件行業的發展,因此培養軟件測試行業所需技術人才的軟件測試技術課程,顯得尤為重要。
從軟件公司及高校角度來說,大都存在輕測試、重開發的想法,認為軟件測試任何人都能夠輕易學會。因此,有一部分高校并沒有開設軟件測試這類課程,或者即便設置了這門課程,但是學時較少,或是經常被一些其他的新課程代替。這些輕測試的思想,對保證軟件產品的質量是非常不利的。
從學生角度來說,他們對軟件測試的認知度整體不高,對軟件測試行業也存在著一定的偏見。由于傳統的軟件測試技術課程的教學內容涵蓋的大多數是理論知識,并且有些內容在其前置課程軟件工程課程當中有所涉獵,案例大多也是一些規模很小的實例,因此導致學生誤認為軟件測試技術課程內容很簡單,將來畢業不想從事軟件測試相關的行業,只是抱著應付考試的心態對待這門課程。
(1)能力培養目標不達標。軟件測試技術作為計算機科學與技術專業的一門專業課程,在培養學生分析問題、解決問題的能力中占據重要的地位。通過本課程的學習,學生應具有以下能力:獲取項目相關信息的能力、解決工程實際問題的能力、在具體的實踐中測試工程軟件的能力、團隊合作與人際交流能力、終生學習的可持續發展能力[2]。然而傳統的教學重理論輕實踐,內容陳舊,學生所學知識停留在教材上,學生興趣不易激發,缺乏主動思考的動力,探求問題的積極性不高,應用能力和創新能力不強。
(2)教學內容不夠合理。傳統的教學中,任課教師往往基于教材,注重原理性和知識性,按部就班地講解一門課程的知識點。學生也只是被動地接受和學習知識點,而并不能接觸完整的實際項目。現有的軟件測試技術教學素材大多是任課教師自己設計一些實例,或者從互聯網站(如開源網站或軟件公司網站等)下載的一些規模較小的項目。作為一門完整的課程來講,這些素材之間往往是孤立的,并不能從根本上發揮培養學生實踐技能的作用。
缺乏完善的課程教學平臺。目前很多高校沒有軟件測試技術課程的教學平臺,大多采用公共郵箱、網盤等公共資源,上傳課件、布置題目。雖然這種方式一定程度上帶來了便利,但是也存在著較大的局限性,如上傳課程內容過于簡單,無法提供真實的測試平臺;教師對學生和作業的管理,尤其是對于工業界的實際案例的測試結果的判斷難度較大,需要手工批改作業,效率極低、互動性不強等,需要借助一個更加完善的軟件測試技術課程教學平臺,用以提高該課程的教學效果。
為了加強對軟件測試技術課程的重視程度,應鼓勵教師積極參加各種有益的培訓,以提升教師的專業技能和教學能力,如團隊教師積極申報教育部產學合作協同育人項目——慕測師資培訓項目,該項目主要面向青年教師,由企業組織教師開展技術培訓、經驗分享、項目研究等內容,為的是不僅可以提升教師的工程實踐能力和教學水平,更重要的是支持基于高校在軟件測試相關專業開發者測試、Web測試、安全測試、移動應用測試的應用型人才培養中出現的技術與行業脫節,人才培養不符合企業需求等方面,建立有實用價值的軟件測試案例庫,提出合理的改革方案,形成與行業對接的培養方案,構建素質、能力、知識、創新等方面相互協調的培養體系。
為了解決現有軟件測試技術教學達不到專業認證關于人才能力培養目標這一問題,轉變思想,與時俱進,更新教學理念,積極采用小組討論、案例教學、項目訓練等多種形式,縮短與軟件行業需求之間的差距,培養學生的工程觀。
2.2.1 參與互動教學
授課前,我們對學生喜歡的教學形式和是否希望學到工業界真實案例內容進行了一份問卷調查,并以其中的一個班級為例,發現針對喜歡的教學形式這一問題(如圖1所示),有75%(39人)的學生選擇學生參與互動授課,有25%(13人)的學生選擇了傳統授課。由此可見,學生內心還是更傾向于雙向交流,希望在與老師和同學們的討論過程中提高自己的能力。對于是否希望學到工業界真實案例內容(圖2)這一問題,幾乎所有的人選擇愿意接受工業界真實項目,達到96%(50人)。
2.2.2 以工程案例應用為導向的教學實施
為了解決學生在解決實際工程問題方面得不到真正鍛煉,不能滿足專業認證的目標中要求培養的軟件測試能力的問題,我們從教材的選取出發到課程的授課方式等階段進行了較為全面的改革。首要是教材的選取,需要選取一本涵蓋內容較全又不過于冗余、軟件測試技術較新的課本作為教材。①由于軟件測試技術具有時效性的特點,而課程教材案例往往時效性不強。在課時很有限的情況下,如果需要滿足保質保量完成教學任務,一般不能完全依據課本的內容安排教學內容,因此我們適當地對內容進行了一定調整、刪減并增加了一些當前研究最前沿的內容,如移動應用測試、Web應用測試的相關內容;② 由于軟件測試技術具有實踐性的特點,而課程教材案例都過于簡單。因此,在理論教學的基礎上,可以根據計算機科學與技術專業的特點,安排與時俱進、適應專業認證目標的最新項目案例教學內容,特別結合實際工程選擇一些具有代表性的實訓項目作為教學案例,以培養學生解決實際問題的能力。

圖1 喜歡的教學形式

圖2 喜歡的教學內容
(1)教學案例來源于本課程所借助的實驗平臺中的題庫。其中的案例豐富多彩,且易于理解,共包括6種類型的112個真實案例,分別是Android 55個,pc 10個,Python 3個,Junit Testing 27個,Selenium 7個,Jmeter 10個。教學中以工作任務為中心組織課程內容,通過實訓項目培養學生的實踐能力,大力推廣“工程案例應用”為導向的教學模式,為培養學生的創新能力,根據軟件測試工作崗位職業能力的需求,圍繞軟件測試人員應掌握的工作任務,通過實訓項目的實現來形成相應職業能力。同時,每個項目都給出了目標和要求,由學生自行選題進行練習、講解,最后以大作業的形式寫出報告,充分發揮學生的學習主觀能動性。采用實際項目導向教學,學習積極性高,在已經實施的教學質量跟蹤調查中,學生反饋效果良好。
(2)為了更全面的涉及各個類型的題目,要求每人從不同類型的題目中各選擇1個,總共6個題目,并將學生分組,4人一組,作為一個獨立的小團隊。其中,每個成員負責自己所選擇的題目,并且每個團隊選出一個負責人,負責協調管理本組成員對題目的完成情況,并按時做好記錄;成員定期向負責人匯報完成情況,不懂的問題及時溝通解決,可以同學之間互相溝通,也可以與老師在課前和課后聯系。通過這樣的方式,還可以有助于老師明確上課時要重點講解的內容。這種方式不但可以鍛煉學生解決問題和分析問題的能力,還有助于提高學生的團隊合作精神和人際交流能力,符合專業認證對人才的培養目標。確定好具體項目前還需要學生首先進行教學案例的學習與分析。課后要求相關學生提前預習這部分的知識點。教師上課講解部分案例,并抽選部分學生講解其案例,教師負責點評和答疑解惑。最終分值由教師打分,其中教師根據項目完成情況、匯報情況以及查看平臺當中的分值進行綜合評價,給予相應合理的分值,而小組成員之間不互相打分,主要目的是避免有的學生怕影響同學之間的感情而盲目打分,不好意思打低分等情況。
為了解決缺乏完善的課程教學平臺的問題,我們借助的是當下最著名的由南京大學軟件學院開發的軟件測試技術課程教學平臺——Mooctest,用以提高該課程的教學效果。
Mooctest是致力于編程、軟件測試類考試和練習的服務平臺,教師可以輕松監管考試流程,學生自由練習。系統負責自動化評估及可視化展現,配合當下紅火的MOOC慕課課程,慕測平臺是學生自學的好幫手。該平臺主要面向軟件測試類考試和練習,其中,以Java覆蓋測試、Java Debug分析,以及Android應用測試為主。能夠幫助高校的教軟件測試技術課程的老師便捷地組織在線考試,幫助高校的學生接觸工業界真實的APP案例,以提高學生的測試能力。全國大學生軟件測試大賽是目前用于評估學生軟件測試能力的一項最為權威的競賽,這項比賽也是目前國內唯一的全國性軟件測試大賽,該大賽致力于推進軟件測試的實踐教學改革、促進軟件測試產業人才培養,該軟件測試大賽也依托于該平臺[4]。隨著社會信息化水平的提高,目前,各企事業單位對具備較高測試能力的軟件測試人才的需求相當大。因此,掌握并靈活運用該平臺的學生更具有較強的競爭優勢。
已有的對學生的考核方式與專業認證標準相去甚遠,因此應該開展多元化的能力評價體系,以促使學生具備相應的能力。因此,本課程考核采用“平臺發布的任務完成情況+課堂案例講解+書面報告”模式,加大了工程實踐技能、語言的表達能力、個人的組織協調能力以及合作能力等綜合素質在學習成績評定中的比重,全面評定學生對課程內容的掌握程度。這種評價標準的多元化重視學習過程,能夠更充分真實地反映學生的學習效果。工程案例的完成情況在本課程教學中發揮著至關重要的作用,由學生獨立完成,堅決杜絕抄襲。
對于評教系統,不能只簡單地通過對客觀選項加權求和的方式來統計教師的最終得分,而應該參考主觀問答題,從評價的角度,充分地利用現代化手段評價,采用定量與定性相結合的方式,借助統計學方法,切實地對評教數據進行系統地梳理和分析,最終給出一份盡可能客觀合理的評價結果。同時,評教指標要根據同學科教師的教學性質與特點,并根據學生的程度、專業等特點“量身定做”,而不應該一概而論,一刀切。此外,針對任課教師的性格等各方面的特點,可由任課教師自行設置個人的評教指標,交由教務處審核后,再依照任課教師意愿選擇是否放入學生的評教系統的指標當中。
評價教學考核方式要以專業認證所要求的需要實現的課程標準規定的教學目標為依據,規范合理的教學考核方式有助于學生對教學內容知識點的理解,并能激發學習熱情,提高實踐動手能力。
通過采用上述教學方案,我們經過2年的實踐,取得了良好的教學效果,學生的實踐能力、動手能力和創新能力都有了一定程度的提高。
教學團隊教師鼓勵學有余力的學生參加了全國大學生軟件測試大賽。全國大學生軟件測試大賽是目前評估學生軟件測試能力的一項權威競賽,大賽致力于推進軟件測試實踐教學改革、促進軟件測試產業人才培養以及建立軟件測試產學研合作平臺,主要包括開發者測試、移動應用測試、Web應用測試等分項賽。目前該項賽事吸引了來自全國32個省份的330多所高校,累計參加學生有4 000多名。此項比賽也是國內目前唯一的全國性軟件測試大賽,可以很好地體現軟件測試技術教學平臺的應用效果。據統計,在參加全國大學生軟件測試大賽中,中國礦業大學計算機科學與技術學院分獲開發者測試二等獎、開發者測試優勝獎、Web安全測試二等獎、Web安全測試三等獎各1人。南通大學計算機科學與技術學院分獲開發者測試二等獎、開發者測試三等獎和移動應用測試三等獎各1人。通過競賽,進一步激發了學生對專業學習的熱情,培養了學生的創新能力和實踐動手能力,鍛煉了其隨機應變能力,提升了就業競爭力,同時也展示了中國礦業大學計算機學院和南通大學計算機學院的人才培養質量,提升了專業影響力。
雖然軟件測試技術課程取得了一定改革成效,但是由于軟件測試技術課程是理論與實踐結合緊密的課程,因此還應該將科研成果應用到教學內容中,從而推動并促進教學水平和能力的提高。這就需要在軟件測試技術課程的教學中,對學生進行科研方法的訓練,培養學生的科研能力。
下一步的工作中,我們將繼續不斷地對軟件測試技術課程進行教學改革,這需要對教師提出更高要求。任課教師需要不斷學習,提升業務能力,總結他人以及以往的教改經驗,不斷完善自我,以便更好地開展教學活動,培養學生的綜合能力。