崔春英,李 靖
(周口師范學院 計算機科學與技術學院,河南 周口 466001)
?
面向企業需求的《軟件測試》課程教學改革探討
崔春英,李靖
(周口師范學院計算機科學與技術學院,河南周口466001)
摘要:為滿足企業對軟件測試人才的需求,高校軟件測試課程的教學內容和教學方式應做靈活改革.從崗位設置、專業技能要求、專業素質等方面探討了企業對軟件測試人員的實際需求,分析了目前高校軟件測試教學現狀,提出了加強校企合作、合理安排教學內容、靈活采用多種教學手段等軟件測試教學改革的具體方案.
關鍵詞:軟件測試;企業需求;教學改革
軟件測試是為發現錯誤而執行程序的過程[1],它軟件質量保證的重要環節,在整個軟件工程中占的比重較大.目前,軟件測試在軟件發達國家已發展較成熟[2]:軟件測試在公司中的很重要,測試人員與開發人員的比例可以達到1:1;軟件測試的理論研究也發展迅速;軟件測試市場繁榮,提供了大量商業和開源測試工具.在我國,軟件測試起步較晚.在以往一些中小IT企業“重開發,輕測試”,只有一些知名企業才有專門的軟件測試人員.隨著國內軟件市場不斷擴大,軟件企業逐漸走入正軌.近年來,軟件質量越來越被關注,軟件測試日益引起國內軟件企業的高度重視[3],企業在軟件測試人力上的投入也在逐漸增大,對于軟件測試人員的需求越來越大.本文首先從崗位設置﹑專業技能要求﹑專業素質等方面分析了企業對軟件測試人員的實際需求,接著探討了目前高校《軟件測試》課程教學現狀,最后提出高校《軟件測試》課程教學的改革方向和具體方案.
隨著軟件行業的不斷發展,用戶對軟件質量要求的提高,企業對軟件測試人才的需求量逐年遞增,對軟件測試人員的專業知識﹑技能和素質也有一定的要求.
1.1企業對軟件測試人員的崗位需求
目前在國內軟件測試行業還處于起步階段,大家對測試工程師這個職業的認識并不明確.規范的軟件測試和開發一樣,開發有的崗位,測試也應有.軟件測試一般有測試員﹑測試工程師﹑高級測試工程師﹑測試經理(測試架構師)等崗位.也有一些公司在軟件測試方面已有較完善的體系,比如性能測試領域,有專門的性能測試分析師,架構師.隨著軟件測試行業的逐步規范,測試崗位的分工會越來越明確.
1.2企業對軟件測試人員的專業技能需求
根據上述崗位需求的分析,不同的崗位要求的專業技能的側重點不同.但總的來說軟件測試人員要具有一定的代碼編寫的技能,才能更好地完成單元測試﹑性能測試等測試工作;測試人員還要具有測試的理論和實踐知識,熟悉缺陷管理,具備優秀的缺陷診斷和發現能力,能熟練運用幾種常用的軟件測試工具,能運用所學軟件測試技術和工具解決實際軟件測試問題;測試人員還需要掌握關于網絡﹑操作系統等的知識,能配置各種測試環境,分析各種系統平臺.
1.3企業對測試人員的綜合素質需求
基于軟件測試工作的特點,測試工程師需要具有良好的溝通能力﹑學習能力﹑適應能力﹑較強的邏輯思維能力﹑團隊協作能力和組織能力.軟件測試工作貫穿于軟件的整個生命周期,軟件測試人員要與項目中的不同成員合作,要求測試人員注重團隊之間的交流溝通,善于清晰準確地表達自己的觀點,能夠適應高強度和快節奏的工作方式,服從項目經理的工作分配.
作為人才培養的主要基地,高校是目前企業引進軟件測試人才的主要途徑[4].然而,由于國內高校對市場需求反應遲緩,目前開設軟件測試專業的高校還比較少.開設軟件測試課程的高等院校中,實際教學過程中也存在諸多不足和困難[5].
2.1師資力量缺乏,教學效果差
軟件測試課程是一門理論性和實踐性都非常強的課程.該課程的主要教學目標是讓學生掌握軟件測試的基本理論和方法,熟練運用一些常見的測試工具,熟悉軟件測試的流程,掌握測試用例的設計方法.講授該課程不僅要求老師有較高的軟件測試理論水平,同時也要有實際的軟件測試項目實踐經驗.目前很多高校都缺少有軟件測試實踐經驗的老師[6].一些教師僅僅憑借書本進行理論教學,無法針對企業的人才需求開展教學活動.在這種教學師資缺乏的情況下,軟件測試課程無論是理論教學的深度還是實踐教學的設計都較難滿足教學的需要,導致最終的教學效果并不理想.
2.2課程內容孤立,教學方式單一
軟件測試課程的授課內容大致如下:首先介紹軟件測試的基本概念,軟件缺陷,測試用例等;接著講授測試用例的兩種設計技術:黑盒測試和白盒測試內容;然后按照軟件測試的流程講授單元測試﹑集成測試和系統測試的內容;最后介紹軟件測試過程的管理.課程內容的理論性過強,基本概念和基本理論較為抽象,知識點孤立,使得學生感覺枯燥乏味,對課程的理解不夠深入.
在教學方式上,大多數高校還是教師在課堂上講授理論知識,學生上機完成相應作業的方式.不論是授課內容,還是課后作業,都是以掌握知識點為主,并圍繞知識點布置相應的上機作業,這種方式并不能達到較好的實踐目的.比如講解黑盒測試中邊界值測試,教師會在課堂上講解這種測試用例設計的原理和方法,也會布置相應的作業.但是學生最終還是不清楚什么情況下應用邊界值測試,甚至在實際項目應用中真正的測試用例是什么樣都不清楚.單一孤立的知識點沒有按照實際應用過程展開容易導致學生掌握了各個知識點,卻無法形成知識實際應用的能力的結果.
3.1加強校企合作,注重雙師型教師的培養
通過加強校企合作,一方面可以培養具有實際軟件測試項目經驗的教師,另一方面,可以根據企業的實際應用需求搭建軟件測試實驗平臺,選取實驗案例,更有針對性的培養學生的專業技能和專業素質.校企合作的方式主要有教師進企業接受培訓或者直接頂崗﹑學生進企業頂崗實習﹑邀請企業進高校.
目前我校在與企業的合作方面已初見成效.2013~2015年,連續三年學期末,都邀請51testing公司的高級測試工程師來我校進行軟件測試課程的實訓,案例選擇合適,學生反響較好;與上海澤眾軟件開發公司合作,搭建了軟件測試的實驗平臺,有自動化測試工具﹑性能測試的工具以及測試流程管理的平臺,滿足了軟件測試課程實踐教學的需要.在2013年﹑2014﹑2015年河南省軟件測試大賽中學生團隊均獲得了特等獎﹑一等獎的好成績,該比賽注重的就是軟件測試工具的實際應用以及軟件測試知識的綜合運用.今后還應進一步的推進校企合作,盡量選擇不同類型的企業來合作,以便更全面了解軟件測試崗位和崗位所需要的專業技能.另外,除了派教師到企業學習外,教師在工作中與企業員工也可以保持合作,例如合作組織成立軟件測評小組,承接一些實際的軟件測評任務.一方面可以給學生提供實踐的機會,另一方面可以讓教師從事實際生產實踐,促進測評環境和測試隊伍的發展,既加速教學改革,又有了一條產業化的發展道路.
3.2合理安排教學內容,提高學生專業技能
3.2.1注重課程理論內容的整體性
從不同的維度整合課程的理論內容,注重課程內容的整體性,使學生從測試概念﹑測試技術﹑測試過程﹑測試管理幾個維度來清晰地理解課程的主線.在講授課程體系中各單項知識點和單項技能的基礎上,注重知識的融會貫通比如在講系統測試的功能測試和性能測試時可以選擇合適的案例,讓學生使用前面學習的黑盒測試技術來設計典型測試用例,并結合測試管理的知識來進行相應的測試計劃,完成測試目標;在講授白盒測試的相關技術的時候,可以結合學生以前的編程基礎,選擇合適的實驗案例,進行打樁和驅動模塊編寫的練習.最終實現軟件測試各個單項專業知識與技能整合運用的目標.
3.2.2加強實驗環節,合理選擇實驗內容
要提高軟件測試課程的教學效果,一定要加強實驗環節的比重.理論指導實驗,實驗幫助學生更好地理解所學理論.實驗內容的選擇一方面要結合軟件測試崗位的實際需求,另一方面要讓學生的容易理解,使學生能夠體會學以致用,這樣才能充分調動學生的積極性.例如選擇計算器軟件﹑課程教學網站﹑教務管理系統等學生應用較多較熟悉的軟件作為實驗中的被測試的軟件,進行測試需求的分析﹑用例設計﹑缺陷分析等實驗內容.
3.3采用多種教學手段,培養學生專業素質
3.3.1組織基于項目小組的實踐教學
軟件測試課程一般都是大三開設,學生已經有了一定的開發基礎,學習過軟件工程課程,初步具備完成一個完整項目的能力.在課程一開始,就組織學生自由結合,組成3~5人的小組,并選出一位同學作為項目的負責人.讓每組同學選擇一個課題,這些課題的內容可以是學生比較熟悉的,比如圖書信息管理﹑學生信息管理﹑校園二手物品交易等系統的設計與開發.選擇課題后,每組成員在負責人帶領下,分工合作,從項目的需求分析開始,完成項目的概要設計﹑詳細設計﹑代碼實現.每個小組完成軟件系統的開發任務后,將軟件提交給另外一組進行測試,符合“第三方測試”的測試原則.測試內容包括對文檔的靜態測試,對源代碼的單元測試,在各單元測試完成后,再進行的集成測試,以及把已經測試過的模塊組裝起來的系統測試.在測試過程中,結合課程中學到的理論知識,分別進行有關的測試計劃﹑測試設計﹑測試實施﹑測試結果分析和測試流程管理,并形成文檔.每個小組在課堂上演示和講解整個項目的測試過程.
通過這樣的一個完整的項目實踐,讓學生理解了測試和開發的關系.在測試的時候以自身的開發實踐促進測試,提高軟件測試技能,測試的經驗又有利于開發時候考慮到可能出現的問題.項目小組的實踐教學組織形式和企業的人員組織方式接近,有利于培養學生團隊合作精神,又能獲得軟件項目管理與被管理的實際經驗,“第三方測試”又鍛煉了學生之間以及“測試人員”與“開發人員”之間的溝通能力.通過這樣的實踐教學組織方式,讓學生靈活運用理論知識對軟件項目進行開發和測試,使學生真正進行團隊合作完成實際應用項目,激發學生學習的熱情和興趣,培養軟件測試人才所必須的實踐能力和專業素質,滿足企業對軟件測試人才的要求.
3.3.2案例驅動教學
為避免講授基本測試理論的枯燥乏味,除了課本知識外,收集一些實際項目的案例,在課程上講解分析.讓學生認識到軟件測試的實際問題是復雜的,需要相關理論的指導和學習.在案例教學中,注重采用啟發式教學方法,引導學生動腦.如在講授軟件缺陷的概念時,通過不同的案例,如鋼水外溢事件﹑服務器重新啟動﹑美國火星登錄事故等,認識不同的軟件缺陷的類別及軟件測試的重要性.在講解黑盒測試的一些技術,如等價類測試﹑邊界值測試的時候,可以使用第二日計算﹑三角形判斷﹑傭金計算等案例,并把這些案例編寫成能執行的軟件,在課堂上演示不同的測試方法設計出來的測試用例的測試效果,激發學生的好奇心和積極性,引導學生思考不同的測試用例設計方法的應用情景.
本文從企業對軟件測試人員的需求情況出發,對高校軟件測試人才的培養及教學現狀進行探討,針對高校軟件測試課程的教學改革,提出一些具體方案,期望能對高校軟件測試人才培養起到一定的促進作用,為企業提供合格的軟件測試人才.
參考文獻:
〔1〕(美)Myers Glenford J,Badgett Tom,Sandler Corey.軟件測試的藝術[M].北京:機械工業出版社,2012.20~21.
〔2〕武劍潔.軟件測試實用教程-方法與實踐(第2 版)[M].北京:電子工業出版社,2012.27~28.
〔3〕楊鵬,賀平.高職軟件測試專業的構建與探索[J].計算機教育,2008(02):63~66.
〔4〕穆海倫,李萬清.面向企業的高校軟件測試教學改革探索[J].計算機教育,2013(10):36~40.
〔5〕唐春玲,胡方霞,沈敏.軟件測試技術課程的教學改革與研究[J].科技信息,2013(05):35~36.
〔6〕潘麗麗,王天鍔,秦姣華.軟件測試教學研究與實踐[J].計算機時代,2015(07):57~59.
基金項目:周口師范學院教育教學改革研究項目(J201428)
收稿日期:2015-12-30
中圖分類號:G642
文獻標識碼:A
文章編號:1673-260X(2016)03-0273-03