黃麗麗
(貴州電子信息職業技術學院,貴州 凱里 556000)
伴隨著信息技術和“互聯網+“的飛速發展,IT 產業也迅速發展起來,隨之越來越多的軟件產品應運而生,軟件產品的質量與軟件的性能有很大的關系。眾所周知,在軟件生命周期中,軟件測試階段是保證提升軟件產品的質量和可靠性的重要手段。因此,軟件測試崗位的需求量在企業中也隨之上升。據業內相關數據統計,目前國內IT 技術崗有三四百萬,其中軟件測試崗位缺口至少三十萬,在未來5至10年內該數字還會繼續增大[1]。為了更好與測試人才的需求接軌,目前國內許多高校開設了軟件測試相關課程,開啟了對軟件測試人才的培養。但據相關數據統計,軟件測試崗位相關人才仍舊十分緊缺,現階段大多數高職院校的軟件測試人才培養模式以及軟件測試課程的教學模式可能存在一定的問題。職業院校技能大賽的競賽內容來源于企業項目,讓學生體驗真實測試環境,掌握測試技能,提升對測試崗位的認知。本文總結職業院校技能大賽軟件測試賽項的競賽經驗和競賽成效,結合高職院校軟件測試課程教學現狀,將競賽模式和競賽內容與課程教學進行深度融合,展開對軟件測試課程的教學改革實踐探析。
軟件測試課程在高職院校計算機類相關專業課程教學中,其教學方式更偏向于理論教學。教學內容主要包括軟件測試基礎知識、測試方法和技術、測試用例設計、測試執行及測試管理相關內容。教學核心目標在于培養學生的實踐能力,貼合企業崗位需求。但由于受多方面因素的影響,該課程在教學過程中依然面臨一系列問題。
傳統課堂教學以教材知識講解為主,教學方法單一,重結果輕過程。教師往往為了完成教案內容,把課堂作為施展教案的舞臺,希望學生按照指定好的教學設計及流程完成教學活動。這種以教師為主,學生為輔的教學方式缺乏互動、降低了學生的主觀能動性和創造性,忽略師生情感。長期的教學會使學生的注意力偏移,從而脫離課堂。眾所周知,高職學生對手機的依賴程度尤為明顯,在課堂中玩手機已經是一種常見現象。據統計,在傳統教學課堂中高達75.91%的學生會使用手機[2]。從學生的主觀上分析,高職學生自控能力差,缺乏學習能動性,具有較強的惰性。另一方面,正處于青年時期的學生個性十分活潑,善于動手,喜歡生動的課堂,在學習過程中也渴望獲得老師和其他同學的關注。然而傳統教學模式的課堂對學生關注度不足,無法滿足學生的需求。為此,為了更好適應職業教育發展的需求,摒棄傳統教學模式,注重學科特點,改善教學課堂,優化教學方法,強化教學實踐已經成為該課程改革的必然趨勢。
軟件測試課程性質屬于實踐類課程。課程注重培養學生的實踐動手能力。由于該課程的教學目前仍處于起步階段,在教學實訓環境方面,大部分高職院校缺乏與企業接近的測試實訓環境和測試案例,使得教師在教學過程中受到實訓環境的限制,教學內容大多數偏向于理論講解,教學案例也大多數都停留在教材上,課堂對教材的依賴性較強。而且,目前大多數教材的案例都過于簡單陳舊,無法更好與企業實踐接軌,導致學生的課堂實踐能力無法進行大幅度提高。
從師資力量方面來講,目前軟件測試在IT行業中剛興起不久,從事軟件測試教學的教師數量不足,人才緊缺,大部分教師并未真正從事過軟件測試相關工作。教師關于軟件測試相關知識基本靠自學獲取,知識薄弱,理解不深刻,實踐性不足,依賴于教材教學,從而導致在教學過程中教學方法過于單一、教學內容簡單、課堂氛圍差以及實操性不足,致使學生在畢業后很難勝任需求變化較快的測試工作崗位。
目前,在軟件測試課程的教學過程中,大部分高校將教學內容主要分為三個方面:測試基礎知識、測試實踐技術以及測試管理。其中測試基礎知識是軟件測試中的基礎內容,包括功能測試、白盒測試、自動化測試及性能測試等相關基礎理論。測試實踐技術包括制定測試相關文檔、設計測試策略、設計測試用例、執行測試等相關實操技術。測試管理包括對測試文檔、軟件缺陷以及人員管理等。但在實際教學中,往往將以上三個方面的內容進行了明顯地分割,理論知識和實踐操作開展不同步,教學內容無法實現統一,學生在學習的過程中難以形成一個完整的測試框架體系,知識零散,無法把所學知識應用于軟件測試實踐。
另外,根據測試內容還會使用不同的測試工具,但在實際教學過程中,由于缺乏企業實踐,教師對測試工具的教學僅僅停留在簡單使用上,導致學生對測試工具的學習和認識不足。但在實際工作崗位中,為有效提高測試工作的效率和質量,企業在進行測試培訓時是非常注重對測試工具的學習培訓的。因此在開展該課程教學時,對測試工具相關聯的測試理論、使用方法、所適用的范圍和應用場景也必須考慮,這樣才能更好地與企業測試工作需求進行銜接。
職業院校技能大賽自2008年起開始舉辦,目前競賽體系已經基本建立。職業院校技能大賽是我國職業教育發展的重要成果,也作為職業院校技能人才培養的重要依據[3]。自2007年開始,職業院校技能大賽首次開設軟件測試賽項,該賽項結合企業設計競賽內容。關聯的測試崗位包括:功能測試工程師、白盒測試工程師、自動化測試工程師以及性能測試工程師等。職業院校技能大賽從最大程度上匹配企業對測試人才的需求。競賽案例以基于B/S 架構和C/S 架構的“資產管理系統”為考核點,競賽內容包括:功能測試、白盒測試、自動化測試、性能測試,測試文檔編寫等。競賽考查學生對軟件測試方法和測試技術、測試工具的掌握、團隊分工、測試文檔編寫以及測試結果分析等相關方面,重點培養學生實際問題的分析和處理能力。競賽采取實操方式進行,學生須在規定時間內完成相關測試任務,體現競賽的實戰性。職業院校技能大賽的競賽方式既滿足了軟件行業對高素質技能人才的需求,也滿足了高職院校源于實際崗位工作過程的課程教學特點。本文探索軟件測試賽項在課程教學設計與實施中的作用,將競賽的內容、競賽模式與軟件測試課程深度融合,合理組織軟件測試課程教學內容,強化教學過程的實踐性。
通過對軟件測試課程教學現狀分析以及軟件測試賽項的成效分析,本文將賽項中的競賽內容和競賽模式與課程的教學相融合,以競賽為驅動,設計以競賽內容的項目化教學課程體系的課程改革,具體方案如下。
為了使學生更好地掌握軟件測試相關方法和技術,能夠獨立進行軟件測試相關工作,形成較為系統的測試體系結構。本文將軟件測試賽項中的資產管理系統作為課程教學項目,將課程設計與軟件測試賽項相結合,深入剖析賽項任務及賽項規則,合理設計課程教學任務和目標,采取以競賽為驅動的項目化教學設計[4]。課程教學內容設計可參考表1。

