沈海娟
軟件測試是軟件質(zhì)量保證的關(guān)鍵步驟。測試貫穿整個軟件開發(fā)的過程,是對軟件需求分析、設(shè)計規(guī)范和編碼的最終復(fù)審。軟件測試已成為軟件產(chǎn)業(yè)的新興門類而迅速發(fā)展起來,其專業(yè)機構(gòu)和組織迅速發(fā)展、人才需求旺盛、職業(yè)的價值日益提升,軟件測試人才的培養(yǎng)也應(yīng)該成為高職IT教育的重要內(nèi)容。
1 高職軟件測試課程構(gòu)建背景
1.1 軟件產(chǎn)業(yè)的技術(shù)發(fā)展和需求
隨著軟件技術(shù)的發(fā)展和應(yīng)用的日益廣泛,軟件的功能越來越強,系統(tǒng)的規(guī)模越來越大,內(nèi)部結(jié)構(gòu)愈來愈復(fù)雜,軟件的質(zhì)量和軟件的生產(chǎn)率難以適應(yīng)發(fā)展需求的問題統(tǒng)一起來突出,已成為軟件企業(yè)規(guī)范管理和軟件產(chǎn)業(yè)快速發(fā)展的絆腳石。作為一種有別于實物產(chǎn)品的邏輯產(chǎn)品,軟件產(chǎn)品有其特有的復(fù)雜性,如功能的多樣性、實現(xiàn)方式的多樣性、產(chǎn)品要求難以表達、進度能見度低、運行依賴于環(huán)境等。作為人腦高度智力化的體現(xiàn),軟件存在缺陷無可避免,而且軟件系統(tǒng)規(guī)模擴大,其缺陷生成機率也會加大,發(fā)現(xiàn)的愈遲,故障造成的各類損失也愈大。
軟件質(zhì)量的提高,既依賴于軟件過程工程的一些方法,也依賴于軟件測試。我國軟件開發(fā)長期以來存在“重開發(fā),輕測試”的現(xiàn)象,中小企業(yè)往往研發(fā)測試混雜,沒有專業(yè)的測試人員和體系;缺少測試概念和方法,沒有測試方面的專業(yè)知識;缺少測試流程或不規(guī)范。用戶驗收由于缺乏專業(yè)人才而失之全面甚至流于形式。從行業(yè)發(fā)展來說,急需建立專業(yè)的測試隊伍、流程和規(guī)范,提高產(chǎn)品研發(fā)質(zhì)量。
隨著軟件技術(shù)的發(fā)展,軟件測試的技術(shù)和內(nèi)容也有了很大的發(fā)展。當(dāng)前軟件測試已不僅僅體現(xiàn)為測試的執(zhí)行,而且貫穿軟件生存周期全過程,內(nèi)容包含理論與技術(shù)、標(biāo)準(zhǔn)與規(guī)范、環(huán)境與工具及測試管理等多方面。軟件測試對于軟件質(zhì)量的保證作用正得到軟件行業(yè)以及軟件用戶的重視,軟件測試在軟件工程中的地位得到空前地提高。近年來,一些大型企業(yè)以ISO9000或CMM為導(dǎo)向構(gòu)建質(zhì)量體系,在ISO9000中共有19個要素,其中一個就是“檢驗和試驗”;CMU/SEI的CMM中共有18個過程關(guān)鍵域,其中有一個質(zhì)量保證過程關(guān)鍵域。這其中都體現(xiàn)了軟件測試是軟件開發(fā)中必不可少的環(huán)節(jié)。
1.2軟件測試人才緊缺
根據(jù)國外軟件業(yè)發(fā)展的經(jīng)驗,軟件測試工程師和軟件開發(fā)工程師在企業(yè)的配置比例一般至少應(yīng)該達到1∶1 的水平。但我國軟件產(chǎn)業(yè)在這方面狀況堪憂,很多軟件企業(yè)的測試和開發(fā)人員之比為1∶6,甚至更低。隨著近幾年軟件企業(yè)對軟件測試重要性的不斷認(rèn)識,產(chǎn)生了對軟件測試人才的大量需求。業(yè)界有關(guān)人士稱,未來幾年,國內(nèi)軟件行業(yè)對軟件測試工程師的需求將超過20萬人。
目前在軟件測試人才供需方面存在矛盾。一方面,企業(yè)對軟件測試人才有大量需求,但苦于招不到合適的人;另一方面國內(nèi)的高等教育也忽視了這一領(lǐng)域,高校計算機專業(yè)???、本科、碩士課程中普遍未開設(shè)專門的軟件測試課程,測試僅僅是作為軟件工程課中的一個章節(jié)被提到,因此行業(yè)內(nèi)的軟件測試人才嚴(yán)重短缺。目前企業(yè)在軟件測試人員組成上還存在結(jié)構(gòu)性矛盾。在企業(yè)執(zhí)行軟件測試的技術(shù)人員通常由具備本科以上學(xué)歷的軟件技術(shù)人員來承擔(dān),沒有形成合理的金字塔形結(jié)構(gòu),這一方面加重了企業(yè)人力資源的成本,另一方面也加劇了軟件測試技術(shù)人員的匱乏,而實際上通過恰當(dāng)?shù)呐囵B(yǎng)渠道,高職畢業(yè)生完全可以成為合格的軟件測試執(zhí)行人員。
基于以上背景,軟件測試技術(shù)將成為軟件專業(yè)人才知識結(jié)構(gòu)與技能培養(yǎng)的重要組成,企業(yè)對軟件測試人員的需求也應(yīng)當(dāng)納入高職教育視野之中。
2 高職軟件測試課程目標(biāo)分析
高職教育以職業(yè)能力培養(yǎng)為目標(biāo),通常在完成學(xué)歷教育同時取得相應(yīng)的國家職業(yè)資格證書,國家職業(yè)資格證書或行業(yè)技能證書也是高職教育內(nèi)容的一個重要參照物。而針對軟件測試人員,目前還沒有相應(yīng)的國家資格標(biāo)準(zhǔn),也缺乏相應(yīng)的行業(yè)證書,我們參照國家職業(yè)資格標(biāo)準(zhǔn)的等級劃分原則,將滿足相當(dāng)于國家職業(yè)資格四級(中級)水準(zhǔn)的人員稱為軟件測試員,而將滿足相當(dāng)于國家職業(yè)資格三級(高級)水準(zhǔn)的人員稱為高級軟件測試員,并將這兩者的技能要求根據(jù)具體情況納入到高職教育培養(yǎng)目標(biāo)之中。
軟件測試員應(yīng)了解軟件測試的基本測試概念、測試?yán)碚?,根?jù)測試用例能夠執(zhí)行測試,具備基本的測試心理素質(zhì),能與開發(fā)人員進行有效溝通,掌握一門腳本語言。相當(dāng)于國家職業(yè)資格四級(中級)水準(zhǔn)。
高級軟件測試員是軟件測試工作最基本的力量。他們應(yīng)掌握基本測試概念、測試?yán)碚摗y試標(biāo)準(zhǔn)和測試技術(shù)方法,能獨立設(shè)計測試用例,有效進行缺陷報告和跟蹤,使用常用測試工具,掌握一門腳本語言。能夠完成一般軟件程序的測試任務(wù)。相當(dāng)于國家職業(yè)資格三級(高級)水準(zhǔn)。
據(jù)當(dāng)前軟件行業(yè)相關(guān)統(tǒng)計資料分析,具備測試執(zhí)行能力高級軟件測試員和具有更高技能水準(zhǔn)的軟件測試工程師都是企業(yè)的緊缺人員,從企業(yè)人力資源管理的合理結(jié)構(gòu)來說,具備測試執(zhí)行能力的高級軟件測試員的人數(shù)需求更大,完全可以成為高職軟件測試專業(yè)的技能培養(yǎng)目標(biāo)。教育部的目錄中尚無軟件測試專業(yè),對于眾多的高職院校來說,這是一個空白。因此對于條件成熟的高職院校,可將高級軟件測試員納入到軟件專業(yè)(測試方向)的培養(yǎng)目標(biāo)中。也可將軟件測試員調(diào)整為軟件專業(yè)的培養(yǎng)目標(biāo)之一,提高畢業(yè)生的專業(yè)溝通能力和就業(yè)適應(yīng)面。
3 課程構(gòu)建原則
3.1 以軟件測試工作的邏輯順序構(gòu)建課程
目前的軟件測試教材大都是近兩三年出版的,體例基本上是按照測試?yán)碚摗y試技術(shù)、測試工具、測試實踐、測試管理的順序依次展開。高職的教材如果局限于對相應(yīng)內(nèi)容作的篩選、簡化,是難以適應(yīng)高職學(xué)生的,也不符合職業(yè)技術(shù)教育的規(guī)律。
“職業(yè)教育的教學(xué)內(nèi)容應(yīng)置于由實踐環(huán)境構(gòu)成的,以過程邏輯為中心的行動體系框架之中”,“其內(nèi)容編排應(yīng)以典型職業(yè)活動順序為參照系,故具有串行結(jié)構(gòu)的特點。針對工作過程環(huán)節(jié)的順序性與時序性傳授的課程內(nèi)容,既符合職業(yè)院校學(xué)生與生俱有的心理順序和具象思維的指向,也符合動態(tài)變化的職業(yè)工作過程的實際需要”。
因此,軟件測試課程構(gòu)建首先要按照典型的測試活動順序,分解測試職業(yè)能力技術(shù)要求,按照需求→概要設(shè)計→詳細(xì)設(shè)計的V字型測試模型,由易到難,由表及里,由簡單到復(fù)雜,由單一到綜合,逐步展開課程。按照組成測試技能實踐教學(xué)內(nèi)容及相互間的內(nèi)在聯(lián)系,使數(shù)據(jù)庫、操作系統(tǒng)、自動化測試工具、測試管理工具、配置管理工具等各部分實踐內(nèi)容有所側(cè)重,互相銜接,彼此關(guān)聯(lián),具有連續(xù)性。
3.2 要高度重視過程性知識與經(jīng)驗的獲得
“現(xiàn)代工業(yè)心理學(xué)研究表明,高新技術(shù)工作崗位的工作人員所需要的知識,約一半是介于經(jīng)驗性知識和學(xué)科理論知識之間的一種特殊的知識,即“勞動過程知識”。軟件測試在規(guī)范的軟件生產(chǎn)中屬于軟件過程工程的重要組成,軟件測試課程構(gòu)建必須使學(xué)生能在“完整工作過程”中學(xué)習(xí)。
課程開發(fā)難點在于提供一定規(guī)模的實際軟件產(chǎn)品,發(fā)放多個包含bug的軟件版本,且每個版本都模擬真實測試過程中的情況進行了定制調(diào)整,以保證為學(xué)生創(chuàng)造一個與日常測試工作環(huán)境類似的場景。學(xué)生通過這個項目實訓(xùn),將本階段學(xué)習(xí)過程中涉及的測試技能、測試方法等知識點靈活運用,從而保證將書本中的知識點真正消化掌握,進而達到軟件測試綜合能力的提升。因此缺陷報告庫的規(guī)模是項目實訓(xùn)效果的重要保證之一。
注意引入在國際市場占有率高、有代表性的自動測試工具,如Mercury、IBM的有關(guān)產(chǎn)品,內(nèi)容涵蓋從安裝到使用,并結(jié)合實際操作案例進行分析講解,以此來加深概念與方法理解,達到技術(shù)運用舉一反三,知識傳授與技能培養(yǎng)并重的目的。
有了供實踐訓(xùn)練的軟件產(chǎn)品和測試工具,僅僅能夠找出bug還是不夠的。要在軟件過程工程中,圍繞測試工作的的基本程序,在一個“完整工作過程”中進行工作分析,進而構(gòu)建測試課程,在項目教學(xué)中建立與測試過程的直接關(guān)系。但是,對于大多數(shù)企業(yè)而言,目前測試工作流程遠(yuǎn)未規(guī)范,甚至測試員的職責(zé)也不夠明確。如何進行測試工作分析呢?從形式來看,測試報告是測試人員的工作成果,因此,測試人員的工作分析可以圍繞著“測試報告”來進行,包括“測試報告”的前期工作:測試計劃、測試案例、測試過程、信息收集;“測試報告”中的信息管理:通常使用測試管理工具,對測試中的問題進行收集、流轉(zhuǎn)、分析與統(tǒng)計;不同類型的“測試報告”的撰寫、“測試報告”的管理、測試評估等。這樣的程序,體現(xiàn)了人類實踐活動的“完整模式”。
3.3 在“完整工作過程”中培養(yǎng)方法能力與社會能力
實際上,測試技術(shù)人員的要求不低于開發(fā)人員,但是需要不同于開發(fā)人員的知識結(jié)構(gòu)。在具體細(xì)節(jié)上,可能不必非常深入,但知識面要求更廣,涉及開發(fā)、管理、行業(yè)等多方面。
由于目前國內(nèi)軟件企業(yè)專職測試人員基本上只承擔(dān)系統(tǒng)測試,所以測試課程的重點在系統(tǒng)測試,在單元測試、集成測試方面?zhèn)戎赜谡莆栈靖拍詈蛯y試過程的了解,能在指導(dǎo)下完成單元測試、集成測試。與此同時,要注重從業(yè)務(wù)需求描述與評審到文檔評審的一系列質(zhì)量管理問題。因此要求課程開發(fā)在內(nèi)容上作出取舍,體現(xiàn)整體優(yōu)化。要注意引入有關(guān)質(zhì)量與質(zhì)量體系、測試標(biāo)準(zhǔn)等概念,有利于提高職業(yè)素養(yǎng),甚至也有利于企業(yè)澄清一些對于測試崗位的模糊觀念。針對軟件測試崗位的特定心理素質(zhì)要求,如與程序員的溝通困惑,加強溝通與職業(yè)素質(zhì)培養(yǎng)。
3.4 按照職業(yè)技術(shù)能力發(fā)展階段來設(shè)計典型工作任務(wù)
研究表明,“人的職業(yè)能力的發(fā)展是按照從門外漢到專家的過程進行的”,而不是傳統(tǒng)心理學(xué)認(rèn)為的“從不知道到知道”的過程。因此,按照職業(yè)技術(shù)能力發(fā)展階段來設(shè)計典型工作任務(wù)是高職課程開發(fā)的重要課題。
高職軟件專業(yè)的課程在開發(fā)上一般涉及單機桌面軟件和基于網(wǎng)絡(luò)的分布式應(yīng)用系統(tǒng),從運行環(huán)境來說有Windows平臺和Linux平臺。測試課程也可以相應(yīng)地劃分為兩個階段,分別確定Windows平臺下單機桌面軟件和Linux平臺(或Windows平臺)下的典型測試任務(wù)。根據(jù)教學(xué)對象的軟件專業(yè)知識背景與接受能力,在其他課程中作必要的軟件知識鋪墊。如在第一階段,通過C語言的簡單開發(fā)應(yīng)用、搭建Windows測試環(huán)境、從測試角度敘述Windows開發(fā)環(huán)境及應(yīng)用程序編程接口、Windows內(nèi)部對象及程序運行機制、Windows消息機制、內(nèi)存泄漏和檢測技術(shù)等,了解編碼規(guī)范,理解Windows軟件錯誤產(chǎn)生原因,為有效地設(shè)計Windows應(yīng)用軟件的測試用例和測試腳本做準(zhǔn)備。在對Java開發(fā)、OOP、OOAD技術(shù)、UML設(shè)計工具和基本表示方法、配置和管理數(shù)據(jù)庫系統(tǒng)等作必要鋪墊后開始第二階段的測試課程。因此,在課程開發(fā)時一方面注意知識銜接,內(nèi)容涵蓋全面,另一方面深度適宜,體現(xiàn)理論分析“必須、適度、夠用”的原則。
“職業(yè)教育的系統(tǒng)性,首先是要保證專業(yè)勞動過程這一大系統(tǒng)的完整,而不是教學(xué)所涉及的各學(xué)科子系統(tǒng)的完整性,否則,就會混淆全面和局部的關(guān)系,本末倒置”。也只有通過對完整測試工作過程的把握,才能夠突破對普通高教課程的精簡、篩選,做到理論分析“必須、適度、夠用”。
4結(jié)語
隨著IT技術(shù)應(yīng)用的發(fā)展,產(chǎn)品質(zhì)量控制與質(zhì)量管理正逐漸成為企業(yè)生存與發(fā)展的焦點。從軟件、硬件到系統(tǒng)集成,幾乎每個大中型IT企業(yè)的產(chǎn)品在發(fā)布前都需要大量的質(zhì)量控制、測試和文檔工作,而這些工作必須依靠擁有嫻熟技術(shù)的專業(yè)人才,即測試技術(shù)人員來完成,在這里高職軟件測試課程建設(shè)通過引進工作過程導(dǎo)向的課程開發(fā)方法可以發(fā)揮重要作用。