賈松浩 楊彩
伴隨著計算機的誕生出現了軟件開發。但是,當前的軟件開發面臨質量不高、功能復雜等諸多挑戰,而軟件測試是保障軟件質量的一個重要手段。因此,軟件測試課程逐漸被高校重視起來[1]。而軟件測試專業具有人才缺口大、就業前景廣、薪資待遇高、無性別歧視等特點,這些原因使軟件測試課程廣受重視。當前的軟件測試課程教學面臨著實踐性不強、學生動手能力不足等問題,針對這些問題,我們對軟件測試課程的教學進行一些探索,通過提高課堂教學質量,提高實踐環節的效率,與企業零距離溝通等方式來提高教學的效果,使學生掌握更強的實踐動手能力[2]。
一軟件測試課程教學存在的不足
目前,在很多高校計算機課程中,并沒有單獨開設軟件測試技術課程,只在“軟件工程”課程的某一章節進行了介紹,而在“軟件工程”課程中,軟件測試只是在軟件開發進行以后才開始進行,這對于學生理解軟件測試是極為不利的[3]。軟件測試技術方面的教材不是很多,而且質量良莠不齊。有些學校開設的軟件測試課程作為選修課,過多注重軟件測試理論的講解和測試方法的介紹,對于實踐環節重視不夠,缺乏系統的訓練,距離軟件公司對軟件測試人才的要求差距較大。
軟件測試課程教學中存在的問題主要有:(1)理論與實踐脫節導致學生學習興趣不濃;(2)軟件測試實驗室的環境搭建受限,課堂教學與實踐結合的不緊密;(3)課堂教學內容與公司實際操作有出入,使得學生不受用人單位的歡迎;(4)學生缺乏完整項目的測試經驗,無法掌握項目測試的流程和步驟[4]。(5)學生的開發經驗不足,對于理解測試驅動開發有難度。
二創新模式的課程改革
針對目前軟件測試課程教學存在的問題和不足,對目前高校開設的《軟件測試》課程進行了調研、分析和研究,為了使授課內容更接近實踐要求,我們深入企業并與軟件測試部門的人員進行溝通交流,從教材內容、教學方法等方面對軟件測試課程的教學進行探討。
1教材的選擇
軟件測試實踐性非常強,而且課程開設較晚,更新較快,教材的選擇尤為重要。針對學生接受的實際情況和教材的實用性方面對教材進行選擇,經過篩選,我們選擇兩篇外文教材:(美)佩騰(Patton,R.)著,張小松等譯的《軟件測試(原書第2版)》和(美)梅耶(Myers,G.J.)等著的《軟件測試的藝術(原書第3版)》,一本中文教材:朱少民老師主編的《軟件測試方法和技術(第二版)》,教學過程中把中文教材作為授課教材,外文教材作為參考書,來更好的擴大學生的視野[5]。
2課程內容的選擇和改進
作為一個實踐要求非常高的課程,我們在選擇課程教學的內容上做了很多探索。經過實踐發現,上課時在講解基本知識和概念的同時,如果穿插講解一些經典案例,教學效果會更好。學生不但能夠掌握理解基本概念,又能結合實際應用,積累一些實踐經驗,這對于以后從事軟件測試工作有著非常大的幫助。
在教學過程中,我們始終以學生為中心,讓他們參與到軟件測試的教學過程中來,調動其主觀能動性,使他們更容易接受所學知識。
3測試工具的選擇
在課堂教學和實踐教學過程中,測試工具的選擇很重要。如果建一個相當規模的測試實驗室,投入是很大的。如何選擇既能達到課程要求又能節省費用的測試工具就顯得尤為重要。在最大限度的接近業界實際使用的前提下,可以選擇一些開源的軟件。對于業界關注度不夠的測試環節,在講授軟件測試時要重點講解,比如,靜態測試在企業中就重視度不足,認為無關緊要,實際上該方法能夠培養良好的編程風格。我們在授課時選擇PMD、FindBugs等工具讓學生熟悉,不但能培養學生的測試能力,同時也能督促學生養成良好的編程習慣[6]。對于單元測試部分,根據時下軟件開發的兩大趨勢,選擇Junit進行講解,掌握該軟件的使用,對于其他工具開發的軟件進行單元測試也是非常容易的。
4實踐環節的加強
除了課堂教學以外,實踐教學的開展對于軟件測試課程來說更重要。包括上機實踐課和企業實踐兩部分。
上機實踐環節應抓好以下環節:⑴定好計劃,每次上機要明確任務,對于任務的選擇要有針對性,要更具有可操作性,要更貼近實際。比如對于Junit的實踐,每一次上課做什么都詳細制定,把各種斷言、套件測試、參數化測試等重要部分要重點關注,這樣對于學生掌握這部分知識能起到很好的作用。(2)加強考核,對于實踐環節所做的任務,要認真檢查,并對學生完成情況進行總結,這樣才能提高學習的效果。(3)加強與學生的溝通,讓學生完成任務時,加入不同的小組,通過小組之間的溝通和交流,起到更好的促進作用。(4)完整項目的實踐,除了平時的練習外,整個課程結束后,通過完整項目的帶動,讓學生參與到整個測試過程中,使理論與實踐融合,知識掌握更牢固。
同時要深化企業實訓,加強與企業的合作,讓學生有機會深入到企業的軟件測試部門,了解軟件測試企業實際工作時如何開展的,與軟件測試部門人員溝通交流,增強學生學習的自信心,加強學生實踐能力的培養。學生每年9月份到北京實習,并與富士康簽訂了合作協議,這些舉措都是為了更好地提高學生的實踐能力。為了使效果更好,可以從以下幾個方面抓起:(1)學校擬定一個校外實習大綱,與實習企業一起制訂校企實習基地協議、實習安全協議、學生實習規范和學習實習鑒定表等,不斷促進校外實習制度化,規范化、完善化。(2)企業要提供良好的實訓場地,并配備資深的講授老師。在實訓前,講授教師先了解一下實訓生的情況,對講課計劃和講課內容做適當的調整。(3)在實訓期間,學校可以留一些教師監督實訓過程,并實時地提出建議,保證學生訓有所獲。(4)實訓結束后,要對實訓生做一個項目式的考核,并認真填寫實習成績評定表。
5注重軟件測試人才的軟實力培養
軟件測試是一門熱門行業,軟件企業在招聘人員時,不僅要求應聘人員有一定的理論知識和實踐動手能力,同時要求應聘人員有良好的職業素質。而在當前的教學模式下,對職業素質方面的教育還是比較欠缺。這需要對學生進行培訓,增加就業幾率。
(1)注重培養學生的團隊協作與溝通能力
對于軟件測試行業來說,測試人員的溝通能力非常重要。一個合格的軟件測試人才,應該具有較高的團隊協作與溝通能力,可以快速融入團隊,高效地展開團隊式工作。一個不善于表達自己思想的人不可能成為一名優秀的測試工程師。我們在實踐課開展過程中,重視培養同學的溝通能力,團隊協作能力,在學生中樹立良好的團隊意識。
(2)培養學生的懷疑精神
軟件測試的目的就是為了找出軟件存在的不足,因此我們鼓勵學生懷疑一切可疑的地方,盡自己最大的努力來驗證自己的判斷。即使再簡單的功能,也要站在用戶的角度,多用一些邊界值進行測試,驗證系統是否有問題。
(3)搜索能力的培養
一個好的軟件測試工程師,要有很強的搜索發現新知識和技能的能力,這不僅指一般性知識的搜索和查閱,更多是指與本專業相關的測試工具軟件、插件、測試學習網站等的搜索與下載,比如51testing就是國內比較好的測試學習網站,其上就有很多軟件測試方面比較成熟的知識和實踐技巧。在信息爆炸的當代社會,軟件的種類繁多,軟件技術的變化日新月異,所以大學生應該掌握軟件測試的檢索技術,以滿足自己學習和工作的需要。這種能力是自己的充電器,會使自己終生受益。
此外,一個優秀的測試工程師還應有高度的責任感、耐心、洞察力,在技術層次都相差不大的情況下,這些軟實力對于測試工程師的發展有著至關重要的作用。
總之,通過《軟件測試》課程的教學方法的探索,通過系統科學的知識傳授,并輔以上機實踐和企業實踐,學生的實踐動手能力有了很大提高,這直接反映到學生的就業和以后的學習中。有一部分學生在畢業后進入企業的軟件測試部門并得到用人單位的好評,一部分學生在考取研究生之后選擇了軟件測試方向作為自己的研究方向。如何在現有的探索的基礎上,更大限度的提高教學的效果,是我們下一步的研究重點。
參考文獻
[1]朱少民.軟件測試方法和技術(第二版)[M].清華大學出版社,2010.
[2]聶長海.關于軟件測試的幾點思考[J].計算機科學,2011,38(2):1-3.
[3]陳樹峰.面向對象軟件的依賴性分析與回歸測試[J].計算機應用,2009,29(11):3110-3113.
[4]李雯睿,張鵬程,楊種學.基于主動學習策略的軟件測試教學方法初探[J].計算機教育,2012(8):54-57.
[5]翁偉,吳克壽,吳蕓,等.程序設計課程群建設探索與實踐[J].計算機教育,2009(23):122-125.
[6]王建民,范通讓,劉立嘉.軟件工程專業校企聯合人才培養模式的探索與實踐[J].計算機工程與科學,2011,33(A1):112-115.