摘要:探討了面對高職學生的軟件測試課程建設的定位,提出了漸近的分級課程教學體系,針對課程教學中遇到的問題提出了相應解決辦法。
關鍵詞:高職;軟件測試;分級
近年來,我國軟件產業保持了迅猛發展的態勢,但是,由于我國許多軟件企業存在著“重開發、輕測試”的傾向,在造成軟件產品質量問題日漸突出的同時,也凸顯了軟件測試人才的極度匱乏。隨著企業對軟件質量要求不斷提高,軟件測試近幾年在國內軟件項目開發中越來越受到重視,并得以迅速發展,因此對軟件測試人才的需求也不斷增加。
目前,軟件測試人才的培養主要有兩種途徑:一是在各高校的計算機類專業課程中開設軟件測試課程,二是社會上各類軟件測試工程師的培訓課程。在軟件測試課程教學中針對學生的基礎設計一套適合高職生源的課程內容和教學方法,使學生能盡快地掌握軟件測試基本概念和方法,并具備軟件測試崗位的基本能力要求,顯得非常重要。
軟件測試職業分析及高職學生定位
軟件測試工程師的主要工作職責是:理解產品的功能要求,并對其進行測試,檢查軟件有沒有錯誤,決定軟件是否具有穩定性,寫出相應的測試規范和測試案例。主要包括:(1)負責項目/產品的測試工作,分析產品需求,建立測試環境和計劃,保證產品質量以及測試工作的順利進行;(2)按照軟件工程規范和項目管理流程,實施、管理和指導軟件開發不同階段的各種測試,并提交測試報告。測試計劃安排包括人員安排、進度、使用的軟硬件環境、測試流程等;(3)提交測試報告,并撰寫用戶說明書;(4)參與軟件測試技術和規范的改進和制定。
測試工程師一般分為以下幾個等級:(1)高級測試工程師。高級測試工程師不但需要掌握測試與開發技術,而且要對所測試軟件對口的行業非常了解,能夠對測試方案可能出現的問題進行分析和評估。(2)中級測試工程師。中級測試工程師要能編寫測試方案、測試文檔,與項目組一起制定測試階段的工作計劃、能夠在項目中合理利用測試工具來完成測試任務。(3)初級測試工程師。初級測試工程師的工作通常是按照測試方案和流程對產品進行功能測試,檢查產品是否有缺陷。
根據高職學生的能力特點,應該把高職學生定位在初級和準中級測試工程師,具有一定的設計方案的編寫能力,能利用測試工具完成一定的測試任務,并能夠執行功能測試。整個課程的重點是軟件測試崗位的基本技能,主要包括:軟件測試基本概念的建立;軟件缺陷生命周期管理;系統測試的基本概念、方法和用例設計;典型測試工具的應用;對于典型系統的測試方法。
在課程教學過程中,需要解決下列難點:(1)在有限的教學時間內培養滿足實際工作要求的測試人員;(2)采用合適的教學方法,使學生能夠更加容易地掌握理論知識;(3)建立有效的實踐環境,培養學生實際工作技能。
設立漸進的軟件測試課程教學體系
高職高專以培養實用型人才為主要目標。軟件測試人員的培養是一個長期的過程,并非靠一兩門課程便可以完成全部目標。此時,通過一門課程的學習培養能夠直接開展實際工作的測試人員就成為一個課題。
通過研究軟件企業軟件測試人員的主要工作后我們發現:一個軟件測試團隊一般是由具有不同技能和經驗的人員搭配而成的。對三個級別測試工程師所需要具備的能力和需要承擔的工作進行分析,將教學目標定位在初級和準中級上。進一步分析初級、中級測試工程師的工作內容和所需要的技能,將這些技能按照漸進的順序分為不同的組,當掌握了該組所需要的技能之后,就可以認為達到了一個新的測試工程師等級。這樣,在教學過程中可以循序漸進地讓學生掌握不同的技能組,每完成一個技能組,都可以完成對應的實際工作。考慮到教學目標,可以設置4個技能組,當完成這些技能組的學習之后,學生能夠達到初級和準中級測試工程師的要求。由于不同技能等級的定義,完全取材于實際的崗位需求,因此學生能夠通過課程學習,滿足實際工作的初始要求并在后續的工作中不斷提高。課程教學體系設計思路如圖1所示。

