摘 要: 近年國家經濟結構的調整,使大學生的就業問題更加突出、嚴峻,一些傳統的熱門專業也被劃為“紅牌”專業,大學教育與社會需求脫軌,大學生缺乏的技能和實踐鍛煉無疑是造成大學生“就業難”的原因之一。本文結合目前軟件技術專業的就業形勢,分析高職院校的測試驅動開發課程的教學現狀,探討“三段式”實踐性的教學法在測試驅動開發課程中的具體運用,提出了一些值得嘗試的具體解決方法和建議,對學生提高學習效率和教師改進教學質量具有現實指導意義,有利于學生的專業知識和職業技能的提升,幫助他們盡快就業,適應社會需要。
關鍵詞: 高職院校 軟件技術專業 測試驅動開發課程 “三段式”實踐性教學模式
1.引言
隨著中國的經濟的發展,經濟結構不斷優化,社會工業化和信息化的不斷加劇,社會對人才的需求也悄然地發生了變化。麥可思研究院撰寫的《2010年中國大學生就業報告》顯示:一方面,一些傳統的熱門專業如計算機等在就業市場上遭遇就業寒潮,都出現了畢業生滯銷現象,被劃為“紅牌”專業[1]。另一方面,在同樣的經濟形勢下,高職高專畢業就業率增長幅度卻高于本科[2]。
高職院校如何發揮其自身優勢,擺脫“紅牌”,促進軟件技術專業的畢業生充分就業,這是一個需要思考和解決的問題。毫無疑問,在以“就業為導向”的高職院校中與時俱進地引入一門能突出綜合職業能力素質的課程不失為解決之道。
《測試驅動開發》是一門綜合軟件開發和測試技術的課程,它介紹測試驅動開發技術的實施過程,使學生在軟件開發、測試方面的職業能力得到提高,從而達到提升學生綜合職業能力和素質的目的。從開發人員的角度,測試驅動開發技術使他們的代碼整潔可用,可以有效地提高效率和編碼質量,釋放他們的潛能;從測試人員角度,測試驅動開發技術將幫助他們更容易完成從黑盒測試到白盒測試的職業轉換,擴展職業空間,有利于職業的可持續發展。
2.測試驅動開發課程教學現狀與分析
2.1教材專業性強,不適合初學者。
測試驅動開發是一種不同于傳統軟件開發流程的新型的開發方法,雖然近些年市面上已經有部分的教材,但是數量少,技術性強,并且忽視了學生的學習及心理結構,給教師的課堂教學活動增加了難度,達不到理想的教學效果。
2.2學生個體差異較大,缺乏知識遷移的能力。
測試驅動開發要求在編寫某個功能的代碼之前先編寫測試代碼,然后編寫使測試通過的功能代碼,通過測試來推動整個開發的進行[3],這就要求學生具備相關的程序設計和軟件測試的理論知識和技能,并能有效地將兩者結合運用于實際的項目中。通過前期相關課程(程序設計基礎(C/C++)、Java程序設計、軟件測試技術等)的學習,學生雖然已經了解了相關的理論知識,但是對其掌握卻存在兩極分化,個體差異較大,很多學生習慣孤立地學習某一門課程,缺乏知識遷移的能力,沒有將理論知識用于解決實際問題的意識。
2.3教師企業經驗匱乏,教學方法單一。
測試驅動開發課程作為高職院校一門新的課程,具有知識前沿、實踐性強的特點,教師需要具有豐富的實際軟件項目開發和測試經歷,但是目前高職院校的大部分青年教師通常一畢業就上崗,很少有工廠經歷、工程經歷,很難結合項目、結合實際來進行教學,導致教師上課只能在講臺上念PPT,以“照本宣科”方式進行教學活動,不能在有限的課堂時間內教授給學生實用的職業技能,嚴重影響學生學習的積極性和教學效果。
3.“三段式”實踐教學法
“三段式”實踐教學法將教學過程分為“基礎訓練—仿真訓練—實戰訓練”階段,在測試驅動開發課程中通過恰當地引用可以有效地改變“學生難學,教師難教”的教學現狀。
3.1基礎訓練。
基礎訓練階段是針對測試驅動開發所需要的相關知識和技術的強化學習與訓練的階段。在這個階段教師需要事先分析課程特點和學生學習的情況,充分了解學生已經具有的知識經驗、認知結構和獲得的技能情況。在教學過程中,教師以案例元[4]為載體,將教材上深奧的知識點融入各個案例元中,一方面,利用案例元可以由淺入深地強化學生已有的程序設計和測試理論基礎,使之具備基本的編碼和測試能力。另一方面,學生通過若干個針對性強的案例元,按照“測試—開發—重構”的步驟,反復實踐,從而達到理解測試驅動開發的思想和特點,掌握測試驅動開發的流程和技術,最終達到提高代碼質量、優化程序設計的目的。
3.2仿真訓練。
仿真訓練階段是由具有豐富項目經驗的教師或工程師與學生共同通過采用測試驅動開發技術模擬軟件公司中真實項目的實現過程。在仿真訓練階段,通常在一段學習時間內,由教師安排一個較為完整的軟件項目作為實訓任務來實施教學活動。在這個階段,學生將學習與工作相結合,教師仿照軟件企業的項目管理形式組織學生,形成若干個項目研發組和質量管理組,每個學生團隊需要承擔軟件開發、維護和評估項目質量的工作,教師則負責對學生進行嚴格的過程管理和考核,并給予他們相應的成績和學分。在仿真訓練階段,學生在一個實踐性和操作性強的現場教學情境下,以任務為驅動,團隊為單位,通過扮演軟件項目中的各種角色,不僅能培養動手能力和主動參與能力,而且能全面提高專業適應能力、應用實踐能力、團結協作能力和可持續發展的能力,縮短學校教育與企業崗位能力要求的差距。
3.3實戰訓練。
實戰訓練階段是在學生已經完成“基礎訓練”和“仿真訓練”后進行的,此時他們一般已經具備了測試驅動開發的基本理論知識和技能,需要指導學生將理論知識轉化為實際操作技能,實現與企業需求的“無縫”銜接。在實戰訓練階段,學生可以運用測試驅動開發技術對真實的軟件項目進行實戰,可以采用的形式包括研究性學習、科研課題、頂崗實習等。在校內,學生在教師指導下,可以以教師承接的實際項目為真實的軟件項目,參加研究性學習和科研課題。在校外,學生可以在學校安排進入校內實訓基地或到專業相應對口的指定企業帶薪實習,即“頂崗實習”,切實體會軟件企業的真實項目開發實現過程。在實戰訓練階段,學生通過參與研究性學習、科研項目等多種形式的產學結合、校企合作的真實軟件項目開發實現工作,能提高綜合運用知識并解決實際問題的能力,培養創新精神和實際技能;而作為學校教學的重要組成部分的“頂崗實習”,能使學生完全履行其實習崗位的所有職責,獨當一面,培養嚴謹的工作作風、良好的職業道德和素質[5]。
4.結語
當前,面對求職人數的激增、經濟增長的放緩,昔日的“熱門專業”也逐漸變冷,在就業越來越困難的情況下,在校的大學生迫切希望學到迎合市場需求的課程,提高自我技能,增強就業競爭力。以“就業為導向”的高職院校,軟件技術專業的學生多從事軟件測試和軟件代碼的開發工作,軟件質量和測試質量直接關系到這些學生的職業技術和競爭力[6],測試驅動開發課程作為一門結合開發和測試技術的綜合性課程,在高職院校開設具有較強的現實意義。我通過分析高職院校測試驅動開發課程的教學現狀,結合多年的教學實踐探討了“三段式”實踐性教學模式在測試驅動開發中的具體運用,做到了“課上課下、校內校外、校企聯合”之間的融合,幫助學生提高了學習成效,增強了職業技能,培養了職業素質,為其可持續發展奠定了基礎。
參考文獻:
[1]http://zhuanye.eol.cn/.
[2]http://daxue.163.com/10/0602/16/686ID1B9009163A4.html.
[3]http://baike.baidu.com/view/184088.htm.
[4]李傳鴻.高職教育中“小三段式”課程教學模式的研究與探索.教育與職業,2008,(22).
[5]http://baike.baidu.com/view/609536.htm.
[6]謝日星.高職高專教育中的測試驅動開發初探.現代企業教育,2007,(6).