隨著我國軟件產(chǎn)業(yè)的快速發(fā)展,軟件企業(yè)也逐漸規(guī)范,軟件測試人才也逐漸成為一種專門的技術(shù)人才,我國對軟件測試人才的需求也在不斷增大。但專門的軟件測試人才的培養(yǎng)卻很少,通常是在軟件工程及相關(guān)專業(yè)開設(shè)一門“軟件測試技術(shù)”課程,作為對測試技術(shù)的基本了解來講授。2003年以來,隨著35所全國示范性軟件學(xué)院的建立,以及各地兩年制軟件職業(yè)技術(shù)學(xué)院的興起,一些軟件學(xué)院開始培養(yǎng)專門的軟件測試人才。由于教育部沒有設(shè)置軟件測試專業(yè),所以一般是作為軟件技術(shù)或軟件工程專業(yè)中的軟件測試方向來設(shè)置,我院是作為軟件技術(shù)專業(yè)(軟件測試方向)來開設(shè)。作為一個新的職業(yè)技術(shù)人才培養(yǎng)方向,無論是在培養(yǎng)方案、課程體系等方面,都處于探索中,還沒有成熟、完善的培養(yǎng)模式。
我院從2004年即開設(shè)了軟件測試方向,在培養(yǎng)方案、課程體系、實踐環(huán)節(jié)等方面作了大量的探索、研究和實踐工作,取得了一些成效,也遇到了許多問題。本文對我院的軟件測試技術(shù)人才的培養(yǎng)模式進行分析和總結(jié),希望能拋磚引玉,與同行交流。
1兩年制軟件測試方向課程體系的特點
兩年制軟件測試人才培養(yǎng)的特點主要有:
(1) 學(xué)制短,只有兩年;
(2) 目標(biāo)是培養(yǎng)實用型軟件測試技術(shù)人才;
(3) 要具備一定的編程能力。
上述特點決定了軟件測試人才的課程體系的特點:
(1) 方向即專業(yè)由于學(xué)制短(兩年),除了第四學(xué)期的畢業(yè)實訓(xùn),實際上真正上課時間只有三個學(xué)期。所以軟件職業(yè)技術(shù)人才不能像本科生培養(yǎng)一樣,到大三才分方向,而必須從入校就開始分,所以軟件測試方向?qū)嶋H上是按軟件測試專業(yè)來培養(yǎng)。
(2) 開發(fā)與測試兼?zhèn)湟粋€合格的軟件測試人員必須具備基本的編程能力和軟件開發(fā)人才的基本素養(yǎng)。所以軟件測試方向的課程除了測試課程外,還要掌握軟件技術(shù)的基本課程,包括數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫、計算機網(wǎng)絡(luò)、軟件工程,以及至少一門主流程序設(shè)計語言等。
(3) 課程緊湊、課時多由于相對于其他專業(yè)來講,軟件測試方向的學(xué)生要學(xué)習(xí)更多的課程,所以課時就多,課程安排緊湊。
(4) 實用性和實時性作為實用型軟件測試人才,學(xué)生必須掌握當(dāng)前主流的測試工具、實用測試技術(shù)和方法等。所以課程體系必須要具備實用性和實時性。
2課程的設(shè)置
在設(shè)置課程時,我們進行了大量的調(diào)研,經(jīng)過2004級和2005級兩屆學(xué)生的培養(yǎng)實踐,針對培養(yǎng)效果,進行了一些分析和課程改革。目前2006級的課程設(shè)置是在掌握基本的軟件技術(shù)基礎(chǔ)知識和一門主流程序設(shè)計語言的基礎(chǔ)上,開設(shè)了“軟件測試技術(shù)”、“功能測試與性能測試”、“測試管理”等軟件測試專業(yè)課程。
主要專業(yè)課程設(shè)置見表1。
從功能上講,課程的設(shè)置可以分成5個部分,對應(yīng)學(xué)生不同層次能力的培養(yǎng)。
第一部分程序設(shè)計能力、工程化開發(fā)思想的培養(yǎng)。該部分的課程主要包括VB、Java、數(shù)據(jù)結(jié)構(gòu)、計算機網(wǎng)絡(luò)、數(shù)據(jù)庫、軟件工程等,主要是軟件技術(shù)基礎(chǔ)知識的學(xué)習(xí),培養(yǎng)學(xué)生基本的程序設(shè)計能力,使之具備軟件技術(shù)人才的基本素養(yǎng),同時軟件工程等培養(yǎng)學(xué)生工程化和規(guī)范化的軟件開發(fā)思想。采用Java作為主要編程語言,將另一主流語言C#作為選修課,體現(xiàn)課程設(shè)置的靈活性。
在編程的課時和基礎(chǔ)訓(xùn)練上和軟件技術(shù)專業(yè)編碼方向的學(xué)生一樣,設(shè)置的原則:首先是一個軟件測試人員必須具有基本的編程能力和經(jīng)驗,才能更好地搞好軟件測試工作。第二是根據(jù)當(dāng)前軟件企業(yè)的人才需求考慮學(xué)生的就業(yè),因為河南省絕大多數(shù)軟件企業(yè)規(guī)模都較小,設(shè)置專職的軟件測試崗位的較少,程序員通常又是測試員,所以使學(xué)生既能編程又能測試,拓寬就業(yè)渠道。
第二部分軟件測試基礎(chǔ)知識。主要是“軟件測試技術(shù)”課程,側(cè)重于測試?yán)碚摵图夹g(shù)的掌握、搭建測試環(huán)境、測試工程師的基本職業(yè)素養(yǎng)培養(yǎng)。使學(xué)生在學(xué)習(xí)編程的同時,掌握對應(yīng)的測試技術(shù)概念和基本知識。為進一步的實際項目測試打下基礎(chǔ)。該部分對應(yīng)有2周的一級集中實踐課題,進行基本的測試訓(xùn)練。
第三部分主流測試技術(shù)和工具的掌握和使用、實際測試能力的強化和提高。對應(yīng)的課程是“性能測試與功能測試”,該課程主要是結(jié)合實際的軟件項目,介紹主流的測試技術(shù)和測試工具的使用,但并不只是性能測試與功能測試。該部分對應(yīng)有3周的二級集中實踐課題,分組進行實際的測試訓(xùn)練。
第四部分測試項目管理能力培養(yǎng)。主要課程為“軟件測試管理”,培養(yǎng)學(xué)生工程化的測試思想,學(xué)習(xí)主流測試管理方法和工具的應(yīng)用。該部分對應(yīng)有3周的三級集中實踐課題,訓(xùn)練項目的測試過程管理和測試管理工具的使用。
第五部分綜合測試能力培養(yǎng),即畢業(yè)實訓(xùn)。該實訓(xùn)為最后一個學(xué)期,學(xué)生到軟件企業(yè)或?qū)嵱?xùn)基地參加實際的軟件項目開發(fā)和測試,進行實境實習(xí),綜合地運用所學(xué)的測試和編程技術(shù)。
3實踐環(huán)節(jié)
培養(yǎng)過程的實施可以歸結(jié)為“夯實基礎(chǔ),強化訓(xùn)練”,夯實基礎(chǔ)即培養(yǎng)基本的編程能力和掌握基本的測試技術(shù)。強化訓(xùn)練即強調(diào)實際能力的培養(yǎng),通過對實際的軟件項目進行測試訓(xùn)練,使學(xué)生熟練掌握主流的測試技術(shù)和測試工具的使用。
為了加強實際能力的培養(yǎng),在正常教學(xué)的實踐外,我們還在第1~3學(xué)期分別設(shè)置了一級、二級、三級集中實踐課題,并要求軟件測試方向的學(xué)生要與軟件編碼方向的學(xué)生組合協(xié)作進行,專門負責(zé)相應(yīng)的軟件測試工作。使學(xué)生感受到測試工作的重要性,同時培養(yǎng)其協(xié)作能力。一級和二級實踐課題主要為驗證型,三級實踐課題則為設(shè)計型。
第4學(xué)期為畢業(yè)實訓(xùn),采用實地場景教學(xué),對實際的應(yīng)用項目進行測試,角色模擬,項目驅(qū)動。該階段從測試需求分析開始,一直到測試總結(jié)報告的撰寫,貫穿一個完整項目的開發(fā)和測試整個過程。是對學(xué)生所學(xué)知識的一個總結(jié)和綜合利用的強化。
各實踐環(huán)節(jié)環(huán)環(huán)相扣,循序漸進,由易到難,由單一到綜合,形成一個完整的實踐體系。
集中實踐環(huán)節(jié)安排見表2。
4測試工具的選擇
由于軟件測試工具較多,而兩年制課時太緊張,所以只能學(xué)習(xí)常用測試工具的使用。我們選用的主要自動化測試工具見表3。
通過測試工具的使用,可以加深對測試原理和理論的理解,掌握主流的測試技術(shù)和方法。
5遇到的問題及采取的措施
軟件測試人才作為剛興起的職業(yè)技術(shù)人才,在培養(yǎng)過程中必然會遇到許多問題,相信這些問題也是其他院校在培養(yǎng)軟件測試人才時遇到的共性問題,我們針對這些問題采取了許多有效的措施,不斷改進。
(1) 對口就業(yè)較難
主要原因是我國“重開發(fā),輕測試”的現(xiàn)象過于嚴(yán)重,很多軟件公司沒有專門的測試部門,測試工程師太少,開發(fā)人員兼作測試工作的現(xiàn)象十分普遍。但并不是說我們的培養(yǎng)方向不對,這正說明軟件測試工程師職業(yè)還沒形成規(guī)模,正在興起時期。據(jù)2006年12月國家信產(chǎn)部“2006中國軟件質(zhì)量年會”公布,軟件測試人才為2006年最緊缺的人才之一,在上海、北京等地,軟件測試工程師已成為“地位高,待遇高”的“雙高”人才。企業(yè)規(guī)范化需要規(guī)模和過程,軟件質(zhì)量問題將成為軟件企業(yè)能否繼續(xù)發(fā)展壯大的關(guān)鍵所在,越來越多的企業(yè)管理者意識到產(chǎn)品測試的重要性,所以軟件測試工程師屬于朝陽職業(yè)。
當(dāng)然我們也采取了有效措施,如在前期強化基本的編程訓(xùn)練,使學(xué)生既能搞開發(fā),也能搞測試,提高就業(yè)的靈活性。
(2) 教材少
軟件測試作為一個新的專業(yè)(方向),目前還沒有成體系的軟件測試系列教材,所以在選教材時只能選與教學(xué)大綱內(nèi)容相近的教材或技術(shù)書,或自己編寫講義。但給講師授課帶來許多困難。當(dāng)然要很好地解決該問題需要教育管理部門和眾多同行的共同努力。
(3) 測試項目實例缺乏
由于測試項目都屬于公司內(nèi)部資料,一般很難獲得,不像通用應(yīng)用程序模塊一樣在網(wǎng)上可隨意找到。對此我們組織設(shè)計了一些測試案例,同時從合作的軟件公司獲取了一些實際項目案例,使學(xué)生能在實境中實踐。畢業(yè)實訓(xùn)時大部分學(xué)生則直接到軟件公司進行實地實習(xí)。
(4) 師資力量薄弱
師資是保證教學(xué)質(zhì)量的關(guān)鍵,開始時師資力量較薄弱,我們采取的措施有:挑選有實際項目開發(fā)經(jīng)驗的老師來授課、從IT公司引進專業(yè)測試工程師、將有一定測試工作經(jīng)驗的老師送出去加強培訓(xùn)等。另外還不定期聘請IT公司的測試專家來做專業(yè)講座,拓展學(xué)生的知識面。
6結(jié)束語
經(jīng)過兩屆學(xué)生的培養(yǎng),我們在培養(yǎng)模式和課程體系等方面不斷改進,逐漸完善和規(guī)范化,日臻適合軟件測試職業(yè)技術(shù)人才的培養(yǎng)目標(biāo),學(xué)生質(zhì)量也不斷提高。但作為一種新的技術(shù)人才的興起,軟件測試工程師的培養(yǎng)需要社會環(huán)境的支持,特別是軟件企業(yè)的規(guī)范化和規(guī)?;?,以及業(yè)界對軟件質(zhì)量和測試工作的重視。當(dāng)然,作為學(xué)校,培養(yǎng)社會所需的人才是我們的職責(zé),所以我們必須根據(jù)市場人才需求,不斷進行教學(xué)改革,培養(yǎng)高質(zhì)量的軟件測試人才。