張小蘭 郭建東
摘 ?要: 案例教學能充分調動學生積極性,提高學生理論水平和實踐能力。結合多年軟件測試教學經驗,在分析軟件測試課程案例教學存在的問題基礎上,有針對性地提出在該課程理論教學和實踐教學中進行案例設計,并構建課程案例庫,分析了實施案例教學的基礎和前提。
關鍵詞: 軟件測試; 案例教學; 實踐教學; 案例庫
中圖分類號:G642 ? ? ? ? ?文獻標志碼:A ? ? 文章編號:1006-8228(2014)12-74-03
Research on case teaching in software testing course for higher vocational colleges
Zhang Xiaolan, Guo Jiandong
(Guangdong College of Industry and Commerce, Guangzhou, Guangdong 510510, China)
Abstract: Case teaching can not only fully mobilize the students' enthusiasm, but also improve their theoretical level and practical ability. Combined with teaching experience in software testing, the problems of the case teaching in software testing course are analyzed. In order to improve the teaching effect in software testing course, the case design method in theory teaching and practice teaching is proposed. The construction of teaching case library is given. The basis and premise of the implementation of case teaching are introduced.
Key words: software testing; case teaching; practice teaching; case library
0 引言
51testing公司發布的《2013年中國軟件測試從業人員調查報告》顯示[1],2013年中國軟件企業軟件測試人員與開發人員比例基本保持在1:3,相比之前的1:7比例雖有所下降,但仍與國外軟件企業1:1的比例相差甚遠,這表明國內軟件測試人才市場需求仍會增長,其職業發展的潛力依然很大。正因為如此,很多高校相繼開設軟件測試專業或課程。在教學過程中,主講教師一般講解軟件測試理論和介紹軟件測試方法,但卻缺乏較好的測試案例供學生測試,以驗證所學的理論,故教學效果不佳。例如利用等價類劃分法、邊界值法設計測試用例,學生雖然能按要求做練習,能設計出測試用例,但是很多學生還是會疑惑設計出來的測試用例有何用、怎么用,學生缺乏實踐環節的經驗,當面對實際軟件項目測試工作時,仍然無從下手。
目前,很多高職院校對“軟件測試”這門課程進行了改革,并且取得了一定的成效。廣東工貿職業技術學院(以下簡稱“我院”)計算機系從2009年開始開設軟件測試課程,通過近五年的教學經驗積累和總結,提出從構建軟件測試課程的案例入手探討該課程的案例教學方法。
1 軟件測試案例教學所面臨的問題
1.1 教材及教學資料缺乏
當前軟件測試方面的教材很少,適應高職院校學生的教材更少。絕大部分教材只是闡述空洞的理論,附加簡單而又陳舊的工具介紹,而這些理念和工具很多已經被業界淘汰或是被取代[2]。根據《2013年中國軟件測試從業人員調查報告》顯示,業界現在普遍采用的功能測試軟件是QTP,而絕大部分教材中還停留在介紹Mercury Interactive公司的WinRunner工具,同時對于業界中性能測試龍頭軟件LoadRunner,很多教材并未涉及。絕大多數教材上所提到的自動化測試工具不多,而且講解的也不是很詳細,需要教師進行大量的補充。
1.2 案例缺乏
大多數軟件測試教材都是理論內容過多,實踐內容不足,甚至只有最后一章有測試案例。大多數高校軟件測試課程的定位都是以講解理論知識為主,實驗教學只占很小一部分。高職院校定位于培養技能型人才,要求學生有較強的實際動手能力,這勢必需要進行大量的測試實踐,而實踐需要大量的測試案例。同時,理論教學也需要運用典型案例,加深學生理解所學知識,培養其分析問題與解決問題的能力。
2 理論教學案例設計
教材及教學資料的缺乏勢必需要軟件測試主講教師有針對性地擴充理論教學案例。
2.1 擴充教材中的教學案例
在軟件測試的眾多教材中,講述軟件測試方法的經典案例有三角形問題、日期問題、閏年問題等,但這些案例通常都是文字表述,缺乏具體的程序供學生測試。因此,首先要擴充教材中的案例,采用面向測試的軟件設計方法將這些案例做成一個個小的被測系統,設一些缺陷,讓學生沿著“測試—理論—進一步測試”的主線來學習。首先對這些案例系統進行測試體驗,再系統學習理論,最后利用設計出的測試用例進一步測試,這不僅有利于加深學生對軟件測試抽象理論的理解,也讓學生更加深知在編程過程怎樣避免缺陷,做到規范化編程,提高編程能力。
2.2 引導學生編寫軟件開發文檔作為教學案例
在軟件測試的理論教學中,經常會提到幾個概念,如:黑盒測試是基于用戶需求的測試,集成測試的測試依據是系統概要設計說明書,單元測試的測試依據是系統詳細設計說明書等。學生通常會覺得很困惑:用戶的需求到底是怎樣的,系統概要設計說明書、詳細設計說明書中分別包括什么內容,有何區別,對這些文檔始終沒有直觀的認識。事實上,在企業的開發與測試工作中,文檔都是很重要的一部分內容。軟件開發企業在軟件開發過程中會產生一系列的文檔,如需求分析報告、詳細設計報告、概要設計報告等等,但很少對外公布這些文檔。就算能通過校企合作或項目合作的方式獲得企業項目文檔,缺乏項目業務背景的學生也很難弄清項目中的數據流程、工作流程等。所以通過與軟件工程課程教師的溝通協調后,要求學生在軟件工程課程設計中,按小組自選熟悉的項目系統,如:“學生成績管理信息系統”、“圖書管理系統”、“宿舍管理系統”等等,按照軟件工程的原理編寫相應需求說明書、概要設計說明書、詳細設計說明書等,只有具備以上資料,才可真實地模擬實際工作模式。在軟件測試課程中,延續使用這些案例系統,將對學生掌握軟件測試的流程很有幫助。
3 實踐教學案例設計
3.1 實踐教學目標及工具選用
為了培養面向市場的合格測試人才,在教學過程中,除了理論知識外,還要求教師加強學生測試技能的培養。測試技能的培養是需要通過大量的實踐練習來獲得的[3]。
通過實踐教學環節,加深學生對軟件測試理論知識的理解,使學生能掌握軟件測試的技術和方法,熟練主流自動化測試工具的使用,提高實際動手能力。51testing公司發布的《2013年第七屆中國軟件測試從業人員調查報告》中對軟件測試從業人員常用的單元測試工具、功能測試工具、性能測試工具進行統計調查分析,得出在功能自動化測試工具中QTP使用最廣泛,如圖1所示。在性能測試工具中LoadRunner仍然穩居第一,LoadRunner在性能測試工具中的大哥地位無可動搖,Jmeter測試工具在今年來有小幅上升趨勢,如圖2所示。在單元測試工具中,軟件測試從業人員最常用的單元測試工具是Junit,如圖3所示。
圖1 ?2013年調查中常用的功能自動化測試工具分布
圖2 ?2013年調查中常用的性能測試工具分布
圖3 ?2013年調查中常用的單元測試工具分布
注:以上圖表數據均來自51testing公司發布的《2013年中國軟件測試從業人員調查報告》
在我院軟件技術專業的軟件測試課程實踐教學中選用的單元測試工具是基于Java開發軟件的測試選擇Eclipse+Junit;基于C++開發軟件的測試選擇了CppUnit;基于.NET開發軟件的測試選擇Nunit。另外,性能測試選擇了LoadRunner試用版本,功能測試選用QTP,實踐教學環節工具基本與當前主流工具平臺相符。
3.2 實踐教學案例來源
在軟件測試的實踐教學中,我們從以下幾個方面來擴充教學案例。
⑴ 課程設計成果
我院計算機系軟件技術專業在程序設計方面,前期開設了Java和.NET程序設計兩個方向。在Java程序語言設計,C#程序語言設計、數據庫設計課程結束后,通常會安排兩周的課程實訓,要求學生在教師的指導下完成課程設計作品。將程序語言設計作品用作單元測試的案例,學生間交叉進行測試,互相充當對方的測試員,這樣不僅有利于將程序開發與軟件測試結合起來,綜合解決軟件開發中的問題,而且交叉測試會極大地調動學生學習測試興趣和積極性,課堂氣氛活躍。
⑵ 畢業設計成果
在大三第二個學期,我院會安排12周的畢業綜合實踐周,由指導老師跟學生共同確定畢業設計題目,學生獨立完成畢業設計。通過對以往選題匯總發現,絕大部分同學都是選擇Windows程序開發和網站開發兩個方面。從畢業設計作品中可選擇一部分優秀的作品作為實踐教學的案例。考慮到現有的網站如網易、搜狐發布前已經做足了測試,很難再發現其中的缺陷,所以在Web網站測試實踐中,我們將學生的網站作品在機房的局域網內發布,學生在學生機進行測試,在這個過程中真正體會Web網站測試、Cookies測試、安全測試、目錄測試等方面,找到測試成就感與自信。
⑶ 科研項目成果
我院一直鼓勵教師多參與科研項目,教師參與開發的項目也可以用于實踐教學案例。只有任課教師對所選的項目非常熟悉,甚至是親自參與開發,才能對項目開發整個流程、可能遇到的問題有充分的認識與準備,為學生提供有力的幫助和準確及時的指導,為項目教學的順利開展提供前提條件,使項目教學的整個實施過程都能在任課教師的良好掌控之下[4]。
⑷ 校企合作項目
目前我院已與部分企業簽訂了校企合作協議,在軟件測試課程的綜合性生產實習中,引入企業的實際項目作為案例。邀請校外實習基地企業的行業專家將實際工作項目帶入實訓室,學生3~5人為一組,按行業實際給他們分配角色,在該過程中強化學生的綜合設計和運用能力,讓學生掌握在實際項目應用中各種測試方法的使用,熟悉測試項目管理,感受大型測試項目工作流程。
4 案例教學的實施前提
4.1 跟前導課程的銜接
軟件測試與軟件開發有非常緊密的聯系。要想成為一名優秀的測試人員,就必須會編寫程序,至少精通一門程序開發語言才能勝任單元測試、集成測試、性能測試的工作,軟件開發課程學習的好壞直接影響了軟件測試能力。在軟件測試單元測試、集成測試教學實踐中,案例主要來源于程序設計語言課程的設計作品,這要求該課程主講教師對學生嚴格要求,要求學生按小組保質保量完成小組作業,這些小組作品是軟件測試課程中交叉測試的基礎和前提。
同時,軟件測試要用到一系列的文檔,如需求分析說明書、概要設計和詳細設計說明書、用戶手冊和安裝使用說明等,這些也是軟件工程課程設計上要學生完成的內容,課程設計對這些內容的要求嚴格與否,會對軟件測試課程帶來很大影響。通過這幾年的教學發現,大多數學生對這些文檔不甚了解,而且高職院校的學生普遍重技術輕理論,不愿意花時間去寫文檔。
4.2 教師自身素質的提高
為了順利實施案例教學,主講教師也需要不斷提高自身素質。軟件測試工具較多,范圍廣,不易把握重點,大部分測試工具如:LoadRunner、WinRunner、JUnit、Jmeter等都是英文版[5],參考資料少,這就要求教師通過主動學習、走進企業來提高自身素養。高職院校提倡“雙師型”專業教師隊伍建設,要求教師既要具備理論教學的素質,也應具備實踐教學的素質,學校也可以派遣教師到軟件測試培訓機構進行培訓,提高教師水平。只有這樣,教師才能自如地將企業實際的測試流程、方法、技術帶入案例教學實踐中。
5 結束語
興趣是最好的老師,在理論教學和實踐教學中引入案例教學、建立測試案例庫,使理論和實踐過程更具直觀性、生動性、說服力、吸引力,能有效調動學生的積極性和興奮點,有助于學生掌握軟件測試的基本理論和方法,加深對軟件測試測試自動化工具的理解。同時隨著教學的推進,教師可針對當前的測試工具,設計新的教學案例,擴充至教學案例庫中,不斷提高案例的針對性、實效性、鮮活性。
參考文獻:
[1] 2013年第七屆中國軟件測試從業人員調查報告.http://
www.51testing.com,2013.
[2] 鐘久隆,路桂明.高職院校《軟件測試》課程教學改革探索與實踐[J].
教育教學論壇,2012.2:130-131
[3] 丁智國,呂振洪.軟件測試課程實驗教學探索[J].計算機教育,2012.3:
102-105
[4] 龔宇輝.基于項目驅動的軟件測試人才培養模式[J].華章,2013.20:
199
[5] 陳艷.基于項目驅動的軟件測試課程教學探索[J].計算機時代,
2013.3:62-66