摘 要: 在軟件產業急速發展的帶動下,軟件測試人才的需求量劇增,而目前軟件測試課程教學模式的人才培養已無法滿足市場的需要。為此,根據軟件測試課程教學模式的現狀,對現有的教學模式進行了改革,提出了“211階段與拋錨式教學”相結合的新的教學模式,教學實踐表明效果良好。
關鍵詞: 軟件測試; 教學模式; 改革; 探索
中圖分類號:G642 文獻標志碼:A 文章編號:1006-8228(2013)11-52-02
0 引言
近年來,在經濟全球化和信息技術飛速發展的帶動下,軟件產業已成為國家經濟發展的重要支柱之一。在軟件開發的整個生命周期中,軟件測試是不可缺少的重要環節,其成效直接決定了軟件產品的質量。軟件測試行業日趨規模化和規范化,用人單位對軟件測試人才的需求量也不斷增長。因此,軟件測試人才的培養成為眾多高校計算機專業培養的新熱點[1]。然而,很多高校開設的軟件測試課程不能滿足市場對軟件測試人才的需求。學生只是學會了書本上條條框框的理論知識,而在實踐中遇到各種不同類型、不同功能的軟件時,仍然不懂活學活用。因此軟件測試課程也應與時俱進,引入先進的教學管理理念和教學模式以適應市場發展的需要。
1 軟件測試課程教學模式的現狀
1.1 軟件測試課程簡介
軟件測試是一門迅速發展的新興學科,是計算機軟件專業、計算機應用專業、計算機信息管理等專業的一門重要課程,是計算機軟件開發與測試、軟件測試專業高年級學生的必修課。軟件測試課程是實踐性、應用性很強的課程,其主要目的是使學生在學習程序設計語言、軟件工程等課程的基礎上,熟悉軟件測試崗位的工作職責,了解軟件測試的方法、原則、規范和管理,掌握軟件測試工作流程、測試技能,培養學生的實際動手操作能力和專業實踐能力,為就業打下堅實的基礎。
1.2 軟件測試教學存在的問題
軟件測試課程教學模式是指:軟件課程教學的總體設計。它是一個完整的功能體系,包括教學目標的確立,教學計劃、進度的制定,教學方法、手段的選擇和實施,課程考核的方法和手段等等[2]。本部分將對傳統教學模式包含的各部分進行討論,分析目前該課程教學模式所存在的問題。
1.2.1 教學計劃及進度
目前大部分高校的計算機相關專業都是在大三下學期開設軟件測試課程。學習的內容主要包括軟件測試的基本概念、黑盒/白盒測試用例的設計技術和測試自動化工具的使用。由于該課程學習過程過于短促,加上學習內容拘泥于書本化,所以在課程學習結束后,大部分學生對該課程的印象如過眼云煙,沒有留下多少記憶。即使是學習特別用心的學生,所學到的也僅是書面的內容,掌握的也只有軟件測試的基礎理論知識,極度缺乏實踐環節的經驗,當進入企業后,仍然無法圓滿完成一個軟件項目測試的實際工作。
1.2.2 教學方法及手段
目前高校開設的軟件測試課程所采用的教學方法及手段與其他課程一樣,即課堂講授和實驗室實踐相結合。這種教學方法屬于填鴨式的教學方法。首先,學生在學習的時候完全屬于一種被動式的學習,學習效果不好;再有,實驗室實踐環節只是設計簡單案例的測試用例,與公司/企業需要測試的大型軟件相差甚遠,在測試方法、測試過程和測試文檔要求上都有很大的區別。因此,這種傳統的教學方法及手段無法適應市場的需求[2,4]。
1.2.3 考核的方法及手段
傳統的軟件測試課程的考核方法及手段仍然是采用試卷命題閉卷考核的方式。而軟件測試課程是一門實踐性和應用性很強的一門課程,這種考核方法只能考核學生對理論知識掌握的程度,并不能考核出學生對軟件測試技術掌握的情況。另外,學生在學習過程中的表現遠遠比一次考試的最終結果更能體現出學生真正的水平,所以這門課程的最終成績也不能由最后一次的筆試結果來決定。
2 軟件測試教學模式的改革
根據企業對軟件測試人員技能的實際要求,我們對教學計劃、課程設計、教學方式的實施及考核方式進行了調整。
2.1 教學計劃調整
教學計劃一改以往一學期學完軟件測試所有內容的傳統做法,分階段完成對該課程的教學。這樣一方面使學生以循序漸進地過程學習該課程,印象更為深刻;另一方面,學習的內容除了書本上的基礎理論之外,還包括了豐富的實踐內容。
在學生學習完程序設計語言課程后,第二學年的第一學期開設軟件測試概論這門課,讓學生對軟件測試的基礎理論知識有一定的理解;第二學年的第二學期通過拋錨式教學法開設綜合測試課程,讓學生掌握有關自動化測試工具的使用并培養學生團隊合作意識。
第三學年開設一門完全是以實訓為主的課程,讓學生能夠掌握不同環境平臺下的測試方法,并根據對需求規格說明書的分析,自動生成測試用例,這將是軟件測試的一種趨勢。
第四學年讓學生到跟我院合作的企業去實習,真正掌握軟件測試的實踐技能,以適應市場發展的真正需求。
2.2 教學方式采用“拋錨式”教學法
傳統的做法是介紹軟件測試的理論,以簡單的案例進行說明。由于內容本身抽象,缺乏足夠的實踐,使得學生感覺枯燥乏味,且不會活學活用。為了激發學生的學習興趣,并根據學習內容的變化,我們采用了案例拋錨和項目拋錨兩種教學方法。
第一,采用案例拋錨教學。這種教學方法主要應用在教學計劃的第一階段,即軟件測試概論和綜合測試階段。選擇好的案例對幫助學生理解軟件測試技術起到至關重要的作用。我們根據案例的難易程度,將案例和軟件測試理論與技術相結合,把案例分成基礎案例和綜合案例兩種[3]。例如在學習《軟件測試概論》中白盒測試、黑盒測試技術時,應盡量選擇簡單的基礎案例,讓學生把更多的注意力集中在測試的方法上而不是案例本身上,這樣更有利于學生理解測試技術的原理。在學習綜合測試的時候,我們提供給學生的是一些比較復雜的綜合案例,對學生進行分組,以小組為單位來解決較為復雜的測試問題。通過團隊進行的整個測試過程既可以讓學生感受到一個綜合案例測試的工作流程、實施細節及注意事項,又可以促進學生溝通與協作的能力。在綜合測試的整個過程中,還需要應用到各種自動化測試工具, 包括WinRunner功能測試工具、LoadRunner性能測試工具、TestDirector測試管理工具等,為學生畢業后從事真正的測試工作打下堅實的基礎。
第二,采用項目拋錨教學。這種教學方法主要應用在教學計劃的第二階段,即在軟件測試實訓過程中使用。在學生掌握了軟件測試的相關測試技術之后,需要將所學的知識靈活運用到實際環境下的軟件測試中。因此,該階段的學習內容主要以對項目的測試為主,選擇的項目必須有不同的軟件和硬件要求以及特定的配置環境,這可以讓學生提前適應實際測試工作的流程,進一步提升學生對所學的軟件測試理論知識和測試技術綜合應用的能力。針對每個具體的項目,按照軟件測試的三個主要階段(測試計劃、測試用例獲取、測試有效性度量),充分將軟件測試理論與實踐結合起來,通過對不同環境下項目的測試,找出軟件測試技術各階段之間的相互聯系,從而達到軟件測試的教學目的和培養目標。
2.3 校企合作
為避免學校培養出來的學生與社會需求脫節,應使學生盡可能早地了解市場的行情,以掌握市場所需要的各項測試技能。因此,非常有必要讓學校與企業進行合作,合作的方式可以有以下幾種。
第一,請企業的專家給教師、學生進行技術講座或市場信息的宣傳,讓教師和學生充分了解市場的需求以及學生需要掌握哪些技能[3],使得老師的教和學生的學真正做到有的放矢。
第二,與企業建立學生實習合作。爭取有一定數量的學生參與企業軟件測試實習并獲得就業指導。
第三,與企業合作進行外包測試。
2.4 課程考核方式
考核分數由兩部分組成:平時成績占50%,期末考核成績占50%。而期末考核由試卷命題閉卷考核的方式改為獨立完成一個實際軟件項目的綜合測試,以此更能考核學生對軟件測試的綜合能力。
3 結束語
本文對“軟件測試”課程的教學模式改革進行了探索,通過調整教學計劃并采用“拋錨式”教學法,取得了較好的教學效果。新的教學模式以培養多層次、應用型、復合型軟件測試人才為目標,全面加強素質教育,重點培養學生的團隊精神、創新能力和實踐能力,能夠真正實現人才培養與市場需求的一致。
參考文獻:
[1] 周元哲.“軟件測試”教學改革的探索和實踐[J].計算機教育,2008.22:16-17
[2] 聶靜,吳琳.探索軟件測試課程教學改革方案[J].中國校外教育(理論),2011.z2.
[3] 李紅霞,陳再新.基于市場需求的軟件測試專業的教學改革[J].科技信息,2010.5:613
[4] 趙楊群.精品課程優質教學資源建設研究[J].教育與職業,2010.24:130-132