時間:2022-04-28 11:12:13
導言:作為寫作愛好者,不可錯過為您精心挑選的10篇軟件測試培訓總結(jié),它們將為您的寫作提供全新的視角,我們衷心期待您的閱讀,并希望這些內(nèi)容能為您提供靈感和參考。
該書與國內(nèi)常見的軟件測試實踐教材重點講授某個或某幾個商用軟件測試工具的方法不同,它是以現(xiàn)代IT企業(yè)軟件測試需求為背景,以主流的軟件測試技術(shù)和方法為基礎(chǔ),以當前的軟件測試應用為實例,全面介紹了支持各種軟件測試類型的開源軟件測試工具的主要功能、應用流程及實際案例。特別突出了軟件測試工具在實際測試項目中的使用能夠有效地鞏固所學軟件測試知識,掌握軟件測試方法和技術(shù)以及提高軟件測試實戰(zhàn)能力。
軟件質(zhì)量重于泰山,軟件質(zhì)量是核心競爭力之一。現(xiàn)在和未來軟件企業(yè)的競爭力不僅體現(xiàn)在產(chǎn)品類型的多樣性,產(chǎn)品功能的先進性,更多的體現(xiàn)在產(chǎn)品質(zhì)量的穩(wěn)定性和可靠性。軟件應用的領(lǐng)域不斷深入,設(shè)計的復雜程度逐步增加,開發(fā)的周期不斷縮短,質(zhì)量的要求水漲船高,軟件企業(yè)面臨著巨大挑戰(zhàn)。
用戶對軟件產(chǎn)品質(zhì)量的要求不斷提高,促使軟件企業(yè)把提高軟件質(zhì)量作為增強競爭力的策略。提高軟件質(zhì)量要素在哪里?可以通過采用軟件設(shè)計技術(shù),加強軟件過程管理,實施軟件測試等方法。從提高軟件質(zhì)量的顯著程度、投資回報率和可實施性等方面比較,實施有效的軟件測試,提高軟件測試的效率,是保證軟件質(zhì)量的顯著方法。
軟件測試是通過技術(shù)、流程、工具、人員以及管理手段,檢測軟件文檔、軟件中間產(chǎn)品和最終產(chǎn)品,查找和報告軟件缺陷、錯誤以及隱患的專業(yè)技術(shù)。通過跟蹤缺陷、錯誤及隱患的修正過程,確保軟件產(chǎn)品、中間產(chǎn)品和文檔符合軟件工程過程需求和用戶的最終需求。
軟件測試創(chuàng)新之道
軟件測試在國內(nèi)仍處于起步階段,各種軟件測試的方法、技術(shù)和標準都還在探索階段。國內(nèi)軟件行業(yè)規(guī)模普遍偏小,缺乏大型軟件產(chǎn)品經(jīng)驗,開發(fā)過程不夠規(guī)范,這決定了國內(nèi)軟件質(zhì)量和測試行業(yè),必須根據(jù)國內(nèi)行業(yè)現(xiàn)狀,確定軟件質(zhì)量目標和測試策略方法,而不是照搬照抄國外成熟軟件企業(yè)的測試方法。
觀念創(chuàng)新
提高軟件質(zhì)量的決定因素不是軟件測試技術(shù),而是對軟件質(zhì)量和測試的思想觀念。只有把提高軟件質(zhì)量上升到企業(yè)戰(zhàn)略發(fā)展的高度,才能從根本上解決問題。長期以來,國內(nèi)軟件行業(yè)對軟件質(zhì)量重視程度不足,對于軟件測試的作用認識不夠,造成項目因質(zhì)量問題造成進度推遲甚至失敗。
為了徹底改變這種被動現(xiàn)象,企業(yè)高層管理人員必須從管理思想、資源支持等方面為軟件質(zhì)量和測試部門提供全力支持。軟件項目經(jīng)理必須堅持軟件開發(fā)和軟件測試并行處理并且互相協(xié)調(diào)。軟件開發(fā)人員重視和配合軟件測試人員。
觀念創(chuàng)新不要僅停留在口頭上,而要落實在具體行動上,通過軟件質(zhì)量和測試的有效流程進行推動,通過過程改進進行提高。通過有效組織管理,形成“以重視軟件質(zhì)量為榮,以輕視軟件質(zhì)量為恥”的工作氛圍。
流程創(chuàng)新
測試流程決定軟件質(zhì)量。軟件測試如同軟件開發(fā)一樣,需要經(jīng)過收集測試需求、確定測試策略、設(shè)計測試、執(zhí)行測試、分析測試等流程。軟件測試不是軟件開發(fā)的最后階段,而是貫穿于軟件項目的整個生命周期。
軟件測試流程既不是僵化的生搬硬套,也不是隨機的增添取舍。軟件企業(yè)的質(zhì)量管理部門和項目開發(fā)團隊需要根據(jù)公司技術(shù)、資源現(xiàn)狀,針對項目的特點和客戶需求,從保證軟件質(zhì)量、項目進度和測試成本等方面,進行優(yōu)化設(shè)計并且不斷改進流程管理。對于項目周期長、應用領(lǐng)域廣、對質(zhì)量要求高的軟件,必須制定和遵守嚴格的測試流程。
測試流程創(chuàng)新的目標是在公司內(nèi)部制定和執(zhí)行完善的項目質(zhì)量管理體系。優(yōu)化項目生產(chǎn)方式,跟蹤和度量生產(chǎn)過程和產(chǎn)品,使得生產(chǎn)過程和各階段產(chǎn)品處于可控制和可度量狀態(tài),保證產(chǎn)品符合客戶的功能和進度需求。
技術(shù)創(chuàng)新
軟件測試是一項軟件工程領(lǐng)域的專業(yè)技術(shù),而不是簡單的把軟件測試認為隨便找個人運行幾次軟件,就可以發(fā)現(xiàn)全部的軟件問題。前文已經(jīng)提到,軟件測試需求和測試設(shè)計是決定軟件測試效果的關(guān)鍵因素,因此,加強測試技術(shù)創(chuàng)新的重點是在測試需求和設(shè)計設(shè)計的創(chuàng)新。
在軟件測試技術(shù)創(chuàng)新方面,要避免陷入過度追求自動化測試技術(shù)的誤區(qū)。自動化測試確實可以在某些方面顯著提高測試效率和準確性,但是自動化測試只適合測試軟件的某些方面的質(zhì)量,80%左右的軟件缺陷是靠測試人員手工測試發(fā)現(xiàn)的。
對于某些特別需要自動化測試的軟件特性,需要加強開發(fā)軟件測試工具,而不是全部依賴市場上的現(xiàn)有測試工具。這是因為商業(yè)工具功能繁多,價格昂貴,培訓和學習周期很長,選擇不當就會造成巨大浪費。
管理創(chuàng)新
軟件測試管理的目標是實現(xiàn)軟件質(zhì)量、進度、成本之間的最佳平衡。有效的測試管理需要企業(yè)管理層、軟件開發(fā)團隊、質(zhì)量保證與測試團隊通力合作,采用計劃、組織、領(lǐng)導、控制等手段,組建高效團隊,制定完善的測試流程,做好測試設(shè)計,有效執(zhí)行測試,加強過程跟蹤,從而順利完成質(zhì)量保證和測試任務(wù)。
測試管理創(chuàng)新的核心是軟件質(zhì)量和測試的團隊建設(shè),軟件質(zhì)量和測試是技術(shù)密集型活動,團隊的知識結(jié)構(gòu)、創(chuàng)造力和凝聚力是保證測試流程、測試技術(shù)充分實施的基礎(chǔ)。質(zhì)量和測試團隊建設(shè)的重點是設(shè)置和培養(yǎng)各類技術(shù)和管理人才,進行有效交流,形成良好的評估和促進機制。
測試管理創(chuàng)新的另一個重點是測試管理平臺建設(shè)。包括構(gòu)建測試項目管理的集成系統(tǒng),實現(xiàn)公司產(chǎn)品和項目數(shù)據(jù)信息的有效管理和順序控制,使項目數(shù)據(jù)透明化,技術(shù)知識有效傳承,項目質(zhì)量和進度數(shù)據(jù)化、圖形化??梢愿鶕?jù)公司的現(xiàn)狀,購買軟件測試管理的商業(yè)工具,也可以內(nèi)部開發(fā)軟件測試管理工具。
軟件測試技術(shù)路線圖
如果把軟件測試之道成為測試戰(zhàn)略,要發(fā)揮測試戰(zhàn)略的現(xiàn)實意義,需要把測試戰(zhàn)略轉(zhuǎn)化為測試戰(zhàn)術(shù)。測試的“道”與“術(shù)”的無縫集成,才能顯著地、持續(xù)地、逐步地提高軟件產(chǎn)品質(zhì)量。實施軟件測試的戰(zhàn)術(shù)是一系列過程的組合,涉及測試團隊建設(shè)、流程設(shè)計、測試平臺、測試管理等多個方面。
測試團隊建設(shè)
測試團隊可以是測試部,也可以是測試組。公司規(guī)模決定了測試團隊的大小和組織形式。測試團隊建設(shè)需要執(zhí)行兩個原則:第一,測試團隊必須獨立于開發(fā)團隊,而不是附屬于開發(fā)團隊,實現(xiàn)測試的獨立性和公正性;第二,測試團隊必須具有明確的工作目標,即發(fā)現(xiàn)和報告軟件缺陷,推動和確認缺陷修正,協(xié)助軟件開發(fā)的過程改進,提高軟件整體質(zhì)量。
軟件測試團隊根據(jù)規(guī)模可以設(shè)置多個職位,每個職位具有明確的崗位職責。例如,測試部門經(jīng)理、測試項目經(jīng)理、測試組長、測試架構(gòu)師、高級測試工程師、測試工程師等。對于剛剛成立的測試團隊,可以一個人兼任多個職位,完成多項測試任務(wù)。測試人員的總數(shù)應該與開發(fā)人員相適應,最好在1:1到1:2之間。
流程設(shè)計
測試流程設(shè)計必須與軟件設(shè)計流程相對應,基本測試流程包括測試需求分析、測試計劃設(shè)計、測試用例設(shè)計、測試執(zhí)行、測試評價、測試總結(jié)等。
根據(jù)軟件需求和軟件設(shè)計規(guī)格說明進行測試需求分析,測試需求分析的目的是明確需要測試的對象、特征、范圍和方法,從而制定測試計劃,確定測試策略。
測試計劃設(shè)計是為了有效配置測試過程、人員和工具,充分利用現(xiàn)有的資源,按照項目計劃進度,組織有效的測試。測試計劃設(shè)計的輸出結(jié)果是測試計劃文檔,它是指導軟件測試活動的綱領(lǐng)性文檔。
測試用例設(shè)計是指導具體測試內(nèi)容和方法的關(guān)鍵內(nèi)容,如果需要執(zhí)行自動化測試,還需要依靠測試用例設(shè)計生成對應的測試腳本。測試用例設(shè)計的輸出結(jié)果是不同類型的測試用例,這些測試用例必須以標準、一致的形式設(shè)計、評審、存儲、更新。
測試執(zhí)行是報告軟件缺陷的階段,根據(jù)軟件計劃的進度,分配測試內(nèi)容,構(gòu)建測試環(huán)境,依靠測試用例運行測試程序和程序文檔。測試執(zhí)行的輸出結(jié)果是缺陷報告、測試進度報告等。
測試評價是度量軟件測試執(zhí)行效率和有效性的過程。測試評價的輸入是測試用例的執(zhí)行情況,軟件缺陷的報告數(shù)據(jù)。測試評價的輸出包括測試用例的有效性分析,軟件缺陷的類型和有效性分析等,測試進度和有效性分析等。
測試總結(jié)包括測試過程每天或者每周的過程總結(jié),也包括測試項目結(jié)束后的測試項目總結(jié)。測試總結(jié)的輸出是測試總結(jié)報告,總體評價軟件質(zhì)量,指出測試存在的問題,提出改進的方法和進程,總計測試的有效經(jīng)驗。
測試平臺設(shè)計
測試平臺設(shè)計包括測試技術(shù)平臺設(shè)計和測試管理平臺設(shè)計。測試技術(shù)平臺包括設(shè)計測試環(huán)境,設(shè)計或設(shè)置測試工具等。測試管理平臺設(shè)計包括測試文檔系統(tǒng)設(shè)計、測試版本配置管理、缺陷數(shù)據(jù)庫設(shè)計、測試進度和質(zhì)量分析系統(tǒng)設(shè)計。
測試技術(shù)平臺設(shè)計需要根據(jù)測試計劃的測試內(nèi)容和測試環(huán)境要求,組織軟件、硬件、數(shù)據(jù)庫和網(wǎng)絡(luò)等,這經(jīng)常是一項較為耗時的工作,同時它影響著測試的正確性,必須盡快在測試開始階段完成,最好采用有效的方法把搭建的測試環(huán)境進行備份保存,以便今后可以快速恢復,重復利用。
測試管理平臺設(shè)計,影響測試管理的復雜度,好的測試管理平臺可以使測試管理人員,方便地跟蹤、查詢、分析測試進度,評估測試人員的工作績效,評價測試的總體質(zhì)量。對于測試技術(shù)人員而言,可以方便的尋找測試對象和測試文檔,報告和輸出測試結(jié)果,共享測試數(shù)據(jù),提高測試效率。
測試管理
測試管理關(guān)注人員、過程、產(chǎn)品三要素的互動與變化,測試管理包含項目計劃和組織結(jié)構(gòu)管理,測試階段管理,時間、資源和質(zhì)量管理,文檔管理和團隊管理等。測試部門經(jīng)理、測試項目經(jīng)理和測試組長是測試管理的主要執(zhí)行者,需要與測試團隊成員、開發(fā)人員、公司管理人員密切配合。
中圖分類號:G420 文獻標識碼:A 文章編號:1009-3044(2012)30-7258-02
近幾年來,計算機信息技術(shù)發(fā)展迅速,我國的IT行業(yè)開始向國際化、規(guī)范化邁進。以往只重視軟件開發(fā)而忽視軟件測試的情況正在改變,軟件測試行業(yè)開始迅速發(fā)展。
國外小一些的軟件企業(yè),軟件開發(fā)與測試人員之比基本上是1:1,微軟公司更是達到了1:2,軟測試人員規(guī)模遠超過開發(fā)人員的規(guī)模[1]。盡管一些國內(nèi)大型軟件企業(yè)開始重視軟件人才的合理配置,但有的企業(yè)其比例也就只有10:1。軟件測試工程師鬧人才荒[2],中高級測試員緊缺的現(xiàn)象已十分明顯。
據(jù)統(tǒng)計,國內(nèi)軟件測試工程師的缺口為20萬人左右,這一點從51JOB的招聘信息中可見一斑。近兩年,軟件測試工程師的需求和待遇都達到了歷史新高。
然而與當前軟件測試行業(yè)如火如荼的現(xiàn)狀極不協(xié)調(diào)的是當前軟件測試培訓領(lǐng)域的現(xiàn)狀[3],從事軟件測試工程師培訓的專業(yè)機構(gòu)寥寥無幾,而且價格昂貴。大學里幾乎沒有軟件測試專業(yè),部分院校開設(shè)《軟件測試》這門課程面臨三方面的問題,一是軟件測試教材知識片面。二是內(nèi)容枯燥,學生不感興趣。三是教師教學經(jīng)驗嚴重不足。面對軟件測試人才的社會需求緊迫性,人才培養(yǎng)單位應該擴大軟件測試人才培養(yǎng)規(guī)模,總結(jié)軟件測試知識點,改革教學方法,培養(yǎng)學生興趣,提高培養(yǎng)質(zhì)量。
1 軟件測試課程教學方法探討
針對以上問題,在教學中應采取以下解決方法:
1.1 融合軟件測試知識點,分階段教學
目前,國內(nèi)的軟件測試教材只涉及了部分基本理論知識,不夠全面,介紹的軟件測試工具也相對落后一些。針對這種情況,任課教師首先要融合多本軟件測試書籍內(nèi)容,總結(jié)出軟件測試所涵蓋的知識點,更新軟件測試發(fā)展情況。
其次,根據(jù)學生學習過程分階段教學[4]。第一階段是基礎(chǔ)階段,讓學生掌握軟件測試基礎(chǔ)理論知識和軟件測試核心技術(shù),以及常用測試工具的操作。第二階段是項目綜合實訓提高階段,在掌握基礎(chǔ)理論的前提下,加強綜合測試技術(shù)在項目實訓中的運用,針對不同的開發(fā)階段,撰寫各開發(fā)階段相應的文檔,并制定相應的測試計劃,設(shè)計典型測試用例,使用不同的軟件測試技術(shù)和測試工具,完成不同的測試目標。最后是培養(yǎng)學生自主學習階段,介紹軟件測試最新的技術(shù)與發(fā)展方向,引導學生對基本技術(shù)向縱深方向思考。同時向?qū)W生提供軟件測試方面重要的會議、雜志、論壇、網(wǎng)站,引導學生課下查閱學習資料,鼓勵學生自我學習。
1.2 改革教學方法,采用案例驅(qū)動教學
大部分高職院校學生基礎(chǔ)差、學習積極性主動性不強、自制力不高。在課堂教學活動中,如果繼續(xù)采用傳統(tǒng)教學方法,很難激發(fā)學生學習興趣。應該采用案例教學方法[5],將《手機信息管理系統(tǒng)》、《學生圖書借閱系統(tǒng)》、《學生信息管理系統(tǒng)》等案例資料發(fā)給學生,學生拿到案例后,在教師的引導下,課下先要進行消化,然后查閱各種他認為必要的理論知識,理解知識并思考提出解決問題的方法。課上教師答復學生的問題,并引導學生更深層次的思考。通過這種方法充分調(diào)動學生的學習積極性,提高其學習興趣,使學生既學會理論知識分析又學會用理論知識解決實際工程的問題。
1.3 采用軟件測試項目綜合實訓的實驗教學模式
開設(shè)綜合性的軟件測試課程實驗,按軟件企業(yè)項目管理和開發(fā)模式,進行軟件測試項目實訓[6],培養(yǎng)學生的創(chuàng)新意識與實踐能力。將班內(nèi)學生分成若干個測試小組,每小組成員不超過7人,每組分配不同的軟件項目,如工資管理系統(tǒng)、圖書管理系統(tǒng)、學生信息管理系統(tǒng)、酒店預訂系統(tǒng)等。小組成員模擬與體驗軟件測試工程全過程工作職位和角色,使學生全過程適應工作職位的要求。
各項目小組在測試項目過程中,針對不同的開發(fā)階段,撰寫各開發(fā)階段相應的文檔,并制定相應的測試計劃,設(shè)計典型測試用例,使用不同的軟件測試技術(shù)和測試工具,完成不同的測試目標,并進行回歸測試,以實現(xiàn)軟件測試各單項專業(yè)知識與技能整合運用的目標。在整個測試過程可以體現(xiàn)“學以致用”的思想,實現(xiàn)理論與實踐相結(jié)合。
各項目小組通過演練項目開發(fā),不僅讓同學們切身體會到軟件開發(fā)的整個過程,還讓同學們對軟件開發(fā)中各個角色有充分的了解,同時也更深刻的體會到團隊合作的重要性。
1.4 加強校企合作
堅持“走出去,引進來”的思想,經(jīng)常邀請企事業(yè)、軟件公司里一線軟件測試人員或軟件測試組長和項目經(jīng)理,來學校為學生做定期講座,或定期對教師進行培訓。也可以利用假期或其他時間,安排教師學生進軟件公司,一起跟進項目開發(fā)測試。目前本校已經(jīng)連續(xù)兩年安排教師學生去齊魯軟件園,進公司一起進行項目開發(fā)測試工作。效果不錯,參加實訓的軟件項目綜合實訓的教師軟件開發(fā)測試能力有較大提高,并且學到一些最新最實用的軟件開發(fā)測試技術(shù)。
1.5 改革課程考核方法
軟件測試這門課程兼具理論與操作,目前大部分院??己朔绞脚c理論考試為主,這種考核方式會促使部分學生考前抱佛腳,考前死記硬背,降低學生學習的積極性。除了理論考核之外,還應注重學生綜合知識和應用能力方面的考核。建議課程考核應該包含平時作業(yè)、課堂表現(xiàn)(發(fā)言與討論)、實驗、綜合實訓、理論考試這幾部分。采用這種考核方式,促使學生加強對知識的理解和運用,課堂踴躍發(fā)言,提高學習的主動性和創(chuàng)造性,以及動手操作能力。
1.6 適當加入一些最新的游戲測試
高職院校學生大部分的課余時間都是泡在網(wǎng)吧里玩游戲,有很多同學一有時間就玩手機游戲。學生對最新的游戲內(nèi)容比較感興趣,游戲測試也是軟件測試的一方面,教師可以在課堂教學中加入一些游戲測試內(nèi)容,提高學生的學習興趣。
1.7 采取雙證教育
實行“雙證教育”模式[7],將學歷教育與技能學習無縫對接,學生畢業(yè)后不僅能獲得國家勞動部高級職業(yè)技能認證證書、擁有扎實的操作技能,同時還將獲得國家承認大學學歷證書。雙證教育使學生專業(yè)能力更強、職業(yè)素養(yǎng)更高、綜合素質(zhì)更好、更符合企業(yè)用人標準。
測試工程師有高級測試工程師、中級測試工程師、初級測試工程師。根據(jù)高職學生的能力特點,應該把高職學生定位在初級和準中級測試工程師,具有一定的設(shè)計方案的編寫能力,能利用測試工具完成一定的測試任務(wù),并能夠執(zhí)行功能測試。
2 總結(jié)
通過在本校近五六年的軟件測試教學實踐,發(fā)現(xiàn)軟件測試教學方法需要不斷改進,融合軟件測試知識點分階段教學,采用案例驅(qū)動和雙證教育模式,加強校企合作和教學實踐這些措施能較好地提高學生學習興趣和動手操作能力,教學質(zhì)量也有較大提高。軟件測試人才培養(yǎng)剛剛起步,很多工作處于摸索階段,需要學校、教師和學生的共同努力,為社會培養(yǎng)出大批合格的軟件測試人才。
參考文獻:
[1]程茂,溫靜,吳玉潔.《軟件測試》課程的教學研究[J].河北師范大學學報/教育科學版,2010(4):117-120.
[2] .
[3]趙斌.軟件測試技術(shù)經(jīng)典教程[M].北京:科學出版社,2011(3).
[4]葛漢強.高職《軟件測試》課程分層教學之實踐[J].職業(yè)教育研究,2011(8):105-107.
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)17-0226-03
Abstract: Modeling software testing can greatly improve the quality and efficiency of software testing, and CMMI and other popular models, there is no detailed description of the process for software testing, software testing is no level of maturity of the evaluation and measurement, There is a lack of software testing process improvement goals and guidance. Based on this situation, this article Test Maturity Model(TMM) has been proposed by Dr. Burnstein formal description given maturity level structure TMM model elaborated five test level of maturity goals and sub-goals,, TMM and implementation methods are described, as well as the author summarizes and Reflection on the TMM model.
Key words: software testing; Test Maturity Model(TMM); modeling framework; maturity level structure
1 背景
隨著信息時代的快速發(fā)展,軟件產(chǎn)業(yè)也逐步進入高速增長態(tài)勢,軟件過程的研究已經(jīng)發(fā)展為軟件測試行業(yè)的基礎(chǔ)工作之一。要加強軟件組織的開發(fā)能力、提高軟件產(chǎn)品的質(zhì)量,就必須不斷地對軟件過程的能力進行改進。因此,軟件能力成熟度模型即CMM在1987年美國Carnegie Mellon 大學軟件工程研究所應運而生CMM逐漸成為了評估軟件開發(fā)過程的管理以及工程能力的標準。目前,已經(jīng)形成了以個體軟件過程、團隊軟件過程以及過程成熟度集成模型CMMI等為主導的軟件開發(fā)過程改進體系[1]。但是,傳統(tǒng)CMM的著眼點在于軟件組織的開發(fā)過程和軟件過程能力,并沒有關(guān)于軟件測試成熟度的概念,也沒有研究改進軟件測試過程的方法,因此,隨著軟件測試在軟件生命周期中的地位越來越突出,軟件測試成熟度得到了業(yè)內(nèi)人士的高度重視,并且在傳統(tǒng)的軟件過程成熟度基礎(chǔ)上繼續(xù)進行模型改進,其中,比較具有代表性的是由Ilene Burnstein博士等人提出的軟件測試成熟度模型(TMM),該模型是對CMMI模型的補充,是對CMMI模型的存在問題的修正,同時也對改進軟件測試過程及提高軟件測試能力做出了思想和方法上的指導。
2 TMM模型框架簡介
TMM模型為了改進軟件測試與評價過程,對CMM模型進行了較大程度的改進與補充。TMM模型在CMM模型的原有基礎(chǔ)將軟件測試過程劃分為初始級、定義級、集成級、管理與度量級和優(yōu)化級5個等級[2]`。處于初始級的軟件測試,是一個混亂的過程,測試過程在編碼之后,與調(diào)試未加區(qū)分;階段定義級的測試過程,很大程度上凸顯出測試過程與調(diào)試的區(qū)分,但是其被定義為編碼之后進行的的獨立階段,顯然不符合軟件工程的要求;前兩個階段的存在的問題在集成級得到改善,集成級將軟件測試融入到整個軟件生命周期中,從需求分析開始,測試人員將伴隨這個開發(fā)過程制定相應的測試計劃、測試目標等;從管理和度量級開始,整個測試過程就已經(jīng)由定性描述進入可度量化的過程。在此過程中,除進行測試之外,還有對軟件生命周期各個環(huán)節(jié)的管理與審查;優(yōu)化級是以前四級為基礎(chǔ),優(yōu)化并預防缺陷、質(zhì)量控制、監(jiān)控測試成本與效率,為整個測試過程指引方向。
而每個等級(除等級1)都有自己的成熟度目標、子目標以及活動、任務(wù)和職責。TMM的模型框架如圖1所示。
由圖1可以得出,若要達到某成熟度等級,所必須實現(xiàn)的成熟度目標,即軟件測試的改進目標。而成熟度子目標的定義更為具體,定義了該等級的范圍、界限和需要完成的事項。通過活動和任務(wù)來實現(xiàn)子目標,任務(wù)和活動涉及實施和組織調(diào)整問題。活動和任務(wù)則定義了為了軟件組織達到某一等級,進行軟件測試改進的行動計劃。三組人員各司其職,完成相關(guān)任務(wù)與活動,達到成熟度子目標[3]。
3 TMM的等級結(jié)構(gòu)
TMM將測試的成熟度分為5個等級,每一級別都是一個測試過程,都有自己的過程域,軟件組織要想達到更高的級別,就必須先滿足前一個級別的過程域。同時也必須完成所有的被定義的目標。這些目標的定義,需要通過活動、任務(wù)和責任進行標記,在進行過程中,需要根據(jù)相關(guān)人員的特殊需求來不斷調(diào)整[1]。如圖2所示:
在TMM等級描述中,詳細闡述了測試過程的特點以及為達到規(guī)定級別所需要完成的目標和子目標。
1)第一等級為初始級。軟件測試的終極目標是為了查找程序中的錯誤,在這一階段,由于相應的編碼任務(wù)還沒有完成,缺乏一定的測試資源,因此軟件測試沒有相對清晰的目標,測試任務(wù)也可有可無。
2)第二等級為定義級。在這一階段,軟件測試的目標是為了驗證軟件是否符合相應的需求,因此會啟動一些相應的軟件測試計劃過程,并對采用的軟件測試方法制度化,在定義級,由于在進行軟件測試之前要把所有的編碼工作完成,導致的結(jié)果就是在需求分析階段與設(shè)計階段產(chǎn)生的一些軟件缺陷會一直遺留到編碼階段才能被發(fā)現(xiàn)。
3)第三等級是集成級。在這一階段,會有相應的、相對獨立的測試部門出現(xiàn),測試工作不需要在完成編碼后才能進行,而是在滿足用戶需求的目標上進行測試工作。并集成到軟件生命周期的各個階段中。在第三等級,需組建一個軟件測試組織用于負責測試規(guī)劃、測試缺陷跟蹤等測試技術(shù)工作。同時在測試過程中需要有相應的測試工具對測試工作進行輔助。同時,軟件測試小組成員要和質(zhì)量保證專家一起,與客戶進行溝通,從軟件需求分析階段制定軟件測試計劃,并根據(jù)需求分析表格制定相應的軟件測試目標。該階段的缺點為沒有行之有效的評審制度以及沒有一套質(zhì)量控制與度量的標準等。
4)第四等級為管理與度量級。在這一階段,軟件測試是可以進行度量與質(zhì)量控制的過程,應保證進行可靠性、可用性與可維護性等方面的測試。軟件測試活動既包括程序語言,還把評審與審查作為軟件測試活動的補充,用于發(fā)現(xiàn)及消除軟件產(chǎn)品缺陷。為了測試過程的完備性,建立了缺陷管理系統(tǒng)并將缺陷的等級進行劃分。同時測試人員采用數(shù)據(jù)庫記錄和管理相應的測試數(shù)據(jù)以及測試用例。但在管理與度量級,由于沒有相應的缺陷預防系統(tǒng),不能自動的進行收集與分析軟件測試中生成的相應數(shù)據(jù)。
5)第五等級為優(yōu)化級。在這一階段,改進了第四等級的缺陷,已經(jīng)具有相應的缺陷預防能力和軟件質(zhì)量控制能力,能夠保證之前發(fā)現(xiàn)的缺陷不會在后期繼續(xù)產(chǎn)生。在這一級,自動化測試工具是整個測試過程的重要組成部分??梢赃M行自動的收集與分析測試中產(chǎn)生的數(shù)據(jù)。并建立了測試流程與測試的規(guī)章制度。由于優(yōu)化級的測試活動是可重復性、已定義、已管理和已測量,所以軟件組織可以對測試過程進行不斷的優(yōu)化改進和調(diào)整。
根據(jù)上面描述的TMM的5個等級,給出相應的成熟度等級目標和子目標,如表1所示。
② 為軟件測試活動定義相應的目標、任務(wù)、活動和工具等\&
啟動測試計劃過程\&① 制定軟件測試計劃模版并進行任務(wù)分配
② 獲取用戶需求
③ 準備軟件測試活動所需的工具\&將基本的測試技術(shù)和方法制度化\&① 在軟件組織中實施基本的測試技術(shù)與方法,例如黑盒測試、白盒測試策略等。
② 制定相應的管理制度,明確規(guī)定基本的測試技術(shù)和方法何時、怎樣實施,以及基本的測試工具等。\&集成級\&
建立軟件測試組織\&① 選擇和培訓相關(guān)人員成立測試小組
② 為每個測試小組成員進行職責分配
③ 與客戶進行討論,獲取用戶需求\&
制定技術(shù)培訓計劃\&① 為測試人員制定技術(shù)培訓計劃
② 明確具體的培訓內(nèi)容,例如:測試方法、測試標準、測試技術(shù)與工具、審查與評審過程等\&將軟件測試集成到軟件生命周期中\&① 將軟件測試計劃階段劃分為和生命周期各階段相關(guān)聯(lián)的各個子階段
② 將測試策劃集成到生命周期的各階段
③ 打通渠道,提高用戶參與度\&控制與監(jiān)督測試過程\&① 監(jiān)督和控制過程可視化,為測試過程提供依據(jù)
② 隨時與測試策劃對比,及時調(diào)整測試進展
③ 定義和配置測試相關(guān)項\&
管理和測量級\&
建立組織范圍內(nèi)的評審程序\&① 擬定正式的評審程序
② 將評審定義為測試活動,在生命周期中實施通行評審
③ 識別、記錄、清除軟件產(chǎn)品和測試工作的缺陷\&
擬制測試度量程序\&① 擬定一套關(guān)于測試過程質(zhì)量與能力的度量程序
② 準確識別測試數(shù)據(jù),對測試數(shù)據(jù)進行詳細處理分析
③ 根據(jù)測試結(jié)果,不斷修正測試計劃\&
軟件質(zhì)量評價\&① 根據(jù)測試過程充分性,定義可度量的質(zhì)量屬性和目標
② 測試過程完成后,需要保證軟件產(chǎn)品可靠、可用、穩(wěn)定、安全\&
優(yōu)化級\&
應用過程數(shù)據(jù)預防缺陷\&① 成立預防缺陷相關(guān)小組
② 記錄缺陷、分析缺陷,找出缺陷根源
③ 缺陷預防組的相關(guān)成員與其他組的成員相互配合制定缺陷預防計劃,防止已被識別的缺陷再次產(chǎn)生\&
實施質(zhì)量控制度量\&① 根據(jù)所定義質(zhì)量屬性,進行測試
② 通過統(tǒng)計抽樣、等級度量促進測試過程
③ 融入開發(fā)團隊,減少缺陷,提高軟件質(zhì)量
④ 運用模型工具,加強測試充分性\&
優(yōu)化測試過程\&① 根據(jù)測試進展,量化測試過程,對測試過程不斷優(yōu)化調(diào)整
② 建立組織結(jié)構(gòu)標準,支撐成熟度的不斷提高\&]
4 TMM實施
為了指導軟件工程人員進行正確的軟件過程評估,采用TMM等級提供支持。在軟件組織中實施TMM時,可遵循以下步驟:
1)準備活動
這個步驟中要建立評估小組,選擇與培訓小組成員,確定組長,選擇測評項目,并制定評估計劃,準備參加評估的組織部門。根據(jù)客戶需求制定評估問題表。
2)實施評估
評估過程中,評估小組成員通過和被評估人員進行溝通,獲取相關(guān)的評估信息,通過查詢相關(guān)文檔與調(diào)查表進行信息補充。為保證信息的準確性與客觀性,可將信息記入問題表。評估人員根據(jù)記錄信息,劃分軟件組織的TMM等級。
3)分析評估結(jié)果
評估人員根據(jù)評估輸出的TMM等級及相應的記錄分析當前軟件組織存在的缺陷,并指出該軟件組織需要提高的領(lǐng)域以及要達到的下一個目標的優(yōu)先級。量化的改進目標,制定出相應的行動計劃。
4)活動計劃
為了使軟件組織能夠達到TMM的高等級,評估小組應根據(jù)高優(yōu)先級的改進目標開發(fā)活動計劃,通過該計劃描述相應的活動和資源,并改進現(xiàn)有的實踐內(nèi)容和進度。
5 結(jié)束語
軟件產(chǎn)品的開發(fā)過程是一項長期的工程,需要不斷研究和實踐。本文針對傳統(tǒng)軟件成熟度模型的不足,將TMM模型進行了詳細的闡述。TMM模型補充了CMMI模型的不足,能夠充分的覆蓋軟件測試的一系列問題,并且軟件組織可以根據(jù)TMM的要求,評估當前軟件測試能力的狀態(tài),并對測試目標和測試過程進行不斷修正,極大提高軟件測試人員的工作效率。利用TMM模型不斷優(yōu)化測試過程和目標,將會給軟件開發(fā)和測試組織帶來質(zhì)量和經(jīng)濟上的雙豐收。
參考文獻:
[1] 朱少民. 軟件測試方法和技術(shù)[M]. 北京: 清華大學出版社, 2010: 71-74.
北京工業(yè)大學軟件學院蔡建平教授長期從事軟件工程、軟件測試及軟件質(zhì)量保證的研究,在多年講授軟件測試課程經(jīng)驗和體會的基礎(chǔ)上,對軟件測試課程教學內(nèi)的知識點進行調(diào)整、補充和完善等方面的改革,針對軟件質(zhì)量評價和軟件高可靠性的要求,針對國內(nèi)軟件研發(fā)和測試外包的本地化要求,以及針對軟件測試用于各種應用領(lǐng)域的要求選擇授課的知識點,并取得了較好的效果。
目前國內(nèi)關(guān)于軟件測試的書籍較多,其中很多書籍是翻譯的、為培訓用的或介紹軟件測試技術(shù)和方法,作為教材滿足各類測試人員的學習還有一定的距離。本書是在作者長達二十幾年軟件工程、軟件測試和軟件質(zhì)量保證實踐經(jīng)驗和教學經(jīng)驗的基礎(chǔ)上,借鑒前人成果,參考當前軟件測試方法和技術(shù)應用實踐案例進行編寫的。蔡建平教授編寫的《軟件測試大學教程》一書,以現(xiàn)代軟件測試需求為背景,以現(xiàn)代軟件測試技術(shù)和方法為基礎(chǔ),以當前軟件測試通常應用為典型實例,從軟件危機及軟件缺陷開始,全面介紹軟件測試的基本概念,軟件測試的技術(shù)、方法和工具應用,以及軟件測試在當前主流應用中的具體開展和實施。
其特點如下:
(1) 內(nèi)容全面。突出全生命周期軟件測試概念、軟件質(zhì)量分析手段、現(xiàn)代軟件測試技術(shù)、主流測試工具應用以及典型應用測試方法等,幫助學生了解和掌握現(xiàn)代軟件測試的各種原理、方法和技術(shù),并能夠選擇合適的軟件測試工具進行相關(guān)測試。為培養(yǎng)學生今后成為高素質(zhì)、專業(yè)化的軟件測試人才打下基礎(chǔ)。
(2) 針對性強。針對軟件開發(fā)方法和技術(shù)的發(fā)展變化,針對我國軟件外包服務(wù)的蓬勃興起,針對我國國防工業(yè)如航空、航天、船舶、電子、通訊等大量重要軟件或關(guān)鍵軟件的實際應用情況和測試需求,特別是對軟件高可靠性的要求,選擇教材的知識點。
(3) 重實踐性。該書對支撐現(xiàn)代軟件測試技術(shù)應用的測試工具進行了全面地介紹,特別是對開源軟件測試工具的介紹,這對高校開設(shè)軟件測試實驗課程是非常有意義的。在教材中給出了軟件測試在幾個典型應用領(lǐng)域具體實施的要點和注意事項,這對缺乏實踐經(jīng)驗的培養(yǎng)對象而言具有極好的引領(lǐng)作用,對開闊軟件測試人員的眼界、思路和具體實踐有很大幫助。
中圖分類號:G642.4文獻標識碼:A
目前我國軟件測試人才嚴重匱乏,人才缺口達到30萬,造成這一結(jié)果的主要原因是國內(nèi)軟件測試人才教育相對滯后。但實際上,很多學習了軟件測試課程的學生卻找不到工作,業(yè)內(nèi)專家稱之為人才的“結(jié)構(gòu)性過?!保?],因此,滯后的原因不僅僅是教育機構(gòu)開設(shè)軟件測試課程時間的滯后,主要是教學內(nèi)容和教學效果與實際需要的差距產(chǎn)生的滯后。隨著外包開發(fā)行業(yè)的快速發(fā)展,對人才在代碼和文檔方面的規(guī)范性、技能和工具的熟練程度要求越來越高,而這些要求正是軟件測試人才教育的薄弱環(huán)節(jié)。如何順應市場需求,培養(yǎng)出企業(yè)所需的軟件測試人員,成為《軟件測試》課程改革的目標。
一、《軟件測試》課程存在的問題
隨著軟件測試人員市場需求的不斷增加,各大高校、職業(yè)技術(shù)學校及IT培訓機構(gòu)紛紛開設(shè)了《軟件測試》課程,各種軟件測試的教材也相繼出版發(fā)行,但教材中技術(shù)實現(xiàn)的內(nèi)容較多,對常用的軟件測試文檔書寫介紹很少,對自動化測試工具基本也是簡略介紹其功能。在實驗教材方面,目前還沒有配套的軟件測試實驗教材問世,在教學過程中基本是任課教師自行設(shè)計實驗教學內(nèi)容。對于實踐性較強的課程,如果沒有大量的項目開發(fā)經(jīng)驗和完整的系統(tǒng)案例作為支撐,就難于用恰當?shù)膶嵗齺斫忉屜嚓P(guān)理論,更難設(shè)計出實用有效的實驗內(nèi)容,導致在校學習的知識與實際工作脫節(jié)的現(xiàn)象。
二、《軟件測試》課程采用案例教學法的必要性
案例教學法最早起源于美國哈佛大學商學院,自20世紀20年代以來一直被廣泛地應用于商業(yè)、法律、醫(yī)學領(lǐng)域培訓中,隨著案例教學法的推廣、成熟,案例教學法受到其他專業(yè)領(lǐng)域的重視。案例教學法是根據(jù)教學目的和培養(yǎng)目標的要求,教師在教學過程中,以案例為基本素材,把學生帶入到特定的事件情景中進行分析問題和解決問題,培養(yǎng)學生運用理論知識并形成技能技巧的一種教學方法。與知識為導向的講授式課堂教學模式相比,案例教學法更注重學生知識的運用能力,以學生實際能力的提高為最終教學目的。
“軟件測試”課程的教學目的是讓學生深刻理解軟件測試思想和基本理論,熟悉多種軟件的測試方法、相關(guān)技術(shù)和系統(tǒng)的軟件測試過程,學會編寫測試規(guī)格說明書,測試報告,并學會使用幾種流行的自動化測試工具,從工程化角度提高和培養(yǎng)學生從事大型軟件的測試技術(shù)和能力。因此在教學過程中,必須引用系統(tǒng)的工程化的案例作為理論課教學載體和實驗課教學的實施對象,這樣才能幫助學生深刻理解基本理論,并通過實驗掌握測試的技能和技巧。
三、案例教學法在《軟件測試》課程中的實施
本課程的培養(yǎng)目標是根據(jù)市場需求,結(jié)合實際工作中企業(yè)對“新人”的培養(yǎng)模式及實際工作的方式方法,通過若干系統(tǒng)案例對學生進行測試技能的訓練,讓學生以“經(jīng)驗者”的身份進入人才市場參與競爭。
(一)根據(jù)學生特點規(guī)劃教學內(nèi)容
由于學生缺乏整體項目開發(fā)經(jīng)驗,我們主要針對初、中級測試工程師設(shè)計教學內(nèi)容。而針對高級測試工程師和測試管理者擔當?shù)墓ぷ?,比如測試計劃的制作、各種設(shè)計的驗證、測試評估和總結(jié),需要經(jīng)歷初中級測試工程師的實戰(zhàn),積累大量經(jīng)驗才能承擔。這一部分內(nèi)容,我們只在理論教學中簡單講述,不在實驗教學中安排實驗內(nèi)容。
(二)根據(jù)教學階段選擇案例素材
根據(jù)教學進度和學生對知識的掌握程度,采用由簡到繁、循序漸進的方式選擇如下三個案例進行教學:
(1)選擇經(jīng)典案例設(shè)計的“被測軟件系統(tǒng)”作為軟件測試基本技術(shù)的案例進行理論和實踐教學。
(2)選擇以C/S模式實現(xiàn)的“小區(qū)物業(yè)管理系統(tǒng)”作為軟件測試過程、測試用例設(shè)計、測試文檔書寫相關(guān)內(nèi)容的案例。
(3)選擇以B/S模式實現(xiàn)的“圖書館管理系統(tǒng)”作為面向?qū)ο鬁y試、網(wǎng)站測試的案例。
在理論課教學中主要以“被測軟件系統(tǒng)”、“小區(qū)物業(yè)管理系統(tǒng)”作為案例進行理論知識的講解,與網(wǎng)站測試和面向?qū)ο鬁y試相關(guān)的內(nèi)容以“圖書館管理系統(tǒng)”作為案例進行講解。這樣,進行完理論教學,學生對案例系統(tǒng)的功能基本了解。在實驗教學中,我們提供給學生在測試中需要的代碼、開發(fā)規(guī)范、需求分析、系統(tǒng)設(shè)計書、概要設(shè)計書、詳細設(shè)計書,具備了以上資料,便可模擬實際工作模式,將理論教學中講述的測試技術(shù)和測試文檔的書寫方法運用到案例的測試實驗中。
(三)模擬實際項目完善案例系統(tǒng)
現(xiàn)有的軟件測試教材,通常會在最后章節(jié)給出一個案例,對該案例利用教材上介紹的各種測試方法針對性地進行測試用例設(shè)計。但是,教材對案例的描述基本只限于項目背景介紹、子系統(tǒng)介紹、子系統(tǒng)性能及可用性要求方面的內(nèi)容,基本沒有提供可運行案例系統(tǒng)的代碼,同時也缺乏必要的供測試使用的文檔。大量的案例參考書中,有可運行的系統(tǒng)代碼卻沒有測試必須的較完備的文檔。實際工作中,軟件測試過程與軟件設(shè)計周期有相互對應的關(guān)系,軟件測試過程中的單元測試、集成測試、系統(tǒng)測試、驗收測試分別對應軟件設(shè)計中的詳細設(shè)計、概要設(shè)計、系統(tǒng)設(shè)計和需求分析。因此,要完成一個系統(tǒng)的較完整的測試過程,不僅要提供被測系統(tǒng)的完整代碼及數(shù)據(jù),還必須提供全套的設(shè)計文檔。
針對以上三個案例系統(tǒng),我們首先補充完成需求分析、系統(tǒng)設(shè)計書、部分模塊(單元)的概要設(shè)計和詳細設(shè)計書,力爭陸續(xù)完成整個系統(tǒng)的完整設(shè)計資料,以供學生測試使用。
(四)針對測試技能訓練設(shè)計缺陷案例
為了檢驗學生的測試技能,在不同的實驗中,人為地在案例中設(shè)計針對性的缺陷,鍛煉學生檢測故障的能力、故障描述能力以及跟蹤定位缺陷的能力。在測試技術(shù)實驗中我們?nèi)藶橹圃旄鞣N缺陷,讓學生通過白盒及黑盒測試技術(shù)去發(fā)現(xiàn)缺陷,并學會根據(jù)不同的軟件設(shè)計選擇最佳的測試技術(shù)進行有效、高效的測試。在軟件測試過程實驗中,人為拆散系統(tǒng),讓學生自行設(shè)計樁模塊及驅(qū)動模塊,搭建單元測試環(huán)境;提供給學生零散的單元模塊及概要設(shè)計書,讓學生利用集成測試策略實施集成測試。
(五)選擇適當測試工具進行案例測試
教材上簡略介紹了十幾種測試工具的功能,但實際使用方法缺乏資料。在教學中,我們選擇代表性的CodeReview、Nunit、QTP三種工具進行代碼檢查、面向?qū)ο鬁y試、錄制測試過程及編寫測試腳本,幫助學生掌握常用工具使用方法。
在教學過程中,引導學生分析測試工具的實現(xiàn)原理,啟發(fā)學生從不同的側(cè)重點去思考測試自動化工具的設(shè)計及實現(xiàn)方法。
四、后續(xù)教學改革構(gòu)想
(一)教學進度的調(diào)整
計算機課程的實驗教學,通常和理論課同步或遲后幾周進行。對于“軟件測試”這門課程的實驗教學,如果與理論課同步進行,前期的實驗內(nèi)容安排就缺乏理論支持,如果比理論課遲后幾次,即在講述白盒測試和黑盒測試后開始實驗教學,就可以將各種測試方法融入實驗中進行。但由于軟件測試過程及技術(shù)、測試文檔書寫相關(guān)內(nèi)容還未講述,實驗內(nèi)容的安排顯得孤立,沒有整體感。為了讓學生體驗軟件測試在實際工作環(huán)境中的實施過程,將理論課講述的知識有機地融入到完整的案例中進行實驗,就需要系統(tǒng)地學習完理論知識后,再結(jié)合實際案例系統(tǒng)地進行實驗。
以后的教學中,擬打破傳統(tǒng)的周4學時,即理論2+實驗2的排課模式,將一個學期分為理論上半學期,實驗下半學期,上半學期周4學時用于結(jié)合案例進行理論教學,下半學期周4學時針對理論課講述的案例進行實驗教學,以便學生能夠模擬實際工作環(huán)境進行系統(tǒng)的軟件測試實驗。
(二)相關(guān)課程連貫教學
軟件測試課程是伴隨軟件行業(yè)的迅猛發(fā)展而誕生的,在此之前,軟件測試隸屬于軟件工程課程進行教學。由于軟件測試伴隨軟件的整個生命周期,因此,軟件測試課程的理論教學和實驗教學,必須貫穿于軟件開發(fā)的全過程。在以后的教學中,對軟件工程專業(yè)的學生,擬采用課程連貫教學法,通過編程語言課程、軟件工程、編程實訓課程、軟件測試課程相結(jié)合的方式,采用同案例、跨學期的方法進行連貫教學,即在某一編程語言教學中引入案例,進行案例片段程序的講解,在軟件工程課程中進行系統(tǒng)設(shè)計,在實訓課程中實現(xiàn)案例,在軟件測試課程中進行測試的一系列訓練。這樣,便于學生將所學知識關(guān)聯(lián)起來,了解課程之間的聯(lián)系和軟件項目開發(fā)的流程,讓學生通過兩至三學期的時間去消化幾門課程的同時,體會一個項目開發(fā)的全過程。
五、結(jié)束語
各高校、職業(yè)技術(shù)學校和職業(yè)培訓機構(gòu)都相繼開設(shè)了軟件測試課程,在這門課的教學過程中,教師們不斷摸索新的教學方法和教學手段,取得了一定的成果。但由于計算機行業(yè)日新月異的發(fā)展,也給軟件的測試帶來了挑戰(zhàn)。因此,在教學過程中,教師必須關(guān)注行業(yè)發(fā)展的前沿,提出軟件測試過程中亟待解決的問題,啟發(fā)學生去思考并尋求解決的方法。同時,教師應盡可能參與實際項目開發(fā),為理論及實驗教學積累實用真實的案例資源。
參考文獻
[1]劉德寶.軟件測試工程師培訓教材[M] .北京:科學出版社,2009.
中圖分類號: TP311.1 文獻標識碼:A 文章編號:1009-3044(2013)24-5462-02
軟件測試是軟件開發(fā)中的一個重要環(huán)節(jié),國內(nèi)軟件開發(fā)與測試人員的比例嚴重失調(diào),市場對軟件測試人員的需求量很大。同時,軟件測試作為新興行業(yè),發(fā)展前景好、空間大,薪酬待遇好;工作地點以北京、上海、廣州等IT產(chǎn)業(yè)發(fā)達、環(huán)境好的一線城市為主。目前市場上急缺的就是初、中級軟件測試工程師,這正是高職院校的人才培養(yǎng)目標。
蘭州石化職業(yè)技術(shù)學院于2011年開辦軟件測試專業(yè),目前第一批畢業(yè)生已經(jīng)走向社會,進行頂崗實習,接受社會的檢驗。在專業(yè)建設(shè)的不斷實踐和探索中,如何做好、做強軟件測試專業(yè)是我們一直思考的問題。
1 專業(yè)建設(shè)依托區(qū)域經(jīng)濟發(fā)展
高職院校每個專業(yè)的建設(shè)都應充分依托區(qū)域經(jīng)濟發(fā)展,體現(xiàn)行業(yè)特色。甘肅省“十二五”規(guī)劃明確指出:“十二五”期間,將以蘭州、天水、平?jīng)鰹楹诵模奂瘍?yōu)勢資源,進一步擴大集成電路、新型元器件、軟件等電子信息產(chǎn)品和產(chǎn)業(yè)規(guī)模,建設(shè)天水電子科技產(chǎn)業(yè)園、蘭州軟件產(chǎn)業(yè)園、西北云計算中心等園區(qū),支持蘭州市創(chuàng)建國家級軟件和信息技術(shù)服務(wù)業(yè)示范基地,爭創(chuàng)中國軟件名城[1]。面臨巨大的市場機遇和挑戰(zhàn),軟件測試專業(yè)如何進一步把握市場需求,明確專業(yè)定位,確定人才培養(yǎng)模式,細化人才培養(yǎng)方案,構(gòu)建專業(yè)課程體系,進一步開發(fā)課程資源,落實教學團隊和實訓基地建設(shè),是我們重點要解決的問題。
2 專業(yè)建設(shè)內(nèi)容
1)專業(yè)定位更加準確,人才培養(yǎng)目標具體化。進一步加強專業(yè)建設(shè)與社會需求的緊密接軌,深入企業(yè)調(diào)研,加強市場分析,按照軟件測試工作過程所需的典型工作崗位提煉專業(yè)人才培養(yǎng)目標,將學生知識學習、技能提升、能力培養(yǎng)和素養(yǎng)形成融入整個教學過程,實現(xiàn)從學習者到工作者的角色轉(zhuǎn)換,努力培養(yǎng)適應軟件測試崗位的職業(yè)技能強、綜合素質(zhì)高、具有可持續(xù)發(fā)展能力的高素質(zhì)技能型人才。
2)課程體系與崗位及崗位群緊密對接。加強對軟件測試企業(yè)的崗位調(diào)研,緊密跟蹤市場對本專業(yè)人才結(jié)構(gòu)、規(guī)模和質(zhì)量的需求變化,及時將本專業(yè)領(lǐng)域的新知識、新方法、新技術(shù)和新思想融入專業(yè)人才培養(yǎng)方案,對現(xiàn)有課程體系進行持續(xù)改進和優(yōu)化整合。加大理論實踐一體化課程、任務(wù)引領(lǐng)型課程在專業(yè)學習領(lǐng)域課程中的比重;根據(jù)課程特點,整合教學內(nèi)容,構(gòu)建“公共學習領(lǐng)域”、“專業(yè)學習領(lǐng)域”和“拓展學習領(lǐng)域”三大模塊;進一步優(yōu)化頂崗實習課程的設(shè)計,完善相關(guān)管理制度和實施辦法;加強職業(yè)素質(zhì)課程的針對性與應用性,加強所學知識與生活的聯(lián)系,提高為專業(yè)服務(wù)的能力[2]。
3)充分開發(fā)課程資源。在建立完備的課程體系基礎(chǔ)上,根據(jù)具體情況開發(fā)校本教材,豐富教材形態(tài)(包括課程標準、教材、教案、電子課件、在線學習課件、企事業(yè)案例、畢業(yè)實習案例、習題集、參考書等),建立具有明顯職業(yè)教育特色的課程和教材體系。要打破傳統(tǒng)的按照技術(shù)學科進行教材編寫的模式,開發(fā)和推廣與軟件測試行業(yè)密切聯(lián)系的綜合性和案例式課程和教材。
4)加強軟件測試專業(yè)實訓基地建設(shè)。在充分發(fā)揮現(xiàn)有實訓基地效能的基礎(chǔ)上,深入其他同類院校和軟件企業(yè)內(nèi)部考察,了解市場用量最廣的軟件測試方法和新型的測試工具軟件,學習其先進、高效的實訓基地管理辦法,與企業(yè)專家共同討論符合高職學生特點的典型測試案例,探索校企互惠雙贏、長效合作共建校內(nèi)外實訓基地的新思路。
5)優(yōu)化軟件測試專業(yè)人才培養(yǎng)方案。邀請企業(yè)專家、校內(nèi)專家、項目組成員和學生代表共同討論現(xiàn)有人才培養(yǎng)方案中存在的問題和不足,將前期的調(diào)研工作結(jié)果匯總、分析、提煉、篩選,結(jié)合新形式下的人才培養(yǎng)思路和學生特點,進一步優(yōu)化專業(yè)人才培養(yǎng)方案中的各個環(huán)節(jié),重新制定課程標準,探討項目案例,細化教學過程,保證每一門課程開設(shè)的有效性和針對性。
3 專業(yè)建設(shè)思路
1)突出專業(yè)建設(shè)的開放性。軟件測試專業(yè)本著“高職教育、源于崗位、工學結(jié)合、融入企業(yè)”的理念,按照“專業(yè)知識+崗位技能+資格證書+職業(yè)素質(zhì)”的培養(yǎng)標準,積極開展“產(chǎn)學結(jié)合”的辦學模式,注重行業(yè)、企業(yè)參與專業(yè)人才培養(yǎng)方案的研討和修訂。把企業(yè)搬進校區(qū),把課堂搬上工作崗位,把教和練更加緊密的結(jié)合在一起,變學生被動學習為主動學習,將專業(yè)知識理論教學和實踐教學有機融合,將專業(yè)知識學習,崗位技能學習,資格證書培訓,職業(yè)素質(zhì)教育連成一體,形成 “工學交替,雙螺旋上升”的人才培養(yǎng)模式[3]。
2)注重課程體系的完整性。通過與行業(yè)企業(yè)合作,針對畢業(yè)生可能面向的不同的潛在的就業(yè)崗位,如軟件測試員、缺陷分析員、測試組長等,按照“分解崗位工作任務(wù)確定工作能力設(shè)置課程體系開發(fā)教學資源”的專業(yè)建設(shè)思路,構(gòu)建“基于軟件測試工作過程”的專業(yè)課程體系。
3)凸顯課程設(shè)置的針對性。根據(jù)“倒推”理論,據(jù)崗設(shè)課,按照“崗位決定能力,能力決定課程”的主導思想,首先篩選軟件測試行業(yè)的崗位和崗位群,以及社會認可度較高的職業(yè)資格證書;接下來獲取每個職業(yè)崗位的能力要求、專業(yè)知識結(jié)構(gòu)要求和職業(yè)素養(yǎng)要求;然后根據(jù)獲取的崗位能力要求,設(shè)置崗位能力課程;根據(jù)專業(yè)知識結(jié)構(gòu)要求,設(shè)置專業(yè)知識課程;根據(jù)職業(yè)素質(zhì)要求,設(shè)置職業(yè)素質(zhì)課程;根據(jù)職業(yè)技能取證要求,對應取證課程;最后,根據(jù)高技能測試人才的成長規(guī)律組合課程,并考慮各課程之間的銜接關(guān)系及專業(yè)教學資源的配置與均衡,我們對同一階段的課程進行排序,形成軟件測試專業(yè)課程體系的“倒推”鏈,即確定崗位及崗位群獲取崗位能力據(jù)崗設(shè)課組合和序化課程形成專業(yè)課程體系[4]。
4 思考與總結(jié)
蘭州石化職業(yè)技術(shù)學院地處西部欠發(fā)達地區(qū),通過不斷與沿海發(fā)達地區(qū)的軟件企業(yè)深度合作,不斷交流專業(yè)技術(shù),聘請IT培訓機構(gòu)名師親臨指導,目前學院的軟件測試專業(yè)已經(jīng)成功探索出了一條適合自己發(fā)展的專業(yè)建設(shè)之路。但在IT市場新技術(shù)不斷更新、飛速發(fā)展的嚴峻形勢下,我們還需進一步解放思想,開拓創(chuàng)新,迎接新的挑戰(zhàn)。
參考文獻:
[1] 甘肅新聞網(wǎng)[EB/OL].http://.
中圖分類號:G64文獻標識碼:A文章編號:1009-3044(2012)14-3353-02
Course System Research of Software Testing Technology Based on Demand of Talent Market
ZHENG Hao, LIU Jian-fang
(Pingdingshan University, Pingdingshan 467000, China)
Abstract: This paper analyze the actual needs of talent market at first, and then set up the Curriculum system based on the software testing theory and technology. Paying more attention on the application, we want to construct course system to meet the market, which has deep foundation and strong skills. All of these promote the quality of the professional course.
Key words: Market requirement; software testing; Curriculum system
最近的年度軟件測試行業(yè)專項調(diào)查報告顯示,社會對軟件測試人才的需求越來越大,可人才市場提供的人力資源、實際能力卻不能滿足這種需求。目前國內(nèi)對測試人才職業(yè)化培養(yǎng)體系還不夠充分,現(xiàn)行的傳統(tǒng)教育體制重學歷教育,輕職業(yè)技能培訓,導致了軟件測試人才告急。如何結(jié)合人才市場的實際需求,構(gòu)建適合的課程培養(yǎng)體系,成為軟件測試課程改革迫在眉睫的問題。
1中國軟件測試行業(yè)的市場需求分析
在我國,軟件產(chǎn)業(yè)的興起和發(fā)展也就是這短短十幾年。在前面的興起和發(fā)展壯大階段,一般的軟件公司都是重開發(fā)輕測試,甚至存在把測試工作都放在用戶那里去做的錯誤思想;追求眼前功能的實現(xiàn),開發(fā)軟件追求“短”、“平”、“快”。不太考慮性能和功能的優(yōu)化。軟件測試以往一直被中小IT企業(yè)所忽視,只有一些知名企業(yè)才有專門的軟件測試人員。
現(xiàn)在,更多的國內(nèi)企業(yè)認識到測試的重要性,但是由于國內(nèi)測試人才的儲備相對較少,據(jù)國家權(quán)威部門統(tǒng)計,中國軟件人才缺口超過100萬人,其中很大一部分為軟件測試人才,缺口達到30~40萬。但由于軟件測試的重要性是近幾年才被充分認識到的,高校教育和企業(yè)培養(yǎng)都還沒有跟上,致使軟件測試需求嚴重供不應求。
分析年度軟件測試行業(yè)專項調(diào)查報告,目前對測試人員的素質(zhì)和要求逐步提高,測試人員不僅應掌握相關(guān)計算機知識背景、軟件工程基本知識、熟悉項目編程語言、熟悉項目技術(shù)架構(gòu)及需求內(nèi)容,而且要求工作有責任感、獨立分析能力及團隊精神等方面。其中“動手能力”和“實際經(jīng)驗”是軟件企業(yè)在招聘軟件測試人員時最為看重的,而這也恰恰是很多求職者的“軟肋”。
2現(xiàn)有軟件測試課程體系存在的問題
2007年,我校軟件學院認證管理中心被授予計算機軟件測試人才培養(yǎng)基地。軟件學院軟件工程專業(yè)以及軟件技術(shù)專業(yè)均開設(shè)有軟件測試相關(guān)課程。由于軟件測試是一門實踐性很強的課程,應采用精講多練的原則開展教學,即學生通過大量的上機實踐,循序漸進地提高自身的軟件測試用例設(shè)計、開發(fā)、執(zhí)行能力以及軟件測試的管理能力。但在具體實踐教學組織中,教師普遍感覺有許多不如意的地方,具體存在的問題有:
1)對實踐課程的認識程度和重視程度不夠,軟件測試開展的不夠徹底,測試過程中存在大量的不規(guī)范性;
2)缺乏合適的教材,同時教師缺乏相應的實戰(zhàn)經(jīng)驗,導致教學上知識結(jié)構(gòu)不合理,教學內(nèi)容與具體應用脫節(jié),盡管教師都能很好的講解軟件測試理論知識,但卻由于缺乏合適的測試案例,沒有將理論教學內(nèi)容和最新相關(guān)技術(shù)結(jié)合,使得學生思維局限性大,并沒有真正提高學生自主思考的能力和創(chuàng)造性思維。
3)教學方法和手段因循守舊,學生對軟件測試職業(yè)存在一些片面的,甚至是錯誤的理解。
3基于人才市場需求的《軟件測試技術(shù)》課程體系研究
基于人才市場需求的軟件測試技術(shù)課程體系研究主要是分析目前人才市場對軟件測試行業(yè)人才的崗位需求,掌握軟件測試人才需要具備的職業(yè)素質(zhì),同時調(diào)查研究在學生對前續(xù)課程的掌握情況,以及目前所具備的相關(guān)職業(yè)素養(yǎng)的程度,計劃從技術(shù)、溝通協(xié)調(diào)能力、經(jīng)驗和技能、綜合素質(zhì)能力等方面分別對崗位需求和學生水平展開調(diào)研。
3.1課程體系目標定位
我校軟件工程專業(yè)的培養(yǎng)目標是培養(yǎng)適應社會發(fā)展需求,具有扎實的計算機知識基礎(chǔ),掌握軟件工程領(lǐng)域的前沿技術(shù)和軟件開發(fā)方法,具有較強的軟件實踐能力和創(chuàng)新精神,具備較強的軟件項目的分析、設(shè)計、開發(fā)和維護能力,能夠按照工程化的原則和方法從事軟件開發(fā)和管理的應用型人才。
作為該專業(yè)的一門專業(yè)必修課,為構(gòu)建厚基礎(chǔ)、強技能、注重技術(shù)應用的適合應用性人才培養(yǎng)的課程體系。將以軟件技術(shù)為基礎(chǔ),測試理論與技術(shù)為核心,進行課程體系設(shè)置。理論教學目的是讓學生深刻理解軟件測試思想和基本理論;熟悉多種軟件的測試方法、相關(guān)技術(shù)和系統(tǒng)地軟件測試過程;會熟練編寫測試計劃,測試用例,測試報告,并熟悉幾種自動化測試工具,從而從工程化角度提高和培養(yǎng)學生從事大型軟件的測試技術(shù)和能力。
同時在實踐環(huán)節(jié),要求學生通過實驗學習,培養(yǎng)與提高項目測試過程中采用的主要技術(shù)、設(shè)計測試用例、編寫測試總結(jié)報告等能力,激發(fā)學生創(chuàng)新精神和創(chuàng)新能力,具體應達到下列基本要求。1)使學生掌握分析問題和解決問題的技巧,通過具體實驗使學生掌握常用的黑盒測試技術(shù)、白盒測試技術(shù)、自動化測試工具。2)讓學生了解測試流程,掌握測試總結(jié)報告的編寫。通過實驗使學生理解軟件缺陷的描述,并能結(jié)合項目設(shè)計出較完善的測試用例。
3)了解Web系統(tǒng)的測試范圍,使學生能在應用場景下聯(lián)系實際和所學知識分析和解決問題,縮短理論和實踐的距離。
3.2課程教學內(nèi)容選取
結(jié)合課程體系目標定位,該課程在教學內(nèi)容選取上主要是基于人才市場需求,厚基礎(chǔ)、強技能、注重技術(shù)應用??倢W時共72學時,其中理論和實踐各36學時。結(jié)合課堂教學和實踐教學,軟件測試技術(shù)課程包括以下幾部分:
1)軟件測試基本理論及方法:包括軟件測試的概念、測試的原則、用例的設(shè)計、各種測試方法及技巧,測試策略。同時通過實驗掌握軟件測試的步驟、方法及常見問題的處理。
2)測試流程及文檔寫作:軟件測試流程、各階段的文檔編寫;書寫測試計、測試用例、測試報告、產(chǎn)品安裝手冊、產(chǎn)品使用手冊。在實踐環(huán)節(jié),通過SATM系統(tǒng)讓學生掌握軟件測試流程各個階段的相關(guān)技術(shù)、測試相關(guān)文檔的寫作技巧。
3)系統(tǒng)學習軟件測試的各種工具,包括:自動測試工具WinRunner;壓力測試工具LoadRunner;測試管理工具Testdirector;流程管理工具CVS;JAVA單元測試工具Junit。要求學生掌握自動化測試理論與方法,熟練使用常見測試工具。
4)軟件過程控制與質(zhì)量保證:軟件質(zhì)量的概念及軟件質(zhì)量管理的基本方法;測試項目的范圍管理、人員組織結(jié)構(gòu)、理解測試的配置管理、風險管理、成本管理等。
5)項目實訓:引入具有真實企業(yè)背景的軟件測試案例,充分考慮人才市場的需求,突出強調(diào)工學結(jié)合的重要性。通過實際項目掌握實際工作中開發(fā)和測試的流程,使用相關(guān)工具,完成各種測試目標,實現(xiàn)軟件測試實踐環(huán)節(jié)單項專業(yè)知識與整體技能綜合運用的目標,提高測試能力和積累相關(guān)經(jīng)驗。
3.3課程教學方法設(shè)計
為構(gòu)建厚基礎(chǔ)、強技能、注重技術(shù)應用的適合應用性人才培養(yǎng)的課程體系,在教學過程中,需要把技能訓練和職業(yè)素質(zhì)培養(yǎng)有機結(jié)合起來,注重學生綜合能力的培養(yǎng)與提高,突出強調(diào)職業(yè)崗位針對性。提高學生綜合運用所學知識發(fā)現(xiàn)問題、分析問題、解決問題的能力,進而培養(yǎng)學生的技術(shù)應用和技術(shù)創(chuàng)新能力。在教學方法設(shè)計上做了一下改進:
1)突出工學結(jié)合:在講解基本理論知識的基礎(chǔ)上,引入具有真實背景的軟件測試案例,并結(jié)合理論知識講解將案例進行改造,使案例的分析應用與理論知識相呼應。目前市場上IT公司在招聘測試人員時按照所需技能的不同,將測試人員分為三個等級,分別為初級測試工程師、中級測試工程師和高級測試工程師。分析不同等級的要求,在教學過程中,主要針對初級和中級的技能要求循序漸近的展開教學。使通過此教學改進,既彌補了教師缺乏實戰(zhàn)經(jīng)驗帶來的不足,也使學生能較真實的接觸到實際應用,從一定程度上實現(xiàn)了人才培養(yǎng)與市場需求的接軌。
2)強調(diào)團隊合作:在教學過程中實施“1-7”模式,即在實驗課教學中,采用團隊合作的方式,分組完成各項任務(wù)。在實驗初期由教師合理分配各團隊成員間的任務(wù),培養(yǎng)學生的基本崗位技能。經(jīng)過兩個實驗任務(wù)的完成,每個團隊挑出一名同學為項目組長,模擬公司招聘的形式,招聘4~6個組員組建自己的團隊。后期實驗任務(wù)的分工由團隊組長負責項目進展、分工協(xié)作、制定測試計劃等工作,其他小組成員則按要求完成自己的工作,如編寫測試策略、設(shè)計測試用例、撰寫測試報告等,教師主要起引導作用,充分發(fā)揮以學生為主體。為了全面培養(yǎng)學生,在不同的任務(wù)中,組員通過角色互換,充分發(fā)揮其溝通能力及綜合技術(shù)能力。在學期末,通過團隊評比,以提高平時成績的形式對表現(xiàn)優(yōu)秀的團隊進行獎勵。通過此教學手段,可以培養(yǎng)加強學生面試技巧、溝通能力、團隊意識、競爭意識等職業(yè)素質(zhì)的培養(yǎng)。
4結(jié)束語
基于人才市場需求的《軟件測試技術(shù)》課程體系研究定位在對人才市場的實際需求分析之上,針對軟件測試人才的特點要求,把行業(yè)、企業(yè)對人才的要求轉(zhuǎn)化為教學中的具體目標。構(gòu)建厚基礎(chǔ)、強技能、注重技術(shù)應用的適合應用性人才培養(yǎng)的課程體系。
參考文獻:
[1]朱少民.軟件測試方法和技術(shù)[M].北京:清華大學出版社,2010.
[2]古樂.軟件測試案例與實踐教程[M].北京:清華大學出版社,2007.
[3]馬民生,馬友忠,任剛.以就業(yè)為導向的軟件測試實踐課課程改革[J].電腦知識與技術(shù),2010(4):241-242.
關(guān)鍵詞: 軟件第三方測試;質(zhì)量評測;開發(fā)成本;規(guī)范;驗收
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)28-7982-03
Problem Analysis and Suggestions for Third-Party Software Testing
ZHOU Ping,WU Wei-wei
(Tongji university, Shanghai 201804, China)
Abstract: This paper analyzed the development situation of software testing in foreign and domestic,and then arrived at the third-party software testing. It next introduced the present application situation of third-party software testing in domestic. Then, it focused on the problems existing in the executing process of third-party software testing. Based on the problems those were discussed, it proposed some suggestions for the long-term development of third-party software testing and prospected the future of it.
Key words: third-party software testing; quality evaluation; development cost; specification; acceptance
隨著社會對信息化依賴程度的不斷加深,軟件的種類和數(shù)量也越來越多,軟件行業(yè)也因此由“賣方市場”轉(zhuǎn)變?yōu)椤百I方市場”。在供過于求的情況下,軟件用戶必然會對軟件質(zhì)量提出更高的要求。國家應用軟件產(chǎn)品質(zhì)量監(jiān)督檢驗中心總工程師鞠琳博士在《提升軟件質(zhì)量,推進行業(yè)信息化》主題演講中提到美國國家標準和技術(shù)機構(gòu)(NIST)近期的一項研究發(fā)現(xiàn):軟件的自身缺陷使美國經(jīng)濟每年要付出近600億美元的代價,其中80%的資金被開發(fā)人員用于確定和糾正軟件缺陷。據(jù)調(diào)查,國際上軟件開發(fā)人員與測試人員的比例大都在1:1,軟件測試收入占軟件總產(chǎn)值的20%,而國內(nèi)軟件產(chǎn)業(yè)尚未形成這種狀態(tài)。
1 國內(nèi)外軟件測試工程發(fā)展現(xiàn)狀
軟件測試是許多軟件交付用戶前的最后一個環(huán)節(jié),是保證軟件質(zhì)量的主要手段[1]。國外的軟件廠商極為重視軟件測試工作,軟件開發(fā)成本中的30%-50%用于軟件測試。為打造Windows 2000,微軟用了250多個項目經(jīng)理、1700多個開發(fā)人員,而測試人員則用了3200人,測試人員幾乎是開發(fā)人員的兩倍[2]。每修改一個錯誤,都要花費大量時間和精力確保沒有新錯誤產(chǎn)生。目前,國外軟件測試工作已經(jīng)演變?yōu)橐婚T獨立的學科,囊括了配置方案、測試機制、跨平臺策略和產(chǎn)品性能、穩(wěn)定性等獨立的知識模塊。
雖然國內(nèi)許多大中型軟件企業(yè)已經(jīng)開始意識到軟件質(zhì)量的重要性,很多軟件企業(yè)也已經(jīng)配備了質(zhì)量保證體系以及企業(yè)內(nèi)部的測試隊伍,但在軟件項目面臨時間壓力、必須加快研制速度的情況下,通常測試會成為換取項目進度的犧牲品[3]。除此之外,由于許多企業(yè)軟件工程過程管理不力,甚至缺乏管理,致使軟件產(chǎn)品文檔和資料不齊全,缺乏統(tǒng)一標準,消化理解困難,特別嚴重的是,有時小的需求錯誤,經(jīng)過多次開發(fā)放大,到后來牽一發(fā)動全身以至于不可收拾。
令人欣喜的是,隨著軟件產(chǎn)業(yè)的發(fā)展,國內(nèi)越來越多的第三方測試機構(gòu)應運而生。第三方測試作為獨立的測試服務(wù)機構(gòu),其相對于軟件開發(fā)企業(yè)的內(nèi)部測試及用戶測試具有很多優(yōu)勢。首先,第三方測試以合同的形式制約了測試方,使得它與開發(fā)方之間存在某種“對立”的關(guān)系,所以它不會刻意維護開發(fā)方的利益,能夠保證測試的客觀性;其次,獨立測試在長期的工作過程中勢必能夠積累大量的實踐經(jīng)驗,形成自己的專業(yè)優(yōu)勢。并且軟件工程測試也是技術(shù)含量很高的工作,需要有專業(yè)隊伍加以研究,并進行工程實踐。長期的實踐積累加持續(xù)深入地學習,使得第三方測試具有難以比擬的優(yōu)越性。再次,第三方測試機構(gòu)的主要任務(wù)就是進行獨立測試工作,這使得測試工作在經(jīng)費、人力和計劃方面更有保證。不會因為開發(fā)的壓力而減少對測試的投人,降低測試的充分性,可以避免目前開發(fā)單位普遍存在的重開發(fā)、輕測試的現(xiàn)象。最后,開發(fā)人員由于對軟件產(chǎn)品的設(shè)計、編碼等過程都比較熟悉,容易養(yǎng)成思維定勢[4],以至于在測試過程中思路比較有限,采用第三方測試能有效地避免這一問題。
伴隨著軟件生產(chǎn)規(guī)模的擴大和用戶對軟件質(zhì)量要求的提高,第三方測試的優(yōu)勢也將日益明顯,在今后的發(fā)展中軟件第三方測試必然會得到更多軟件用戶和軟件企業(yè)的認可。
2 軟件第三方測試的應用現(xiàn)狀
從國外的經(jīng)驗來看,軟件測試工作已逐漸由專業(yè)的第三方來承擔。第三方測試工程主要包括需求分析審查、設(shè)計審查、代碼審查、單元測試、功能測試、性能測試、可恢復性測試、資源消耗測試、并發(fā)測試、健壯性測試、安全測試、安裝配置測試、可移植性測試、文檔測試以及最終的驗收測試等十余項。測試并不僅僅是為了要找出錯誤,測試方還需要對錯誤進行歸類和總結(jié)[5]。通過分析錯誤產(chǎn)生的原因和錯誤的分布特征,可以幫助項目管理者發(fā)現(xiàn)當前所采用的軟件過程的缺陷,以便改進,從而更好地幫助用戶。
軟件第三方測試是軟件開發(fā)方和用戶出于不同目的共同選擇。隨著軟件全球化競爭的日益加劇,用戶對軟件質(zhì)量的要求也隨之提高。為了提高軟件質(zhì)量,降低軟件開發(fā)成本,許多軟件開發(fā)方已經(jīng)逐步將部分測試業(yè)務(wù)交給第三方負責。與此同時,對于應用軟件、甚至系統(tǒng)軟件,大多數(shù)用戶都不是很熟悉其特性,質(zhì)量評測基本難以進行,迫切需要專業(yè)的機構(gòu)對開發(fā)方提供的軟件給予客觀的測試。正是由于采用第三方測試可以保證測試的獨立性、客觀性及第三方具有的測試的專業(yè)性使得第三方測試越來越成為用戶的首選。
目前在國內(nèi),雖然軟件第三方測試的發(fā)展還處于起步階段,但已經(jīng)有許多軟件企業(yè)開始認識到軟件質(zhì)量的重要性,選擇第三方測試的軟件企業(yè)和用戶都越來越多。在一些重要計算機軟件應用領(lǐng)域,如金融、安全、航空、航天以及軍事等方面,已經(jīng)有不少用戶開始頒布測試規(guī)定,要求第三方測試,并在逐步將軟件測試通過合同關(guān)系委托第三方承擔[6]。在通信領(lǐng)域,手機等產(chǎn)品的軟件需要第三方測試后才可交付使用。在已經(jīng)進行的一些工程項目當中,軟件測試都取得了確保軟件產(chǎn)品質(zhì)量的預期效果,逐步被軟件用戶和軟件企業(yè)所認可。
3 軟件第三方測試在實施中遇到的問題
目前,軟件第三方測試在國內(nèi)已經(jīng)興起,隨著社會信息化程度的提高、軟件大生產(chǎn)的發(fā)展,軟件第三方測試必將在國內(nèi)盛行。但由于軟件第三方測試在國內(nèi)還處于起步階段,在具體的實施中不可避免地遇到了如下一些困難和問題。
1)軟件企業(yè)對測試仍不夠重視,重開發(fā)、輕測試的現(xiàn)象在國內(nèi)許多軟件企業(yè)中仍普遍存在。由于對軟件測試的不重視,常常導致軟件產(chǎn)品的售后服務(wù)費用大大增加,從而使得軟件產(chǎn)品的成本大幅度提高。成本的增加又導致軟件公司考慮到資金問題不愿意增加投入為軟件做第三方測試,即使做,給第三方軟件測試公司的報價也是極低的。軟件企業(yè)陷入了這樣的死循環(huán),作為軟件測試的第三方,面臨的問題是回報低但工作量又十分龐大,使得軟件測試公司沒有盈利的空間,這就成為制約第三方測試公司發(fā)展的一個瓶頸。
2)用戶和測試機構(gòu)都還不夠成熟,對第三方的認識還比較粗淺,工程實施過程比較隨意,項目水平不盡如人意。
3)用戶、開發(fā)方和第三方的責任與權(quán)利常常劃分不明確。在實際的第三方測試實施過程中,有些用戶甚至軟件開發(fā)商,容易將軟件質(zhì)量的高低完全寄托于第三方評測服務(wù)商,一旦軟件達不到系統(tǒng)設(shè)計的質(zhì)量效果,就歸罪于第三方。這種認識很打擊測試人員的積極性,軟件中的錯誤可能發(fā)生在軟件項目的各個環(huán)節(jié),軟件測試只能確認軟件存在錯誤,不能保證軟件沒有錯誤,軟件測試不可能發(fā)現(xiàn)全部的錯誤。
4)三方關(guān)系的協(xié)調(diào)問題。軟件第三方測試的形式一般是第三方評測服務(wù)商與軟件用戶之間簽訂合同,但實際工作中往往需要軟件開發(fā)方的密切配合,因此能否處理好用戶、開發(fā)商與第三方之間的關(guān)系,在很大程度上影響第三方測試的效率和質(zhì)量。
5)許多國家機構(gòu)也發(fā)現(xiàn)軟件第三方測試市場,他們對企業(yè)軟件進行測試,發(fā)放國家認可的證書。這就給民間的第三方軟件測試公司的成立帶來了很大的壓力,這些企業(yè)的創(chuàng)辦者經(jīng)過測試很難給企業(yè)發(fā)放這些證書。所以許多軟件企業(yè)紛紛停止這項業(yè)務(wù),而轉(zhuǎn)入更容易賺錢的其他項目,比如軟件測試培訓。而需要第三方軟件測試的企業(yè)也找國家直屬的企業(yè)進行產(chǎn)品認證。
6)軟件大企業(yè)測試的競爭。許多產(chǎn)品往往都需要進行第三方測試,比如軟件本地化測試。微軟的產(chǎn)品,生產(chǎn)一個就要產(chǎn)生世界各地的本地化版本,如果這些工作都讓微軟來做,得不償失。而國內(nèi)許多大企業(yè),他們一直與這些大的國際企業(yè)有著長年的友好關(guān)系。他們往往可以接下這種測試任務(wù),在社會上招聘測試工程師,宣稱赴某大公司工作,然而項目一旦完畢,就將這些人員解散。
總之,由于沒有建立起一套正規(guī)的游戲規(guī)則,給軟件第三方軟件測試的發(fā)展帶來了許多不利因素。雖然業(yè)界已經(jīng)認識到了第三方測試的重要性,但是在目前條件下第三方測試發(fā)展的道路仍舊十分艱難。
4 軟件第三方測試發(fā)展的一些建議
軟件第三方測試是測試工程未來的發(fā)展趨勢,但由于第三方測試在國內(nèi)尚處于起步階段,其在具體的實施過程中不可避免地遇到了種種困難和問題。針對目前第三方測試在實際項目實施中遇到的問題,筆者給出以下幾點建議。
1)切實提高軟件企業(yè)及軟件用戶的產(chǎn)品質(zhì)量意識。不論是對于軟件企業(yè)還是軟件用戶,質(zhì)量管理的薄弱都會為其帶來不可估量的損失。對軟件企業(yè)而言,如果因軟件質(zhì)量的不過關(guān),導致用戶蒙受損失,其必將失去客戶的信任,從而影響自身的發(fā)展。對軟件用戶而言,嚴格的軟件質(zhì)量控制關(guān)系到自身的切身利益。軟件質(zhì)量缺陷問題為軟件使用方帶來諸多不便、甚至讓軟件用戶蒙受巨額損失的例子比比皆是[7]。因此,作為專業(yè)測試的第三方,必須加大軟件質(zhì)量意識方面的宣傳,只有軟件企業(yè)和軟件用戶的質(zhì)量意識提高了,軟件第三方測試才會有更大的發(fā)展空間。
2)規(guī)范軟件第三方測試市場。面對日益增大的市場需求,不少軟件第三方測評中心紛紛建立,甚至有些企業(yè)購買一兩套自動化測試工具就成立了軟件測試中心。其結(jié)果可想而知,測試過的軟件質(zhì)量不過關(guān),用戶不滿意,導致用戶失去了對第三方測試的信任,制約了第三方測試的發(fā)展。筆者建議不要盲目建立測試機構(gòu),搞重復建設(shè)。要規(guī)范軟件測試市場,對測試結(jié)構(gòu)進行整合,建立較大規(guī)模的權(quán)威測評機構(gòu),做到測試不是走過場,真正達到提高軟件質(zhì)量的目的。
3)制定合理的項目驗收標準。項目驗收的技術(shù)標準是第三方合同中必須重點解決的關(guān)鍵問題。合理、明確、符合軟件測試技術(shù)特點的驗收標準,能夠明確測試方的責任,無論是對測試方還是用戶都有好處。驗收標準應面向測試的整個過程并具有可操作性,這樣便于測試完成后用戶的驗收[8]。對大型系統(tǒng)的第三方測試建議重點面向有效性指標制定驗收標準。
4)加大軟件測試人才建設(shè)。在國外,有三年以上開發(fā)經(jīng)驗的人員才可以轉(zhuǎn)做軟件測試工作。而國內(nèi)恰恰相反,往往是剛剛參加工作的新人被安排在測試的崗位上,導致測試人員的業(yè)務(wù)素質(zhì)普遍較低。2004年原國家信息產(chǎn)業(yè)部聯(lián)合五部委頒布124號文件,強調(diào)要“加快培養(yǎng)軟件測試人才,開展軟件評測技術(shù)的研究”為軟件測試人才的培養(yǎng)提供了政策支持。雖然近年來,國內(nèi)眾多的高校、職業(yè)培訓機構(gòu)都在加強專門的軟件測試人才的培養(yǎng)并且取得了一些成績,但軟件測試人才缺乏問題仍未解決。只有加大軟件測試人才建設(shè),實現(xiàn)我國軟件測試人才供需平衡的良性發(fā)展結(jié)構(gòu),才能有力促進我國軟件產(chǎn)業(yè)蓬勃發(fā)展。
5)用戶參與。用戶方的充分參與既可以讓測試中的許多具體問題得到迅速的解決,又可以對測試起到監(jiān)督的作用,保證測試全面細致地進行。此外,測試方采用的測試思路及其制定的驗收標準等都需要得到用戶的認可,所以測試過程中應盡量調(diào)動用戶積極參與,這樣既能讓用戶更好地理解和接受測試方的測試思路及驗收標準等,又能讓用戶起到協(xié)調(diào)第三方與開發(fā)方關(guān)系的作用,從而提高測試的效率。
5 總結(jié)
雖然目前第三方測試還剛剛興起,但第三方測試服務(wù)相對于軟件企業(yè)內(nèi)部測試及用戶測試,擁有不可比擬的優(yōu)勢。隨著軟件企業(yè)和軟件用戶的質(zhì)量意識不斷提高,以及用戶對軟件測試服務(wù)的需求增大,軟件第三方測試服務(wù)必將在國內(nèi)得到蓬勃發(fā)展。
參考文獻:
[1] 王峰,鄭彥興,包陽.軟件第三方測評[J].計算機研究與發(fā)展,2008(45):345-350.
[2] 陳宏剛,熊明華,林斌等.軟件開發(fā)過程與案例[M].北京:清華大學出版社,2003.
[3] 蘇正泉.軟件測試的10個認識誤區(qū)[J].電腦知識與技術(shù),2006,(14):149.
[4] 郭樹端.軟件第三方測試的意義及可行性分析[J].電子產(chǎn)品可靠性與環(huán)境試驗,2003,(02):47-49.
[5] 王萍.軟件測試的重要性[J].軟件導刊,2009,(04):20-21.
【基金項目】2015年中央高?;究蒲袠I(yè)務(wù)費專項資金項目“C程序代碼級內(nèi)存缺陷的充分性檢測技術(shù)研究”(15CX02050A)。
【中圖分類號】G64 【文獻標識碼】A 【文章編號】2095-3089(2015)09-0229-01
一、引言
隨著軟件產(chǎn)業(yè)的迅猛發(fā)展,軟件的復雜性也日益增加,導致對軟件的質(zhì)量提出了更高的要求,這也使得軟件測試工程師成為每個軟件企業(yè)都不可或缺的技術(shù)人才?!败浖y試”就是一門培養(yǎng)軟件測試工程師的專業(yè)課[1],本課程較為系統(tǒng)的介紹了軟件測試的基本理論、測試方法、測試過程以及常用測試工具等內(nèi)容。本課程知識的掌握將為學生系統(tǒng)的掌握軟件工程知識體系以及畢業(yè)后從事軟件測試、軟件開發(fā)等職位打下良好的基礎(chǔ)。
如何扎實有效的培養(yǎng)軟件工程學生在軟件測試領(lǐng)域既具有理論基礎(chǔ)、又具有工程實戰(zhàn)能力,目前許多軟件工程專業(yè)教育者進行了積極的探索 [2-4]。我校軟件工程專業(yè)已入選山東省卓越工程師培養(yǎng)計劃[5],為了執(zhí)行國家對軟件工程專業(yè)卓越工程師培養(yǎng)的精神,融合學校的“三三三”培養(yǎng)體系[6]的頂層設(shè)計,以貫徹培養(yǎng)理論扎實、具備工程實踐能力、創(chuàng)新能力強、適應經(jīng)濟社會發(fā)展需要的高質(zhì)量軟件工程師為目標,我們也在軟件測試課程的培養(yǎng)方案、課程結(jié)構(gòu)、教學方法和考評體系等方面進行了一系列的改革和探索[7,8]。其中最為重要的改革是借鑒CDIO(Conceive-Design-Implement-Operate)工程教育理念,落實了“基于項目的教學”方法,增開了大量的課程設(shè)計和綜合實踐環(huán)節(jié),在理論教學的同時注重了工程實踐能力得培養(yǎng)。
二、“軟件測試”教學面臨的問題
“軟件測試”課程的已有的教學改革改善了教學效果,但是由于傳統(tǒng)的教學方法依然影響著教學,所以目前的軟件測試課程教學過程中依然面臨一系列問題。
(一)教學內(nèi)容抽象,學生學習興趣不高
軟件測試是軟件工程知識體系的九個知識域中理論性最強的一個知識域,必然造成軟件測試教材與教學內(nèi)容較抽象。目前,軟件測試課程教學中普遍存在著理論教學偏重的特點,扎實的理論素養(yǎng)是卓越工程師的必備基礎(chǔ),但是即便對于軟件工程專業(yè)的本科學生,也欠缺軟件項目的實際開發(fā)經(jīng)驗,所以課程內(nèi)容的抽象性增加了學生對課程內(nèi)容的理解難度。為促進學生對理論知識的理解與應用,必須結(jié)合軟件測試的課程特點,將抽象的內(nèi)容分化到軟件測試過程的不同階段中,并采用相應的測試工具體現(xiàn)測試的方法,再應用于教學案例,才能促進學生對抽象的測試理論知識的理解與應用。
(二)教學內(nèi)容碎片化,學生沒有完善的測試知識體系
按照軟件開發(fā)過程的要求,軟件測試是貫穿于整個開發(fā)過程的一項活動。而在教學中,軟件測試的理論出現(xiàn)了割裂,各知識點呈現(xiàn)碎片化,理論內(nèi)容與實際的軟件測試流程不同步。將不同的測試理論與方法進行了分割,這樣利于教材內(nèi)容的安排以及教學內(nèi)容的組織,但這也必然造成教學內(nèi)容碎片化,學生形成不了一個統(tǒng)一的測試理論框架,難以把握所學的理論與方法在軟件開發(fā)與測試的過程中如何應用。為促進教學效果,有必要基于軟件測試過程,定位軟件測試的介入點,在不同的介入點進行理論知識的分配,形成一個以軟件測試過程為主線、各理論知識在介入點進行分配的魚骨圖式的軟件測試理論知識體系。
(三)輕視測試工具應用,培養(yǎng)的學生與企業(yè)需求難以銜接
因為軟件測試方法眾多,這也造成有大量可選的軟件測試工具。雖然工具的培訓是培養(yǎng)卓越工程師的一個必備環(huán)節(jié),然而卓越工程師的培養(yǎng)畢竟不等同于職業(yè)教育,不能只是簡單的掌握一個測試工具,而應該了解測試工具所體現(xiàn)的測試理論、所適用的測試階段以及所應用的場景。在進行測試工具培訓鍛煉的同時,必須結(jié)合所講授的測試理論,以及該工具適用的測試過程與測試場景。為了全面的掌握各種具有代表性的測試工具,需要搭建一個測試工具箱。
(四)教學案例簡單,學生沒有完整的測試思路
因為理論知識碎片化的講授,也造成目前教學中只能采用簡單的案例,簡單的案例雖然有助于學生對具體測試方法的理解,但是難以融會貫通的掌握對一個完整項目的測試。為此,需要基于魚骨圖的軟件測試理論知識體系,精心設(shè)計能夠貫穿整個測試流程的案例,并有必要設(shè)計不同類型的案例,形成一個分層次、分類別的測試案例庫,以保證對各種測試方法的掌握。
(五)學生對軟件測試存在認識偏差,缺乏從事軟件測試職業(yè)的意愿
目前國內(nèi)軟件行業(yè)依然蔓延著“重開發(fā)、輕測試”的觀點,這種觀點也延伸到軟件工程專業(yè)的教學中,導致部分學生對軟件測試這個職業(yè)存在認識偏差。這就要求軟件測試課程需要從原來偏重理論講解、學生欠缺軟件測試訓練的教學中擺脫出來,應該與軟件測試工程師要求的能力培養(yǎng)集合起來,注重理論培養(yǎng)的同時,加強與軟件測試職業(yè)的銜接,增設(shè)對軟件測試工具的訓練,加大基于案例與項目的實戰(zhàn)訓練,通過工程能力的培養(yǎng)以加深學生對軟件測試的正確認識。
三、總結(jié)
為了執(zhí)行我校軟件工程專業(yè)的卓越工程師培養(yǎng)計劃,解決“軟件測試”教學中存在的上述問題,我們計劃在已有的教學改革基礎(chǔ)上,提出“方法為基、過程引導、工具跟進、案例貫穿”的“方法-過程-工具-案例”四位一體的教學方法,以解決目前“軟件測試”課程中存在的諸多問題。
本文分析了“軟件測試”這門課程隨著卓越工程師培養(yǎng)、研究型教學的要求下在理論培養(yǎng)與工程能力訓練等方面逐漸顯露出的各種亟待解決問題,只有充分認識到這些問題,才有可能針對問題進行教學改革,進而培養(yǎng)理論與功能能力具備的軟件測試人才。
參考文獻:
[1]吳春雷, 剛旭, 張俊三. 基于“卓越計劃”的軟件測試類課程改革[J]. 計算機教育, 2014,11:88-91.
[2]李月龍. 高校軟件測試課程教學改革研究[J]. 計算機教育, 2014,7:16-18.
[3]鄧松. 遞進式軟件測試創(chuàng)新人才培養(yǎng)模式研究[J]. 計算機教育, 2014,7:5-7.
[4]周雪妍, 林澤鴻, 羅秋濱, 路雯靖, 劉玉利. 軟件測試技術(shù)四面體培養(yǎng)模式的探索與研究[J]. 教學研究, 2013,5:56-58.
[5]張國平等. 軟件工程卓越培養(yǎng)計劃的研究與設(shè)計[C].軟件工程2011年會,2011,10.
[6]劉華東. 構(gòu)建“三三三”培養(yǎng)體系 推進本科教育邁向更高目標[J]. 中國高等教育, 2012,18:34-36.
[7]吳春雷. 面向應用型軟件人才教學模式的探索與實踐[J].中國成人教育, 2014.04:124-126.