伍曉圓
(寧夏職業技術學院,寧夏 銀川 750001)
【關鍵字】競賽訓練;軟件測試;技能大賽
技能大賽作為職業教育活動的重要載體之一,其技能、素質要求代表了職業教育人才培養的方向[1]。全國職業院校技能大賽“軟件測試”賽項按照行業企業軟件測試崗位真實工作過程設計,注重學生實踐技能創新能力培養,提升學生職業素養和就業能力。 然而如果競賽的準備沒有體現在課堂環節當中,影響學生面就僅限于參賽的學生。 為了使更多學生從中受益,利用競賽提高整體教學質量,對參賽經驗、賽項資源進行分析轉化,運用到實踐教學中變得迫在眉睫。
全國職業院校技能大賽軟件測試賽項采用實操形式,完成軟件測試工作。競賽突出實戰過程,考核點符合高職基于工作過程的課程教學特點,并且滿足軟件產業對軟件測試技能人才的需求特點,大賽考察要素構成如圖1[2]。
依據大賽考察核心技能及要素設計競賽訓練法,將軟件測試大賽參賽經驗以競賽訓練法的形式融入到課堂教學環節中,使更多學生受益,利用競賽提高整體教學質量。

圖1 大賽考察核心技能及要素
訓練內容包含功能測試、性能測試、自動化測試和白盒測試。
功能測試的主要任務是系統測試設計與測試執行。該階段測試人員根據軟件需求規格說明書進行測試用例的設計與執行。要求測試人員熟練運用如等價類法、邊界法、錯誤推測法和場景法等經典黑盒測試方法設計用例數據,并記錄測試用例的執行結果形成缺陷清單。
性能測試考察學生對性能測試工具LoadRunner的使用,它是一種預測系統行為和性能的負載測試工具。通過模擬上千萬用戶實施并發負載及實時性能監測的方式來確認和查找問題,發現系統瓶頸,從而針對性獲得性能調優方案。該階段要求學生根據需求文檔分析性能測試的壓力點, 使用LoadRunner 設置場景,錄制和調試腳本,執行性能測試。
自動化測試階段需要學生使用Python 語言編寫測試腳本,實現瀏覽器基本操作、頁面元素進行識別并定位等, 使用Web 應用程序測試工具Selenium 完成自動化測試,這個工具的主要功能包括:測試與瀏覽器的兼容性——測試你的應用程序看是否能夠很好得工作在不同瀏覽器和操作系統之上,測試系統功能——創建回歸測試檢驗軟件功能和用戶需求。
白盒測試部分要求學生根據要求編寫代碼,執行代碼走查。 在靜態測試中,將對代碼執行編程規則檢查。該項測試向學生們展示了程序語法之外的規則問題,編程語法是學習語言的基礎,在集成開發環境中也能夠被自動檢測,而編程規則是常被忽略又不該忽略的部分, 只有符合規范的代碼才能稱為質量級的,才能減少潛在的錯誤。
訓練項目依據全國職業院校技能大賽軟件測試賽項題目的特點設計,選擇基于B/S 架構軟件系統作為被測系統,參考競賽題目資產管理系統,搭配網上書城、辦公自動化系統、電子商務管理系統等,保證教學的實用性和前沿性。
根據教學時間和要求,可將訓練內容分項目或綜合項目進行,這里可以采用角色扮演的方法,學生們就是一個個測試小組,教師就是測試經理,給學生創造一個在公司從事測試工作環境。 訓練環節分測試計劃、測試實施和測試總結。
教師布置測試任務后,進入測試計劃階段,每個小組的組長和組員展開討論, 根據需求文檔進行需求理解和分析,通過任務分解,對測試難度、工作量和進度進行預估后分配每人具體工作,形成測試方案文檔。
在測試實施階段,根據具體測試任務按模塊或按整個系統開展功能測試、性能測試、自動化測試和白盒測試, 這個階段涉及的過程文檔包括測試用例、缺陷清單、性能測試腳本及執行截圖、自動化測試腳本及執行截圖、白盒測試代碼等。
測試總結階段需要學生將測試實施的成果形成測試總結報告, 這一部分考察學生的分析總結能力,比如功能測試部分需包含用例分析統計、Bug 匯總分析統計等,性能測試需要通過測試腳本的執行,進行性能監測,分析執行截圖,發現系統瓶頸。
以上三個環節,在教學中根據時間和需要,整體或者分步展開訓練,分步訓練時可以在每個環節后增加分組匯報環節,各小組挑選一名成員將小組完成的工作內容匯報,比如采用了什么方法? 發現了什么缺陷?如果復現缺陷?這樣既可以幫助學生理清思路、鞏固所學,又可以鍛煉學生的公眾表達能力,增強了學生的自信心。
技能的熟練掌握需要靠反復的練習,然而日常教學中, 督促學生高質量的反復練習是教學實施的難點。在競賽訓練法的實施過程中設置近似模擬比賽的條件至關重要,這樣可以使得平時普通枯燥反復的練習富有挑戰性, 參考比賽的方式和規則進行反復訓練,最大程度了調動了學生練習操作技能的主動性和積極性,同時還可以確保訓練高質量的輸出。
(1)時間與題量相匹配,要求在規定時間內進行技能訓練,提交訓練文檔。
(2) 競賽訓練需要模擬真實比賽的緊張氣氛,比如設置整點提醒,倒計時等。
(3)評分要點參考國賽規程評分細則進行。
(4)建立個人訓練基本信息數據庫(包含完成時間、得分排序、承擔角色等重點字段)。
(5)設置一定的獎勵機制,可以設置團體獎勵和個人獎勵,獎勵與成績掛鉤的同時,把個人訓練排名信息作為入選校賽、區賽和國賽的參考。
競賽訓練通過將3~5 人分組,團隊合作進行。 目前國內大多數公司測試部門分工明確,針對不同的測試類型和測試流程中的不同環節都有專人負責。 所以,在競賽訓練法中,也應該鼓勵學生各施所長通力合作,根據自身興趣特長參加測試工作,比如擅長文字的同學負責文檔編寫,熱愛編碼的同學負責白盒測試,喜歡研究軟件操作的同學負責性能測試。
測試文檔是軟件項目的一部分,沒有正式的測試文檔的活動,就不是規范的測試。 測試文檔在項目測試中占有重要的地位和非常大的工作量。然而在常規教學中,測試文檔往往給理論、題海讓步,學生基本沒有什么機會接觸文檔編寫。
事實上, 因為詳細的文檔可以節省項目的時間,提高工作效率,減少費用支出,所以測試人員的績效掛鉤于高質量的文檔提交。 在競賽訓練法中,必須非常重視測試文檔的編寫,起初給學生提供高質量的全套文檔模板至關重要,并就疑難點分享、展示、討論,消除學生面對文檔編寫時的無措感,并加強對文檔重要性的認識。
傳統教學采取先理論后技能的課堂模式。將競賽訓練法應用在課堂教學中, 可以顛覆傳統的課堂模式,從技能訓練入手,讓學生在訓練中發現問題,從而激發學生的理論學習興趣。競賽訓練法匹配碎片理論知識點,相互穿插實施,由淺入深,循序漸進,幫助學生技能和理論水平交替螺旋式上升。
根據教學效果的實驗研究如圖2[3],課堂講授的教學效果是最差的, 所學內容24 小時之后只剩下5%。 在競賽訓練法中,大量采用分組討論、親手實踐和學以致用的教學方法,這三種教學方法的平均保持率均超過50%。基于這項研究成果,相對傳統的教學,競賽訓練法能夠達到更好的教學效果。

圖2 各種教學方法的平均保持率(24 小時之后)