陳建鋒
摘 ? 要:隨著計算機技術的發展以及軟件技術的應用,軟件測試的方法和工具越來越豐富,特別是云測試的出現,使軟件測試發生了很大的變革。文章針對國內外軟件測試的發展狀況、軟件測試工具以及軟件測試的未來發展趨勢等進行了詳細綜述,為軟件測試相關人員提供參考。
關鍵詞:軟件測試;測試工具;云測試;發展趨勢
1 ? ?軟件測試介紹
軟件測試的定義,不同學者有不同的觀點,電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)在1983年曾經定義:軟件測試就是使用人工手段或某種自動化的手段來運行或對某個系統過程的測定,檢驗它能否滿足特定、規定的需求或是弄清未來預期的結果與實際現狀結果之間的異同。軟件測試是保證軟件質量、提高系統軟件可靠性的有效途徑,軟件測試的質量與軟件測試人員的技能、經驗以及對被測軟件的理解密切相關。軟件測試人員要求了解國內外被測技術發展歷程,掌握目前發展動態,運用新技術、新方法、新工具來滿足不斷提高的軟件行業要求,有效提高軟件測試的效率和成果質量,確保軟件測試的質量[1]。通過軟件測試,人們可以將出錯的概率大大降低,提高軟件運行的可靠性,增加人們對軟件產品的信心。
2 ? ?國外軟件測試技術發展現狀
在國際上, 很多發達國家一開始就非常重視軟件測試,例如在IBM,Microsoft等軟件公司開發大型系統時,很多重要軟件項目的開發、測試人員比例能夠達到1∶2甚至1∶4。在軟件測試技術方面,自動化測試系統(Automatic Test System,ATS)正朝著通用化、標準化、網絡化和智能化的方向邁進[2]。自從20世紀90年代以來,自動化軟件測試系統高度重視以綜合通用的工具,如ATS來代替單獨某一系列,并且采用共同的硬件以及平臺實現資源共享。
在我國,由于大多數企業早期對軟件測試不夠重視,很多企業沒有專業軟件測試人員,軟件測試基本由編程人員完成,軟件測試其實就是完成程序員的代碼調試,所以測試技術起步較晚,和國外發達國家有很大差距。隨著我國軟件廣泛應用到各行各業,軟件成為人們日常生活必不可少的一部分,軟件存在缺陷往往對科研和生活帶來重大影響。例如,在2003年5月的某一天,俄羅斯一次載人飛船的飛行試驗,一個小小船導航軟件中的設計錯誤,導致“聯盟—TMA1”載人飛船在返回途中竟然偏離了原來特定降落目標地點約460 km。在我國,一個售票終端設備軟件問題,導致南京地鐵系統全線售檢票系統癱瘓,有大約一萬的乘客因售檢票系統癱瘓受到影響。因此,人們越來越重視軟件質量問題,軟件測試的重要性也被絕大多數企業認可,軟件測試的方式隨之豐富起來,測試工具逐步完善。
3 ? ?常見測試種類以其測試工具
軟件測試的種類很多,從不同角度劃分有不同的種類,總得來說,從測試級別來劃分有:需求分析測試、單元模塊測試、系統集成測試、軟件接口測試、系統性能測試、軟件系統測試、軟件驗收的環境測試。從軟件的測試方法來劃分有:動態軟件測試、靜態軟件測試,黑盒軟件測試、白盒軟件測試、灰盒軟件測試,冒煙軟件測試。軟件測試貫穿整個軟件開發過程,從軟件客戶需求調研開始,一直到軟件部署的環境測試,軟件測試涉及軟件開發的方方面面。下面重點介紹軟件測試常見的方法以及它們對應的測試工具。
3.1 ?白盒測試及其測試工具
白盒測試是對源程序的分析,基于邏輯驅動或代碼的測試。白盒測試指的打開上面的盒子,研究源代碼及其輸出結果。白盒測試工具代表有IBM Rational公司的工具Rational Purify和Compuware公司的自動白盒測試工具DevPartner。
3.2 ?靜態測試及其測試工具
靜態類型的測試工具有Fail Safe測試工具(RA.TIONALPR公司),SQA ROBOT測試工具(Macabe公司)以及Logiscope測試工具(Tele Logic公司),靜態分析工具有McCabe & McCabe Visual Quality ToolSet分析工具(Associates公司),LogiScope分析工具(ViewLog公司),TestWork/Advisor分析工具(Software Research公司),Discover分析工具(Software Emancipation公司),國內有DTS缺陷測試工具(北京郵電大學)等。其中,ViewLog公司開發的Logiscope最為典型杰出,它的輔助工具能支持所有的評審過程。
3.3 ?動態測試及其測試工具
動態測試方法是指通過程序運行,對比運行結果和預期結果,分析程序的正確性和健壯性等性能。常用的動態測試工具有Compuware公司的Dev Partner,Rational公司的Purify以及Numega的Bounce Checker等,動態測試主要用于功能確認、接口測試、覆蓋率分析、性能分析、內存分析等。
3.4 ?黑盒測試及其測試工具
黑盒測試不關心軟件的內部結構,把軟件整體看作一個黑盒子,只看重輸入和輸出數據是否符合預期。黑盒測試是軟件測試最常見的方式,黑盒場景的測試工具有 Rational公司的TeamTest和Compuware公司的QACenter。黑盒測試的代表工具是QACenter, 它可以創建一個快速、可重用的測試過程。
3.5 ?灰盒測試及其測試工具
灰盒測試是介于白盒測試與黑盒測試之間的一種測試,吸取黑盒測試和白盒測試的優點不像白盒測試只關注軟件代碼的內部細節,更關注業務的內部邏輯。通常用一些特定的事情、特殊的標志來判斷軟件內部的結構狀態。灰盒測試大多數用在軟件測試的集成階段,是白盒測試和黑盒測試的有效補充。同時,灰盒測試的工具也包含在白盒測試工具和黑盒測試工具中。
3.6 ?冒煙測試及其測試工具
冒煙測試(smoke testing)據說最早起源于微軟,冒煙測試指開發人員在自己最初成型的軟件上執行簡單的項目測試,確定程序代碼是否正確無誤。冒煙測試顧名思義:測試時間短,一會功夫即可完成測試。冒煙測試過程同時也是對測試用例進行評估的過程,要充分利用這一階段,對前期形成的測試案例進行檢驗,及時對案例進行補充、刪減和修訂,使案例更貼合實際、更具有可執行性[3]。冒煙測試是軟件測試確定以及軟件缺陷的最經濟的方法,通常是軟件代碼開發后對軟件功能完整性的測試。
除此之外,還有性能測試及其測試工具:HP Mercury公司的LoadRunner,Micro Focus公司的QTP,Apache公司的Jmeter以及開源測試工具SoapUI。自動化測試框架工具:Nokia Siemens Networks公司的Robot Framework和網頁模式的自動化功能測試工具Watir等。
4 ? ?軟件測試未來發展趨勢
4.1 ?大數據測試
隨著信息化程度提高,人們日常積累的數據越來越大。大數據測試指對高速產生的海量信息數據進行測試,在測試過程中,測試人員對服務器集群以及其支持類型的組件,要驗證TB級數據,測試重點是性能和功能。此外,還有一個非常重要的關注點是數據的質量,在開始階段需要對數據質量進行驗證,特點在于重點關注數據質量的適用性、有效性、完整性等方面。
4.2 ?軟件測試自動化
傳統人工測試過程需要花費很長的時間,投入很多的成本,很容易受到人為操作失誤的影響,很難獲得良好的效果[4]。另外,現在社會變化迅速、節奏快,要想在激烈的市場競爭中取得優勢,并且保證產品開發能高質量快速完成,自動化測試是必然的選擇。同時,自動化測試有新的特點和趨勢,不是簡單用代碼或測試工具代替人工測試,不同產品有不同的自動化測試技術,不同業務需求對應不同的測試方案。因此,自動化測試可讀性更好,成本更低,且具備高效率和高覆蓋率。
4.3 ?云技術降低軟件測試成本
與傳統軟件測試的環境相比,基于云計算測試平臺和 計算技術的云測試具有效率高、通用性強、處理能力強等諸多優勢,是未來的發展的主要趨勢。云測試平臺支持基于SDN技術的虛擬網絡,實現了第2層和第3層網絡的完全真實模擬以及不同虛擬網絡在第2層網絡下的完全隔離[5]。這種采用虛擬化技術,可以隨著軟件測試任務以及軟件測試環境的變化,快速改變當前軟件系統組織模式及其硬件與軟件結構、網絡拓撲結構,從而很好地提高測試效率,便于軟件測試環境管理。云技術的發展,可推動軟件測試成本的大幅降低,完善軟件測試缺陷。
5 ? ?結語
隨著軟件測試技術的不斷發展以及測試工具的不斷完善,軟件測試變得更加專業化和精細化,不同的軟件架構體系選擇不同測試方式及其測試工具??偟膩碚f,軟件測試低成本化、軟件測試高效率化、軟件測試自動化、軟件測試環境通用化是軟件測試的未來趨勢。
[參考文獻]
[1]肖漢.軟件工程理論與實踐[M].北京:科學出版社,2006.
[2]易敏捷.軟件測試國內外發展現狀及趨勢研究[J].電腦知識與技術,2013(26):6020-6022.
[3]閆峰,宋向暉.冒煙測試淺談[J].信息技術與信息化,2018(10):158-159.
[4]楊麗波.軟件自動化測試方法的發展現狀分析[J].無線互聯科技,2017(4):49-50.
[5]史鵬洲.基于SDN的負載均衡與帶寬控制技術的研究[D].石家莊:河北科技大學,2019.
Abstract:With the development of computer, the application of software technology, software testing methods and tools more and more rich, especially the emergence of cloud testing, software testing has had the fundamental change. In this paper, the situation of software testing, test tools, and the trend of the development of software testing and so on were reviewed in detail, to provide reference for software test related personnel.
Key words:software testing; testing tools; cloud testing; development trend