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