首先,將軟件測試工程師分為初級、中級、高級三個級別。不同級別的測試工程師需要具備不同的技能并在軟件測試的不同環節承擔相應工作。然后,分析每個級別的技能要求,得到該級別對應的“技能清單”。其次,分析高職學生的職業定位。接著將初級測試工程師、中級測試工程師的技能清單進行更加細致的分析和分組。分組的原則是:當掌握了某個分組的技能之后,就可以完成一項實際工作。不同分組之間有漸進關系。最后,將每個技能組定義為一個“學習級別”,并用Level1、Level2、Level3、Level4給以命名。設定的四個學習級別是漸進的,分別具有不同的理論教育、實踐教育內容和考核。
根據軟件測試職業的基本技能要求(見圖2),通過對企業實際軟件測試團隊工作的調研分析,在知識模塊的劃分上采用分級的設計思路,使知識模塊既包含了軟件測試職業的基本技能要求,又利用循序漸進的方式,以利于高職學生消化吸收,同時也符合企業實際測試團隊對崗位的要求。課程內容模塊分級如下表。

引入實踐優先的“五步教學法”
在傳統的教學方法中,學生首先被動接受理論知識,然后通過實驗等實踐環節去鞏固、理解理論知識。學生在學習理論知識時,往往不知道為什么要學習這些內容,而在實踐過程中,往往無法把實踐內容和所學的理論知識較好地聯系起來。
在教學實踐中我們發現,學生學習缺乏動力的原因是不明白“為什么學這些內容”;另外,一味地模仿教師,學生的分析能力、自主學習的能力不易提高。因此,我們根據軟件測試崗位實踐性強的特點,在教學中結合實際項目、開展“五步教學法”(見圖3),按照以下五個步驟來組織教學:布置問題、動手實踐、分析和討論問題、理論講授、實踐提高。

通過動手實踐,學生明確工作任務。通過教師的分析和學生的討論,學生能認識到自己動手實踐中存在的問題。經過前三個環節的鋪墊,學生就比較容易接受理論講授,并能在實踐環節去消化、運用。
該教學法以完成職業培養為目標,并將目標細分為一個個漸進的具體目標,通過不斷地設置問題、解決問題,學生最終掌握一系列實際工作技能,達成培養目標。
“五步教學法”的開展,一方面,通過先動手、后總結的方式,強調在實踐中學習,使學生對理論知識的學習有更清楚的目的,提高了學生的學習興趣;另一方面,通過個人思考和小組討論,鍛煉了學生的思維能力,同時學生的自主學習能力得到進一步提升,而這也是學生從業后需要具備的基本素質。
建立工程化的教學配套資源
軟件測試教學面臨的重要問題是項目案例的組織和規劃,為此可以組織開發不同層次的軟件測試基線包用于教學,其中包含幾個主要內容(見圖4):一是歷年典型的學生開發項目案例;二是包含著人為設置的軟件缺陷的軟件系列,所設置的缺陷代表著在實際軟件開發過程中的典型問題;三是企業的項目資源,包括項目需求文檔、項目設計文檔以及項目軟件的不同版本,這些資源能夠讓學生接觸到完整的案例,并且由于基線包中包含了軟件的不同版本,從這些版本中,可以清晰地發現軟件缺陷是怎樣被不斷地發現和修復。
為了使軟件測試基線包具有可移植性,可通過技術手段實現軟件測試基線包的快速部署,使學生能快速便捷地完成測試環境及測試軟件在不同場合的搭建。軟件測試基線包的開發為教學和實踐提供了有力保障,同時便于課程教學資源共享。

通過對軟件測試崗位的分析,可在軟件測試課程教學中建立面向職業要求的分階段漸進教學體系,突出職業能力培養。同時根據高職學生認知特點,以職業技能培訓為出發點,通過開展先動手工作、后理論總結的“五步教學法”,提高了學生的學習興趣,培養了學生分析解決問題的能力。最后,利用開發配套的軟件測試基線包提供豐富的實戰資源,給學生提供良好的測試訓練環境。經過近幾年的課程教學實踐,這些方法和措施取得了良好的教學效果, 2007年,該課程被評為省級精品課程。
參考文獻:
[1](美)Robert Culbertson,Chris Brown,Gary Cobb.快速測試(影印版)[M].北京:清華大學出版社,2004.
[2]徐芳.軟件測試[M].北京:機械工業出版社,2006.
作者簡介:
徐芳(1970—),女,上海市人,浙江機電職業技術學院講師,工程師,主要從事計算機工程與教學研究。
戴堅鋒(1975—),男,浙江三門人,浙江機電職業技術學院講師,高級工程師,主要從事計算機教學研究。