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