崔國華 張皎丹
[摘 ? ?要]信息技術(shù)軟件在各個行業(yè)中應(yīng)用,包括軍事領(lǐng)域、公共交通、電子電器、互聯(lián)網(wǎng)IT等領(lǐng)域,軟件方便了人們的生活,提升人們的生活品質(zhì)。但軟件數(shù)量過多時,每個軟件的質(zhì)量無法確定,還需通過軟件測試分析軟件開發(fā)質(zhì)量,及時找到軟件漏洞,通過自動化測試方法可快速獲得數(shù)據(jù),對結(jié)果進(jìn)行分析,幫助開發(fā)人員解決軟件問題,提升軟件使用范圍及用戶體驗感。
[關(guān)鍵詞]軟件;自動化測試;測試技術(shù)
[中圖分類號]TP311.52 [文獻(xiàn)標(biāo)志碼]A [文章編號]2095–6487(2022)03–0–03
Research and Application of Software Automation Testing Method
Cui Guo-hua,Zhang Jiao-dan
[Abstract]Information technology software is applied in various industries, including military field, public transportation, electronic appliances, Internet IT and other fields. Software facilitates people's life and improves people's quality of life. However, when the number of software is too large, the quality of each software cannot be determined. It is necessary to analyze the software development quality through software testing and find software vulnerabilities in time. Through automated testing methods, data can be quickly obtained, and the results can be analyzed to help developers solve software problems. Improve the scope of software use and user experience.
[Keywords]software; automated testing; testing technology
全球計算機技術(shù)高速發(fā)展,各個行業(yè)均普遍使用軟件技術(shù),軟件在使用過程中性能質(zhì)量是軟件有效應(yīng)用的關(guān)鍵。軟件種類及數(shù)量較多且開發(fā)難度大,為測試人員工作帶來巨大的挑戰(zhàn)。部分中小型企業(yè)軟件測試力量不足,軟件測試人才數(shù)量不多,無法對開發(fā)的軟件進(jìn)行測試。短時間開發(fā)高質(zhì)量軟件具有必要性,軟件測試是整個開發(fā)環(huán)節(jié)中的重點,貫穿整個軟件開發(fā)周期。伴隨軟件底層算法更加復(fù)雜,軟件結(jié)構(gòu)也不斷豐富,傳統(tǒng)測試技術(shù)無法滿足新軟件產(chǎn)品需求,市場上開發(fā)的軟件需要盡快投入市場,導(dǎo)致測試過程及結(jié)果可能出現(xiàn)遺漏,軟件測試的整體有效性不足。對此,采取新型軟件測試技術(shù),開發(fā)軟件自動化測試功能,有利于高質(zhì)量完成軟件測試目標(biāo),使軟件產(chǎn)品盡快進(jìn)入市場。
1 軟件自動化測試的意義
企業(yè)開發(fā)軟件產(chǎn)品過程中,在設(shè)計功能時思考用戶需求及產(chǎn)品可靠性,開發(fā)人員技術(shù)水平存在差異,容易導(dǎo)致軟件開發(fā)存在疏漏,軟件測試的重要性隨之凸顯。軟件測試可協(xié)助軟件開發(fā)人員發(fā)現(xiàn)軟件的漏洞,包括代碼Bug及功能問題、實際運行困境。在軟件測試技術(shù)的干預(yù)下,及時將軟件故障排除,保證軟件穩(wěn)定及健康的運行。在軟件測試技術(shù)發(fā)展中,相比人工測試方法,自動化軟件測試有利于提升測試的整體效率。企業(yè)常見的測試方式是自動化結(jié)合人工測試,并非是單純的自動化測試,這種方式也在一定程度上體現(xiàn)了自動化測試技術(shù),雖然具有較大的優(yōu)勢,但不能完全消除軟件問題,通過人為測試有利于補充自動化測試的缺陷。自動化技術(shù)在一次檢測后,可基本找到軟件問題,人工針對問題進(jìn)行二次測試,隨后提出解決問題的方案,降低整體檢測成本,提升軟件測試工作效率。
2 自動化軟件測試技術(shù)的分類
2.1 功能驅(qū)動下的自動化測試技術(shù)
該技術(shù)將獨立項目劃分多個模塊,劃分的子模塊作為單獨測試的載體,與其他模塊分離,測試人員以此完成單獨模塊測試,數(shù)據(jù)及函數(shù)均與原本項目一致。在這種功能分區(qū)基礎(chǔ)上,測試人員便于維護(hù)及快速測試,工作效率進(jìn)一步提升。
2.2 關(guān)鍵字驅(qū)動自動化測試技術(shù)
該技術(shù)相比其他測試技術(shù),關(guān)注邏輯界面,在測試過程中屬于比較抽象的測試方法,對腳本進(jìn)行抽象化處理,便于測試人員關(guān)注軟件邏輯功能,無需關(guān)注代碼,降低測試整體難度,在測試過程中也便于更改。關(guān)鍵字與數(shù)據(jù)建立聯(lián)系后,測試過程中將測試的腳本與數(shù)據(jù)分開,在具體場景及細(xì)節(jié)上進(jìn)行相關(guān)描述,整個測試過程更為抽象。
2.3 數(shù)據(jù)驅(qū)動自動化測試技術(shù)
在該技術(shù)中將被檢測的數(shù)據(jù)與測試腳本分離,被檢測的數(shù)據(jù)以多種形式儲存,將期望值及輸入值等記錄列表,每次讀取數(shù)據(jù)時不會產(chǎn)生遺漏。優(yōu)于測試腳本與數(shù)據(jù)分離,其本身具有儲存數(shù)據(jù)信息標(biāo)記,腳本也可完成獨立測試,保持自動化測試的穩(wěn)定性。在測試過程中劃分不同模塊,測試人員維護(hù)較為便利,便于測試人員創(chuàng)新測試方式。數(shù)據(jù)驅(qū)動的自動化測試技術(shù)也存在缺陷,主要體現(xiàn)在軟件兼容性上,同一測試腳本可在不同軟件中應(yīng)用,需有效進(jìn)行改動,整體測試成本隨之增高。
2.4 指令驅(qū)動自動化測試技術(shù)
該測試技術(shù)在驅(qū)動數(shù)據(jù)的基礎(chǔ)上發(fā)展,通過響鈴可驅(qū)動系統(tǒng),快捷完成測試。相比數(shù)據(jù)驅(qū)動測試方法,指令驅(qū)動方式無需單純儲存數(shù)據(jù),而是將數(shù)據(jù)存放在指令中,該方法在一定程度上提升了測試效率。
2.5 錄制回放
該技術(shù)是建立在腳本寫法的基礎(chǔ)上,原理是將書寫的腳本錄制及回放,腳本對軟件功能進(jìn)行模擬,軟件用戶完成對應(yīng)的操作,該技術(shù)無需過多的技巧,整體架構(gòu)穩(wěn)定性不足,已經(jīng)逐漸不在軟件測試中應(yīng)用,屬于軟件早期自動化測試技術(shù)。
2.6 獨立測試腳本
線性腳本難度低,本身可使用不同語言,編程后完成交互測試,測試過程相對便捷,但也存在比較明顯的缺陷,系統(tǒng)及腳本屬于綁定方式,受到腳本影響會增加測試人員的工作難度及浪費更多的測試成本,維護(hù)費用較高,適合中小型企業(yè)的軟件測試項目。結(jié)構(gòu)化腳本是難度較高的測試方式,其中包括大量的結(jié)構(gòu)化內(nèi)容,如函數(shù)、循環(huán)等,對邏輯性及穩(wěn)定性要
求高。
3 軟件測試技術(shù)應(yīng)用的誤區(qū)
軟件自動化測試技術(shù)可提升軟件測試效率,在實踐過程中也存在誤區(qū),對常見誤區(qū)進(jìn)行分析,為軟件測試技術(shù)的有效應(yīng)用提供幫助。
(1)軟件自動化測試完全取代軟件測試:軟件測試是先進(jìn)行人為操作,操作開始后,對軟件進(jìn)行檢測,根據(jù)操作結(jié)果判斷軟件性能。目前的自動化檢測技術(shù)還無法完成全程檢測,依舊需要人類的大腦進(jìn)行判斷,對此,無法在全部情景中使用自動化軟件測試技術(shù),自動化測試技術(shù)也無法全面替代手工檢測。
(2)對軟件易用性進(jìn)行判斷:軟件自動化測試技術(shù)屬于1種工具,這種工具往往不具備審美能力及情感意識,對軟件界面的美觀性及整潔性也無法有效判斷,對此,在軟件易用性上無法完全依靠自動化測試技術(shù),還需人的主觀意識進(jìn)行判斷。
(3)只要使用自動化軟件測試技術(shù)便能縮減檢測時間,保證檢測質(zhì)量:軟件在自動化檢測前,會耗費一定的時間及精力構(gòu)建測試環(huán)境,錄制運行腳本及建立數(shù)據(jù)表格,相比傳統(tǒng)手工檢測方式,自動化測試軟件往往需要耗費5~10倍的研發(fā)時間。對規(guī)模小、功能單一的軟件,使用自動化測試技術(shù)往往適得其反,測試時間不斷延長,測試效率也無法提升。自動化測試工具需要具有圖形界面,對測試人員的能力要求不高,以技術(shù)目前的發(fā)展情況來看,自動化測試技術(shù)并非是萬能的,若想建立有效的自動化測試腳本,工作人員應(yīng)當(dāng)掌握腳本語言,并快速進(jìn)行編輯。面對上述誤區(qū),還需引起足夠的重視,從而認(rèn)識到自動化測試的優(yōu)勢及劣勢,避免在測試過程中走入誤區(qū)。
4 自動化軟件測試技術(shù)的使用條件及場景
4.1 使用條件
自動化軟件測試工具包括功能測試工具及負(fù)載壓力測試工具、測試輔助工具等。根據(jù)軟件開發(fā)的功能需求,自動化測試的關(guān)鍵便是對功能需求進(jìn)行自動化檢測,若功能經(jīng)常變動,檢測的意義不大,也會出現(xiàn)其他的功能性漏洞。自動化在一輪測試中體現(xiàn),在腳本重復(fù)利用過程中,也能縮減成本,針對長期開發(fā)的軟件項目,自動化技術(shù)應(yīng)用效果明顯,短期項目以人工檢測即可,主要是測試軟件自編寫到應(yīng)用需要耗費大量的人力、物力等成本。
在定制類軟件測試過程中,此類軟件均是基于客戶需求開發(fā)的軟件,此類軟件需要設(shè)置針對性的測試方法,維護(hù)基本上由客戶負(fù)責(zé),運行環(huán)境及程序語言也由客戶確定,企業(yè)針對此類軟件的項目經(jīng)驗少,在測試軟件開發(fā)中,自動化測試技術(shù)的應(yīng)用效率不高。
(1)針對短期項目,軟件工程開發(fā)時間短暫,測試時間有限,針對該問題,不建議耗費大量的時間進(jìn)行檢測,即便有時間及精力構(gòu)建測試環(huán)境及設(shè)計測試腳本,但依舊會出現(xiàn)腳本利用率不高的問題,導(dǎo)致軟件自動化測試技術(shù)性價比不高。
(2)針對運行規(guī)則較為復(fù)雜的產(chǎn)品,對軟件測試系統(tǒng)的復(fù)雜性要求較高,人工檢測是主要檢測方法,自動化測試技術(shù)往往無法設(shè)計相關(guān)腳本。
(3)針對運行次數(shù)不多的軟件,通過自動化技術(shù)檢測可能導(dǎo)致資源浪費。對此,在自動化測試軟件應(yīng)用前,應(yīng)當(dāng)掌握軟件適合場景,根據(jù)軟件適合場景合理使用自動化測試軟件。
4.2 自動化軟件測試技術(shù)的應(yīng)用場景
4.2.1 Linux GUI自動化測試
Linux自動化測試以開源軟件為主,屬于關(guān)鍵詞驅(qū)動方法,GUI測試中關(guān)注圖形界面測試,對軟件窗口及界面圖標(biāo)、指示設(shè)備進(jìn)行測試,均能見到良好的測試效果。
4.2.2 Python CLI自動化測試
CLI測試模型關(guān)注命令協(xié)議及命令集構(gòu),測試的基本原理是將用戶操作指令作為驅(qū)動端,經(jīng)終端將命令發(fā)布,通過遠(yuǎn)程通信協(xié)議提示服務(wù)器進(jìn)入運行階段,終端對服務(wù)器進(jìn)行驅(qū)動,通過命令集解析用戶要求。在測試過程中,需選擇合理化的測試框架,最終完成總結(jié)及整合。
4.2.3 云端軟件測試技術(shù)
在云服務(wù)器及云計算技術(shù)發(fā)展下,軟件平臺架構(gòu)發(fā)生變化,自本地及實體服務(wù)器過渡到云端服務(wù)器,對軟件進(jìn)行測試,達(dá)到理想的測試效果,及時發(fā)現(xiàn)軟件漏洞。云服務(wù)器有利于對資源進(jìn)行整合及共享,測試人員可充分利用云平臺測試軟件,提升軟件測試的整體效率。云端軟件測試技術(shù)的優(yōu)勢明顯,但實際應(yīng)用中也面較多的困難,還需要進(jìn)一步改進(jìn)。
4.2.4 Selenium為框架的自動化測試工具
在工具庫中選擇等待檢測的模塊作為行為參數(shù),匹配對應(yīng)的數(shù)據(jù),生成測試用例,隨后組成自動化測試腳本,配置測試工具相關(guān)參數(shù),對測試程序進(jìn)行調(diào)整,對測試結(jié)果進(jìn)行輸出及對問題進(jìn)行調(diào)試,完成自動化測試。在腳本語言上,可供選擇的腳本語言較多,常見的腳本語言是python及Java,其中,廣泛使用的腳本語言是Java,在各個領(lǐng)域的軟件開發(fā)上,Java均是主流選擇。Python作為1種簡單易學(xué)的編程語言,在數(shù)據(jù)分析及Web開發(fā)上使用率高,人工智能及自動化測試上也略有涉及。Python方便靈活,測試可根據(jù)用戶的需求快速調(diào)整,測試效率較高。Selenium作為自動化測試的主要工具,相比其他自動化測試工具優(yōu)勢較為明顯,支持多腳本語言及平臺,可收集各類開發(fā)平臺,具有移動測試的優(yōu)勢,可安插各類插件,對軟件檢測效果顯著。
4.2.5 robot Framework框架的自動化測試技術(shù)
該技術(shù)作為Python創(chuàng)建的自動化測試框架,支持多個客戶及多個接口同步測試,具有較高的拓展性。通過關(guān)鍵字進(jìn)行驅(qū)動,測試效率高,難度較低,在測試行業(yè)應(yīng)用范圍廣。robot Framework框架通過Txt文件保存測試用例,使用符號完成分隔,適用于不同的編輯軟件。測試設(shè)計用例過程中,應(yīng)當(dāng)根據(jù)用戶需求進(jìn)行調(diào)整,robot Framework框架可使用循環(huán)語句,測試用例具有廣泛性及實用性。對測試用例進(jìn)行標(biāo)簽分類,分類方式較為便利。robot Framework框架可提供數(shù)據(jù)支持驅(qū)動及關(guān)鍵字驅(qū)動等多種驅(qū)動模式。在關(guān)鍵字調(diào)用時,將關(guān)鍵字轉(zhuǎn)變?yōu)榛A(chǔ)字號,便于創(chuàng)建更為復(fù)雜的測試用例。robot Framework框架生成的測試報告一般是html文件格式,便于測試人員閱讀及查找問題。robot Framework框架具有監(jiān)聽接口,用戶自行測試過程中,可自定義用例的前置條件及后置條件,與其他測試工具相比,可完成整個測試過程的監(jiān)測。
比如,在電力營銷系統(tǒng)開發(fā)過程中,其中含有豐富的系統(tǒng)功能,功能結(jié)構(gòu)具有相似性,為便于大眾使用瀏覽器,系統(tǒng)具有兼容性。單純手工進(jìn)行測試,需要大量的重復(fù)性操作,費時費力且耗費資金,針對長期的測試項目,也容易發(fā)生遺漏,為保證測試的覆蓋面積,針對軟件功能設(shè)置robot Framework框架的自動化測試軟件,有利于快速檢測軟件性能。
5 軟件自動化測試技術(shù)的發(fā)展趨勢
自動化測試技術(shù)的優(yōu)勢是提升測試效果,保證測試結(jié)果的準(zhǔn)確性,減輕測試人員的工作壓力。軟件測試中,應(yīng)當(dāng)結(jié)合軟件開發(fā)情況,提升軟件開發(fā)人員的專業(yè)技術(shù)水平,對軟件結(jié)構(gòu)進(jìn)行優(yōu)化,進(jìn)一步提升軟件性能,促進(jìn)軟件自動化技術(shù)高速發(fā)展。軟件開發(fā)與測試工作緊密結(jié)合,提升代碼可測試性,通過模塊設(shè)計及高聚內(nèi)封裝設(shè)計方法,確保自動化測試軟件的開發(fā)質(zhì)量。
在軟件測試技術(shù)發(fā)展中,應(yīng)當(dāng)完善測試標(biāo)準(zhǔn),在標(biāo)準(zhǔn)化及規(guī)范化的原則,不影響軟件基本性能的基礎(chǔ)上,將易測試?yán)砟顫B透到軟件設(shè)計中,進(jìn)一步提升軟件測試的規(guī)范性。
現(xiàn)階段,計算機信息技術(shù)不斷發(fā)展,測試技術(shù)性能不斷提升,逐漸朝向成熟的方向進(jìn)展,呈現(xiàn)出多態(tài)性及封裝性的趨勢,還需不斷開發(fā)全新的自動化測試技術(shù),包括云計算測試方法及冒煙測試方法等。為保證測試的實際效果,未來的軟件測試技術(shù)應(yīng)當(dāng)不斷拓展測試范圍,關(guān)注數(shù)據(jù)測試工作,將數(shù)據(jù)測試貫穿到整個軟件開發(fā)過程中,做好預(yù)防及處理工作,規(guī)避測試工作的缺陷,節(jié)約成本的同時,提升測試軟件整體收益。
6 結(jié)束語
在軟件開發(fā)過程中,測試人員應(yīng)當(dāng)對軟件性能進(jìn)行分析,通過人工檢測及自動化檢測方法,找到軟件開發(fā)的問題,提升軟件開發(fā)質(zhì)量。相比傳統(tǒng)測試中的問題,應(yīng)當(dāng)進(jìn)一步拓展測試范圍,使用先進(jìn)的測試技術(shù),進(jìn)一步規(guī)范測試標(biāo)準(zhǔn),保證測試結(jié)果的準(zhǔn)確性。現(xiàn)階段,我國軟件公司應(yīng)加強團(tuán)隊建設(shè),關(guān)注軟件測試隊伍,尤其是開發(fā)自動化測試軟件,新型測試技術(shù)可滿足軟件測試要求,減少人工檢測的弊端,減輕企業(yè)面臨的測試成本。現(xiàn)階段,大數(shù)據(jù)及云計算技術(shù)發(fā)展,企業(yè)應(yīng)當(dāng)積極開發(fā)自動化測試軟件,對軟件功能進(jìn)行優(yōu)化,從而準(zhǔn)確測試軟件功能,開發(fā)滿足人們需求的高質(zhì)量軟件。
參考文獻(xiàn)
[1] 冷知見.軟件自動化測試方法的研究與應(yīng)用[D].武漢:武漢理工大學(xué),2011.