李靜 趙志升
軟件測試技術近年來發(fā)展迅速,已經(jīng)成為與軟件開發(fā)齊頭并進的專業(yè)技術。軟件測試工程師承擔產(chǎn)品功能、性能、可靠性、易用性等全方位測試,保證產(chǎn)品質(zhì)量,滿足用戶需求,保證企業(yè)信譽,是當前IT業(yè)界需求量驟升的熱門人才。目前我國軟件產(chǎn)業(yè)在產(chǎn)品功能和性能測試領域仍然存在著嚴重不足,軟件測試的廣度和深度已成為影響企業(yè)生存與發(fā)展的核心問題。培養(yǎng)大量的具備專業(yè)素養(yǎng)和高層次技能的測試人才,更好地推進我國測試行業(yè)和測試技術的長足發(fā)展,是高等院校必須擔負的職責。
自2000年軟件測試技術在我國興起至今十余年,軟件測試人才隨著軟件行業(yè)的迅猛發(fā)展呈現(xiàn)出供不應求的態(tài)勢。專業(yè)的軟件測試機構(gòu)、測試網(wǎng)站及測試技術培訓機構(gòu)等迅速發(fā)展起來。目前,國內(nèi)許多高校已經(jīng)逐步設有本科階段軟件測試方向的專業(yè)。2011年11月,由教育部主辦的“2011年高等學校軟件測試課程教學論壇”在上海同濟大學召開,對國內(nèi)軟件測試人才的培養(yǎng)及測試領域的全面發(fā)展起到積極推動的作用。
1.社會培訓模式與現(xiàn)狀。當前國內(nèi)業(yè)界一些知名網(wǎng)站主要承擔起測試人才的培養(yǎng)職責,如51testing、達內(nèi)科技、北大青鳥等,為測試行業(yè)輸送了大批動手能力較強的測試人才。針對性很強的短期教育模式是社會培訓的特色。培訓機構(gòu)通常按照助理級、初級、中級和高級測試人員安排培訓內(nèi)容。諸如北大青鳥等規(guī)模較大的培訓機構(gòu)引進歐美的混合教學模式,采用“理論知識+分模塊項目實踐+全真項目實訓+職業(yè)素質(zhì)訓練”的模式,形成一個科學并且實用的培訓體系。培訓機構(gòu)通常設立自己專用的教學平臺,通過網(wǎng)絡遠程授課與集中化分期分班授課方式,在半年到一年的較短時期,培訓出上崗快、操作熟練、針對性強的應用人才,而且很多學員直接通過測試工程師面試,并在后期工作中累積了較深厚的測試經(jīng)驗,成為測試領域的支撐力量。培訓課程主要內(nèi)容涵蓋操作系統(tǒng)管理、網(wǎng)絡應用與Web編程、數(shù)據(jù)庫管理等專業(yè)課程,實訓環(huán)節(jié)應用主流的測試工具,如Winrunner,Loadrunner,Rational Robot等。著重于實用性的項目實踐和開發(fā)是培訓機構(gòu)與高校教育的最大區(qū)別。參加這些培訓班已成為目前大學生崗前培訓的主要途徑。
2.高校專業(yè)教育現(xiàn)狀。軟件測試技術要得到廣泛應用和深入發(fā)展,不能僅依靠社會辦學,高校系統(tǒng)化的專業(yè)教學體系能夠為學生奠定一個更加扎實和科學的專業(yè)基礎,并對測試技術本身的學科化發(fā)展起到不可替代的作用。近三年來,軟件測試技術作為專業(yè)課程逐漸在多所高校開設。目前,多數(shù)高校將“軟件測試技術”作為一門獨立課程設置,交叉課程主要為“軟件工程”。當前一些高校開始申報軟件測試專業(yè),但是軟件測試技術的學科化發(fā)展目前仍受到諸多因素的影響。主要是:(1)缺乏豐富的理論支撐。軟件測試目前仍是發(fā)展中的計算機技術,專業(yè)論著少,適合于高校的教學材料非常有限,并且普遍存在知識結(jié)構(gòu)不合理,教學內(nèi)容不規(guī)范統(tǒng)一,論點少并缺乏依據(jù),實驗指導教材匱乏等問題。另外作為一門獨立學科,與其他學科的交叉與相輔是理論體系的必要部分,測試技術與計算機領域諸多技術關聯(lián),相互結(jié)合教學是當前教改面臨的問題。(2)目前通用性測試平臺仍未完善發(fā)展與普及,在高校中缺乏結(jié)合教學實驗內(nèi)容的通用的實踐平臺,實驗環(huán)境單薄。多數(shù)高校停留在泛泛講授幾個熱門的測試工具的階段,缺乏成熟、實用的測試環(huán)境來實踐完整的測試項目。(3)教學模式上存在嚴重缺陷,專業(yè)培養(yǎng)過程中存在大量的不規(guī)范性和隨意性。主要表現(xiàn)在:實踐課程比例小,測試項目實例缺乏;理論課程知識結(jié)構(gòu)不合理;教學理念和手段陳舊,脫離測試技術發(fā)展的實際與市場應用;不重視對學生從事軟件測試職業(yè)素養(yǎng)的培養(yǎng)。尖端技術的學科化發(fā)展是高等院校的職責,建立一個科學、完整的專業(yè)教學體系是高等教育最為核心的問題。
3.當前推進測試技術應用的其他途徑。除了專業(yè)公司培訓和高校培養(yǎng)外,當前軟件測試行業(yè)的發(fā)展還依賴于多種良好途徑:校企合作、技術沙龍、測試專業(yè)微群、社會信息輻射等。新興技術發(fā)展需要社會傳播產(chǎn)生的廣泛影響力來推動。以MPD(亞太軟件研發(fā)團隊管理)峰會、51testing等領銜的線下技術沙龍活動和巡回演講,聚集了很多高端的測試人才,相互學習交流,積極推進軟件測試行業(yè)的發(fā)展。一些較有影響的網(wǎng)絡微群提供測試技術的交流和分享,如軟件測試、敏捷測試、落地微群等,大量的測試人員和測試工程師提供測試過程管理、測試工作總結(jié)等資料,有很強的借鑒性。
軟件測試行業(yè)的人才匱乏仍然是當今的重要問題。依照行業(yè)需求,軟件測試人員配備應是軟件開發(fā)人員的2倍,而目前我國軟測人員與開發(fā)人員比例卻僅在1︰5至1︰8之間。以高等院校專業(yè)教育為主,實現(xiàn)多種途徑的人才培養(yǎng)是當前軟件測試行業(yè)的當務之急。
構(gòu)建專業(yè)課程體系,需要設置好基礎課與專業(yè)課、理論課與實踐課、必修課與選修課的比例關系,并合理安排與協(xié)調(diào)課程相互間的分工與配合。建設科學完整的軟件測試專業(yè)的課程體系是一個需要多方考證借鑒和不斷探索完善的工作。
1.課程設置。軟件測試是一門技術性很強的專業(yè),對專業(yè)素養(yǎng)要求很高。在測試模式、測試方法上與軟件開發(fā)的模式、開發(fā)平臺直接相關。學生必須對操作系統(tǒng)、軟件的邏輯結(jié)構(gòu)以及物理存儲過程、操作實現(xiàn)方法達到一定深度的了解和掌握,對于硬件的拓撲結(jié)構(gòu)、物理結(jié)構(gòu)要也需要盡可能多地熟知。在軟件測試行業(yè),對優(yōu)秀人才的要求是擁有高敏感能力、高發(fā)散能力、高分析能力,而這些都是以扎實的理論基礎為前提的。建設軟件測試專業(yè)課程體系,應契合技術發(fā)展、學科發(fā)展與從業(yè)需求。經(jīng)過多方考證,下表所述課程囊括的專業(yè)知識對于高層次的自動化軟件測試技術的掌握必不可少。
件測試專業(yè)課程及內(nèi)容社設置表
由于計算機專業(yè)課程的關聯(lián)性很強,一些專業(yè)課程可以相互結(jié)合教學。比如語言類,Shell等可以結(jié)合到UNIX/Linux操作系統(tǒng)課程中,HTML/XML可結(jié)合到.NET以及網(wǎng)絡技術等課程中,PHP融入Web服務器配置等專業(yè)選修課程教學中等,避免專業(yè)內(nèi)容交叉而造成的重復教學現(xiàn)象。在教學過程中,要將軟件測試的思想廣泛地滲透到所有的專業(yè)課程中。如在各類程序設計語言基礎課程中引入單元測試的思想,在軟件工程課程中強調(diào)軟件測試的重要性,增強軟件質(zhì)量管理意識。當前微軟、蘋果、惠普等軟件公司都推出完整的計算機應用與開發(fā)平臺,從硬件、操作系統(tǒng)、集成開發(fā)環(huán)境到用戶應用軟件,基本上提供一條龍服務。以微軟為首的測試框架開發(fā)也日趨成熟。高校需要從專業(yè)建設角度考慮,把握學科發(fā)展方向,汲取眾家之長,將尖端技術和主流應用平臺作為專業(yè)教學內(nèi)容,在有限的學時之內(nèi)統(tǒng)籌安排,讓學生形成一個專業(yè)學習的整體思想,做到知識累積層次清晰、得到一個完整的專業(yè)知識體系。隨著測試技術的快速發(fā)展,課程設置需要不斷更新調(diào)整,既要考慮專業(yè)建設、學科建設,又要考慮市場需求和研發(fā)需求。合理選擇、科學地納入新知識到專業(yè)課程中,是需要不斷探索和改革的無止境的工程。
2.教材選擇。教材選擇應當寬口徑,除了主要教材之外,要為學生提供更多的輔助教材和資料,給學生自主學習的空間和時間。這方面要學習西方高等教育的模式,按照教學計劃和教學內(nèi)容,指導學生分期、分階段大量閱讀與課程相關聯(lián)的專業(yè)資料,并匯總論點和典型實例展開討論,開闊學生的眼界,培養(yǎng)學生獨立思考、邏輯分析能力和探索精神。另外,教材選擇應把握專業(yè)技術的最新發(fā)展,與專業(yè)領域的最新研究成果、社會培訓資料等結(jié)合,及時更新教學內(nèi)容。例如有經(jīng)驗的測試工程師撰寫的技術開發(fā)、測試報告與測試總結(jié)等書籍資料,是完善和填充教材的重要知識源。
3.實驗教學規(guī)劃。(1)實驗教學內(nèi)容,應包括兩部分:測試框架應用和測試項目實踐。前者是指基于實驗室配置的測試框架,選擇針對操作系統(tǒng)或者客戶端軟件、網(wǎng)站等的服務性能測試案例,編寫一些通用的測試腳本,在測試框架上實現(xiàn)完整的測試流程。后者是指選擇實際的軟件測試項目來組織實驗教學內(nèi)容。在測試項目實踐中,需要提供給學生被測試的軟件系統(tǒng)代碼以及軟件開發(fā)綜述,包括需求分析、概要設計書、詳細設計書等文檔,便于學生真實地模擬實際工作中的測試流程。項目實踐中,可將學生分成若干個項目組,分別設置測試經(jīng)理、測試負責人、測試人員等角色,依照測試用例設計、測試任務管理、測試計劃實施、測試過程監(jiān)控、測試日志與測試報告管理環(huán)節(jié),安排角色各司其職,協(xié)同完整測試項目,并對被測軟件系統(tǒng)做出質(zhì)量評審,撰寫格式規(guī)范的質(zhì)檢報告。通過實驗教學,使學生深入理解和掌握常用測試工具,如單元測試工具NUnit等應用,提升學生的項目管理經(jīng)驗和軟件測試技能。(2)實驗教材選擇:實驗教材選擇應參考社會培訓機構(gòu)的項目實訓資料,選擇基于主流測試平臺的項目實例教程,并結(jié)合測試技術的應用發(fā)展現(xiàn)狀和高校測試環(huán)境,廣泛篩選輔助資料,設置測試項目,豐富實驗教材的內(nèi)容。(3)實驗環(huán)境配置:搭建面向高校教研的通用測試環(huán)境。當前各類測試平臺及測試工具不斷推出,種類繁多,但針對性較強,應用性能受到限制,缺乏可被廣泛普及的通用型測試平臺,導致測試過程缺乏通用性和穩(wěn)定性、測試標準設定和測試價值評估無法明確等問題。建立一個通用測試環(huán)境對高校的實驗教學和專業(yè)研究十分必要。通用測試環(huán)境應囊括軟件測試管理平臺、回歸測試平臺和性能測試平臺功能。提供軟件的文檔審查、安裝測試、功能性測試、易用性測試等測試項目,并能提交形式內(nèi)容規(guī)范的測試報告。通用測試環(huán)境搭建需要高校結(jié)合專業(yè)研究項目實施二次開發(fā)。
1.注重面向市場應用的課程體系改革。為了更好地為社會培養(yǎng)應用型人才,高校應以企業(yè)崗位能力需求為標準,不斷進行課程體系改革,構(gòu)建“知識+應用+研究”的混合型課程體系結(jié)構(gòu),為學生從業(yè)后盡快適應工作崗位,擔負起科技職能,并進一步從事測試技術開發(fā)與研究奠定基礎。軟件測試課程體系改革應基于不斷發(fā)展的測試技術以及社會測試崗位的能力需求,從培養(yǎng)學生專業(yè)素養(yǎng)、測試技能、項目分析能力、探索開發(fā)能力等全面素質(zhì)的高度進行必要的整合和重組,把學生應具有的知識、能力、素質(zhì)結(jié)構(gòu)作為課程體系改革的依據(jù),組建模塊化的課程結(jié)構(gòu)。
2.注重面向從業(yè)需求的教學實踐改革。面向從業(yè)需求,加強教學實踐環(huán)節(jié)是高校實驗教學改革的重要內(nèi)容。目前很多高校與自己的合作企業(yè)簽訂培訓合約,建立人才基地,共同開發(fā)軟件和培訓人才、交流人才,是教學結(jié)合實際應用的最佳模式。圍繞著以企業(yè)需求為目標進行實驗教學,使學生在真實的項目流程中對軟件測試的完整過程與實施細節(jié)、管理機制與管理措施進行全面的了解,提高測試能力和積累測試經(jīng)驗,便于學生日后盡快適應實際工作,在專業(yè)技術崗位發(fā)揮人才作用。
3.注重培養(yǎng)學生的職業(yè)素養(yǎng)。高等教育為社會輸送專業(yè)技術人才,不能忽視對人才職業(yè)素養(yǎng)的培養(yǎng)。在教學過程中要把專業(yè)素養(yǎng)、技能訓練和職業(yè)素質(zhì)培養(yǎng)有機結(jié)合起來。在學生實踐與實習過程中,注重培養(yǎng)學生綜合運用所學知識發(fā)現(xiàn)問題、分析問題、解決問題的能力,進而培養(yǎng)學生的技術應用和技術創(chuàng)新能力,并培養(yǎng)學生的團隊合作精神和相互協(xié)作能力,提高將來從事測試行業(yè)的職業(yè)素養(yǎng)。應結(jié)合社會對軟件工程師的崗位需求,設立面向畢業(yè)生的專項系列講座,為學生提供面試技巧培訓、競爭意識培訓、溝通與協(xié)作技巧培訓和就業(yè)指南等,是極具實效且必要的教育內(nèi)容。依照國外標準,軟件測試工程師應與架構(gòu)師處于同一等級。從事測試行業(yè)必須具備扎實的專業(yè)基礎、綜合的個人能力和較高的職業(yè)素養(yǎng),才能真正實現(xiàn)高端的自動化測試。