張吉力 張喻平
摘要:有開發(fā)的地方,就有軟件測試工程師。通過近期對國內(nèi)各大招聘網(wǎng)站招聘軟件測試人才的狀況分析,極少企業(yè)能順利招到自己滿意的人才。高職院校作為面向企業(yè),服務(wù)社會(huì)的載體,有責(zé)任向軟件公司輸送合格的測試人才。目前很多高職院校軟件測試課程體系結(jié)構(gòu)并不完善,作者結(jié)合武漢城市職業(yè)學(xué)院的探索實(shí)踐,詳細(xì)介紹了如何構(gòu)建完善的軟件測試課程體系結(jié)構(gòu),并提出了一些重要的設(shè)計(jì)建議。
關(guān)鍵詞:軟件測試;高職院校;構(gòu)建;課程體系結(jié)構(gòu)
中圖分類號:TP393? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)02-0087-02
1 軟件測試行業(yè)前景分析
測試就是“找不同”,即發(fā)現(xiàn)程序錯(cuò)誤,然后提交給開發(fā)人員進(jìn)行修改。用途極廣,有開發(fā)的地方,就有軟件測試工程師,軟件測試,無處不在。目前國內(nèi)軟件測試行業(yè)人才缺口高達(dá)50萬,按照國外標(biāo)準(zhǔn),測試與開發(fā)人員比例為1:1,而國內(nèi)僅為1:8,市場缺口極大。軟件測試行業(yè)入職起薪高,測試社會(huì)薪資已超過開發(fā),測試人員平均入職薪資6000+,1-2年后,月薪8000-13000。軟件測試崗位無性別歧視,要求認(rèn)真、耐心、負(fù)責(zé)、善溝通,故男女比例相當(dāng)。軟件測試行業(yè)是多元化發(fā)展的,能接觸各行各業(yè),既可走技術(shù)路線,又可走管理路線。目前,國內(nèi)約有120萬左右的軟件從業(yè)人員,但其中軟件測試專業(yè)人才極度稀缺,僅有區(qū)區(qū)不足5萬人,月薪過萬仍難招專業(yè)軟件測試人才。如果能成為一名優(yōu)秀的軟件測試工程師,未來“錢”景無限。
2 高職院校軟件測試課程教學(xué)現(xiàn)狀
目前只有極少數(shù)的高職院校專門開設(shè)了軟件測試專業(yè),但由于之前測試教學(xué)經(jīng)驗(yàn)不足及實(shí)訓(xùn)條件無法滿足等一系列客觀原因的存在,導(dǎo)致培養(yǎng)出來的學(xué)生無法達(dá)到企業(yè)對測試人才的要求。高職院校軟件測試課程教學(xué)中存在如下問題:
1) 專業(yè)師資隊(duì)伍嚴(yán)重缺乏,很多任課教師都是從其他方面“轉(zhuǎn)行”而來。雖然其中大部分教師都具有良好的職業(yè)操守,但由于缺乏實(shí)際的工作經(jīng)驗(yàn)和真實(shí)的軟件測試案例,導(dǎo)致課程教學(xué)中對軟件測試行業(yè)存在一些片面甚至錯(cuò)誤的理解。
2) 教材質(zhì)量參差不齊,很多教材在教學(xué)內(nèi)容上隨心所欲,缺乏規(guī)范性與合理性,導(dǎo)致主講教師壓根摸不到重點(diǎn)與難點(diǎn),教學(xué)質(zhì)量無從談起。
3) 實(shí)訓(xùn)條件簡陋,很多高職院校甚至都沒有自己專門的軟件測試實(shí)訓(xùn)室,課程開展的不深入不徹底。軟件測試課程如果僅局限于理論知識學(xué)習(xí),而缺乏系統(tǒng)科學(xué)的實(shí)踐課程作為支撐,將來學(xué)生畢業(yè)后很難做到跟企業(yè)無縫對接。
4) 缺乏實(shí)際項(xiàng)目測試案例,絕大部分企業(yè)的測試項(xiàng)目是不允許對外公開的,很難獲取到相關(guān)資料,因此學(xué)生對真實(shí)項(xiàng)目的實(shí)戰(zhàn)能力幾乎為零。
綜上所述,只有重新定位軟件測試專業(yè)人才培養(yǎng)方案,對課程體系結(jié)構(gòu)進(jìn)行充分研究并不斷改革創(chuàng)新,才能培養(yǎng)出滿足企業(yè)需求的測試人才。
3 高職院校軟件測試課程體系構(gòu)建
區(qū)別于普通本科院校,高職院校的定位是培養(yǎng)應(yīng)用技能型人才為宗旨的。其主要特點(diǎn)是強(qiáng)調(diào)學(xué)生動(dòng)手能力的培養(yǎng),能解決具體實(shí)際技術(shù)問題,面向企業(yè),服務(wù)社會(huì)。根據(jù)企業(yè)招聘測試類人員所需具備的知識,可以將軟件測試課程體系結(jié)構(gòu)分為測試環(huán)境搭建和軟件測試技術(shù)兩個(gè)階段。
3.1 搭建測試環(huán)境
1) Windows 測試環(huán)境搭建
本課程全面介紹了搭建Windows 測試環(huán)境所需要的網(wǎng)絡(luò)知識及各種軟、硬件。主要內(nèi)容包括操作系統(tǒng)原理;各種計(jì)算機(jī)軟、硬件和接口技術(shù);計(jì)算機(jī)網(wǎng)絡(luò)原理及信息安全等知識。通過本課程的學(xué)習(xí),學(xué)生可以在實(shí)際工作環(huán)境中,搭建一個(gè)基于 Windows 活動(dòng)目錄的局域網(wǎng)環(huán)境。
2) 使用C、C++或JAVA語言進(jìn)行簡單應(yīng)用程序開發(fā)
本課程的開設(shè)目的是讓學(xué)生掌握計(jì)算機(jī)編程的相關(guān)思想和具體方法,初步具備軟件開發(fā)的能力。通過在學(xué)習(xí)和實(shí)踐中的不斷積累,總結(jié)在軟件開發(fā)過程中常犯的一些錯(cuò)誤,為后面軟件測試課程的學(xué)習(xí)以及測試腳本的編寫打下牢固的語言基礎(chǔ)。主要內(nèi)容包括C、C++或JAVA語言的語法基礎(chǔ)、數(shù)據(jù)類型、流程控制(分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu))、數(shù)組、函數(shù)(方法)、指針、數(shù)據(jù)結(jié)構(gòu)、算法分析等程序設(shè)計(jì)所必備知識。本課程的實(shí)用性較強(qiáng),重在培養(yǎng)學(xué)生良好的編碼習(xí)慣,具備一定的程序調(diào)試能力以及分析程序錯(cuò)誤的能力,能進(jìn)行簡單應(yīng)用程序的開發(fā)。
3) 數(shù)據(jù)庫和Web技術(shù)
本課程通過對數(shù)據(jù)庫(MySQL、SQL Server、Oracle等)、 HTML5 、 CSS3、 JavaScript、PHP或JSP 等必備知識的學(xué)習(xí),讓學(xué)生熟練掌握這些技能,為后面搭建分布式軟件測試環(huán)境奠定良好的基礎(chǔ)。
3.2 軟件測試技術(shù)
1) 測試計(jì)劃和軟件缺陷
本課程全面介紹了軟件測試的概念、軟件測試的意義及軟件測試相關(guān)的基礎(chǔ)知識。主要內(nèi)容包括測試計(jì)劃的編寫、軟件缺陷的識別、測試工具Bugzilla缺陷跟蹤管理系統(tǒng)的使用、缺陷報(bào)告的編寫等。通過本課程的學(xué)習(xí),學(xué)生對軟件測試建立了一個(gè)總體上的認(rèn)知,掌握了軟件測試的分類、軟件測試的基本流程和軟件測試的相關(guān)策略。本課程是軟件測試的前導(dǎo)基礎(chǔ)課程。
2) 高效設(shè)計(jì)測試用例
本課程是軟件測試的核心課程。主要通過引用大量實(shí)際案例來具體講解如何高效設(shè)計(jì)測試用例。在編寫測試用例之前,首先得考慮好有哪些前置條件,只要這些前置條件都滿足了,這樣才能達(dá)到你的預(yù)期。例如在“登陸”模塊中,前置條件是輸入的用戶名和密碼必須同時(shí)正確才允許登陸。那么,你就得編寫條件不滿足的時(shí)候,是否也會(huì)登陸成功。如果此時(shí)也登陸成功了,那就說明軟件中存在BUG,需要使用技術(shù)手段進(jìn)行修復(fù)。通過本課程的學(xué)習(xí),學(xué)生可以在較短時(shí)間內(nèi)寫出符合功能需求的恰當(dāng)測試用例。
3) 白盒測試技術(shù)
本課程主要介紹了白盒測試的概念、白盒測試的目的、白盒測試的方法以及白盒測試工具C++ Test和Logiscope的使用。白盒測試的方法主要分為靜態(tài)分析方法和動(dòng)態(tài)分析方法兩大類,其中又以動(dòng)態(tài)分析方法為主。在白盒測試中有六種常用的覆蓋方法,語句覆蓋、分支覆蓋(判定覆蓋)、條件覆蓋、分支條件覆蓋(判定條件覆蓋)、條件組合覆蓋、路徑覆蓋,它們都屬于動(dòng)態(tài)分析方法。通過系統(tǒng)學(xué)習(xí),可以讓學(xué)生了解白盒測試的原理及組織形式,能對一個(gè)白盒測試的效果做出準(zhǔn)確評估。
4) 高效使用自動(dòng)測試工具
本課程詳細(xì)介紹了目前在國際上使用率最高的三大自動(dòng)測試工具:性能測試自動(dòng)化工具LoadRunner、功能測試自動(dòng)化工具QuickTest Professional、測試管理自動(dòng)化工具TestDirector。 如果學(xué)生能熟練掌握這些主流自動(dòng)測試工具的使用方法,那么測試的效率將大大提升。
5) 軟件測試實(shí)訓(xùn)
本課程是軟件測試的最后一門課程。本課程的開設(shè)目的是讓學(xué)生對前面所學(xué)知識能夠更加鞏固和加深。通過靈活運(yùn)用之前所學(xué)課程知識,完成一個(gè)綜合性項(xiàng)目的測試工作。使用的項(xiàng)目按照最真實(shí)、最嚴(yán)謹(jǐn)?shù)能浖y試流程進(jìn)行,包括項(xiàng)目的分組分工、測試計(jì)劃的編寫、工作日志的記錄、項(xiàng)目例會(huì)的召開、測試用例的設(shè)計(jì)、測試的具體執(zhí)行、缺陷報(bào)告的編寫、軟件缺陷的處理等過程。整個(gè)項(xiàng)目采用分工與合作的方式進(jìn)行,這樣既鍛煉了學(xué)生的實(shí)踐動(dòng)手能力,又培養(yǎng)了學(xué)生團(tuán)隊(duì)協(xié)作的意識。
4 結(jié)束語
隨著軟件的應(yīng)用已深入到各行各業(yè),軟件設(shè)計(jì)的復(fù)雜程度和質(zhì)量要求也隨之不斷提高,相反,軟件的開發(fā)周期在不斷縮短,軟件公司正面臨著嚴(yán)峻的考驗(yàn)。此問題的關(guān)鍵是如何才能有效地保證軟件質(zhì)量,最佳的解決方案就是軟件公司必須強(qiáng)化軟件測試技術(shù),注重軟件測試過程。目前,越來越多的軟件從業(yè)人員都在逐步理解和接受這種觀念,它的實(shí)施也是軟件公司未來生存和發(fā)展的必經(jīng)之路。
軟件工程中最重要的組成部分就是軟件測試,它是保證軟件質(zhì)量的關(guān)鍵步驟,為保證軟件質(zhì)量提供了充分依據(jù),其意義之重大不言而喻。關(guān)于軟件測試的諸多研究成果中有這么一項(xiàng)結(jié)論:軟件中存在的問題如果發(fā)現(xiàn)的越早,開發(fā)軟件的成本就越低;如果是在編碼后再去修改軟件中的缺陷帶來的費(fèi)用將是編碼前的十倍,如果是在軟件交付后才去修改軟件中的缺陷那么所帶來的費(fèi)用又將是交付前的十倍;因此,當(dāng)軟件質(zhì)量越高,產(chǎn)品發(fā)布后的維護(hù)費(fèi)就能越低。研究表明,整個(gè)軟件項(xiàng)目全部研發(fā)費(fèi)用中僅軟件測試一項(xiàng)就占了50%以上。掌握先進(jìn)的軟件測試技術(shù),制定優(yōu)秀可行的軟件測試方案是快速提升軟件公司工作質(zhì)量的前提,軟件測試為軟件公司提升硬件水平和改進(jìn)軟件組織管理過程提供了根本手段和必要途徑。
高職院校軟件測試課程體系構(gòu)建需要不斷研究并隨之進(jìn)行相應(yīng)的改革與創(chuàng)新,是一個(gè)漫長且龐大的系統(tǒng)工程。目前我校已經(jīng)在學(xué)生專業(yè)分流、建設(shè)專業(yè)群、建設(shè)校內(nèi)實(shí)訓(xùn)基地、深度校企合作等一系列方面取得了實(shí)質(zhì)性進(jìn)展, 在今后的課堂教學(xué)中將更多引入企業(yè)里的一些實(shí)際生產(chǎn)項(xiàng)目,定期聘請相關(guān)企業(yè)專家對校內(nèi)教師和學(xué)生進(jìn)行指導(dǎo)培訓(xùn),深度透徹地對傳統(tǒng)教學(xué)模式進(jìn)行改革,培養(yǎng)軟件公司真正需要的合格測試人才。
參考文獻(xiàn):
[1] 蔡建平,葉東升,康妍.軟件測試技術(shù)與實(shí)踐[M].北京:清華大學(xué)出版社,2018.
[2] 顧翔.軟件測試技術(shù)實(shí)戰(zhàn) 設(shè)計(jì)、工具及管理[M].北京:人民郵電出版社,2018.
[3] 陳能技,黃志國.軟件測試技術(shù)大全 測試基礎(chǔ) 流行工具 項(xiàng)目實(shí)戰(zhàn)[M].北京:人民郵電出版社,2018.
【通聯(lián)編輯:光文玲】