表1 軟件測試課程教學內容設計
該課程采取“教、學、做”一體化教學模式,教師根據知識點的不同分配不同的學習任務。課程實訓項目將資產管理系統作為課程實訓系統,充分發揮教學與競賽實訓平臺的效果。考慮到教學難度和實訓設備,教學實訓項目平臺的選取主要采用基于B/S 結構的資產管理系統,教學內容包括功能測試、白盒測試、自動化測試及性能測試。
1)教學組織
開展教學活動時,教學過程采取分階段進行:第一階段為知識講解與演示階段,主要是教師進行教學知識講解與實操演示。第二階段為單項技能訓練階段,在教師的指導下,學生獨立參與課堂知識點相關的情境學習與實操,將理論知識與實踐相結合,掌握理論知識的同時也提升學生的操作技能。例如基本概念、測試方法以及測試工具的使用等,在自我訓練的過程中了解每個任務的需求,教學內容的重難點以及操作流程等,使學生在自我訓練的過程中逐步形成較系統的知識架構體系。第三階段為小組合作技能訓練階段[5],本階段參考企業進行測試角色劃分,以小組形式開展。例如,分配項目經理(由教師承擔)和測試工程師(由學生承擔)兩個角色,測試工程師又分為測試項目組長與其他測試人員。在實際教學開展的過程中,全班同學分組開展,一般3-5 人分為一組。每組由1人擔任項目組長,主要負責本小組測試任務的分配、協調及管理等,其余測試人員負責項目的實際測試工作,在開展前,學生可根據自己的特長協商選擇測試任務。這種采取小組合作的教學形式,使得原本枯燥課堂變得活躍并富有挑戰性,充分發揮了學生實踐過程中的積極性和主觀能動性,同時也培養了學生的團隊協作能力,提升了學生的綜合技能。
為充分分配測試任務、防止交叉測試被忽略,在開展項目綜合實訓時,項目組長需要根據不同的角色做測試成員的角色分配,參考競賽需求文檔,主要將資產管理系統的管理員按不同的權限進行劃分。主要包括超級管理員、系統管理員和資產管理員三種角色,不同的角色在測試系統中的操作權限及范圍不同。項目組長將根據角色的不同下發測試任務,梳理相關測試流程,協調好各角色之間的相互溝通,確保充分測試。
2)教學實施
在教學實施過程中,需要細化基于測試工作流程的角色分配,可以針對執行工作任務的不同,劃分不同測試級別的工程師。例如劃分初、高級工程師,初級工程師需要按照測試方案和測試工作流程對產品進行功能測試,要求具備的技能包括測試需求分析,設計測試用例以及缺陷查找等等。而高級工程師除了需要具備初級功能師具備的測試技能外,還需要掌握白盒測試、自動化測試、性能測試以及測試管理等相關技能以及兼顧測試計劃的制定、協調測試進度安排、分析測試執行結果以及編寫相關測試報告等工作。教師作為項目經理,在進行測試工作開展過程中要對各小組的測試任務進行評審,評審指標包括測試用例設計的規范性、正確性和覆蓋程度,根據測試情況提出評審意見。各個測試小組再根據評審意見對本小組制定的測試計劃,編寫的測試用例以及提交的Bug清單中進行優化調整。
本文對于課程的組織與實施采取分階段進行,分組開展,分角色執行,相同的角色再根據級別的不同進行測試任務的分配。整個教學的組織與實施過程有條不紊地開展。因此,采用以競賽為驅動的項目化教學方式,將測試工作形成了系統的框架體系,不僅讓學生體驗了真實測試環境下的氛圍,培養了學生的團隊協作能力,為學生將來進入實際工作崗位打下基礎。
教師在教學過程中,大部分屬于獨立備課教學。就算同一門課程有多個老師上課時,教師與教師之間很少進行教學交流。教學內容、教學設計及教學案例均由教師自己決定,這種情況會導致不同的班級之間的學習效果存在較大的差別。本文提出采用創建校企合作的教學團隊進行課程教學。該教學團隊由3~4名專任教師和1 名兼職教師組成,專職教師中1 人為軟件測試課程的主要負責人,兼職教師來自企業中專門從事軟件測試工作崗位的工程師。在進行課程內容設計和課程考核方式制定時,采用課程教學團隊集體討論的方式決定。由于兼職教師來自企業,對于項目教學的設置和開展具有實踐性的指導意義。課程團隊根據兼職教師的指導,參考企業行業標準,結合軟件測試賽項競賽內容進行課標制定、授課計劃制定、教學設計以及課程資源整合等。同時教學團隊之間利用課余時間互相溝通,分享教學進度、教學內容、教學中遇到的困難以及教學經驗等,這樣更好地保證教學效果的一致性。因此,通過建立校企合作的課程教學團隊,完成教學與企業對接相統一,實現了課程資源的共享,加強了教師之間的交流合作。
在以往的教學過程中,軟件測試課程由于側重于理論教學,考核基本按傳統方式進行。例如:按平時成績40%+期末考試60%的方式進行課程考核。這種傳統的課程考核方式重結果輕過程。然而軟件測試課程相關知識點聯系密切,一旦學生在某一環節知識點沒有掌握好,后續的內容很難跟進。因此,本文對課程對考核評價模式進行優化,采取多元化教學考核評價制度,教師可以利用職教云或超星平臺實現線上線下相結合的多元評價方式。
為使考核方式公開公平公正,有理有據,該課程在指定課程標準時形成考核評價標準,遵循“重過程、輕期末”的考核原則,將軟件測試課程的考核體系設置為:自主學習+課堂表現+項目考核+期末考試。自主學習主要表現為學生通過觀看課件、視頻、答題、討論等自主學習方式獲取分值;課堂表現考核可通過統計學生到課率、課堂活動互動等方式獲取分值;項目考核為技能考核,主要考核學生對于實操項目完成的實踐動手能力;期末考核保留最終知識點考核。具體考核細則可參考表2。

表2 軟件測試課程多元化考核評價內容
本文分析了職業院校技能大賽對高職院校課程教學的影響和成效,充分挖掘競賽對課程教學改革的價值,把競賽經驗、競賽相關資源及競賽模式融入教學,實現了課程教學和企業實踐相統一。通過建立校企合作的課程教學團隊來推動軟件測試人才的培養,注重學生的測試實踐技能的提升,在一定程度上推動了信息化教學。因此,本文探討和提出的職業院校技能大賽下的教學改革方式能有效推動職業教育改革,也對促進職業技能人才培養具有重要的指導意義。