戎陽楓,王彪,李珂冉
國家電網(wǎng)有限公司客戶服務中心,天津,300304
在現(xiàn)代社會發(fā)展中,我國軟件測試技術手段還處于初級階段,在軟件測試的全過程中,制定測試計劃、確定測試步驟、問題跟蹤處理、測試結(jié)果分析等階段都存在一定問題,因此軟件測試過程的質(zhì)量檢查和應用評估比較困難。現(xiàn)如今,國內(nèi)大部分計算機系統(tǒng)都屬于分布式計算環(huán)境,會將客戶機/服務器看作計算模式,利用Windows、Unix操作系統(tǒng)和Sybase、Oracle數(shù)據(jù)庫進行測試分析,在操作期間,會選擇多種測試技術和應用工具,而數(shù)據(jù)采集和管理評估難度較高。面對不斷提高的信息技術水平,我國學者在了解現(xiàn)有軟件測試狀況和國外軟件測試管理產(chǎn)品后,提出基于人工智能模型進行優(yōu)化創(chuàng)新,以此解決傳統(tǒng)軟件自動化測試方法和系統(tǒng)應用存在的問題,真正滿足分布式環(huán)境下的軟件測試需求。
人工智能是指研究開發(fā)用于模擬、延伸和拓展人類智能的理論、方法、技術以及應用系統(tǒng),是現(xiàn)代社會發(fā)展的一門新興技術科學,研究內(nèi)容包含了專家系統(tǒng)、圖像識別、語言識別、機器人、自然語言處理等。這項概念最早出現(xiàn)在1956年的Dartmouth學會中,在此之后各國學者通過實踐研究逐漸擴展了人工智能的概念。隨著時代發(fā)展和技術進步,人工智能這門科學的具體目標也隨著時代發(fā)展產(chǎn)生了變化。
從本質(zhì)上講,軟件測試自動化管理就是利用計算機操作取代人工檢測,嚴格按照軟件規(guī)程進行檢測分析,重點研究測試結(jié)果和預想結(jié)果,以此發(fā)現(xiàn)軟件本身存在的不足并有效完善[1]。在計算機技術飛速發(fā)展中,市場中的軟件應用變得越發(fā)復雜,但大部分軟件在使用之前都是由公司投入資金研發(fā)出來的,所以為了保障產(chǎn)品可以正常運行,公司往往會進行軟件測試,這就催生了軟件測試管理系統(tǒng)?,F(xiàn)如今,我國在政策、資金等方面大力支持計算機行業(yè)的專業(yè)人員發(fā)表軟件測試自動化系統(tǒng)應用的研究成果。
第一,提高測試工作的全面性。由于部分功能比較完善的軟件項目在發(fā)布新版本時,很多功能和整體界面與上一版本基本一致,所以要利用自動化測試系統(tǒng)全面分析,以此確保新版本的系統(tǒng)功能可以正常運行。第二,提高測試工作效率,減少成本支出。在項目研究測試期間,需要大量的時間和人力進行重復性測試分析,而自動化測試系統(tǒng)可以有效解決這一問題,避免工作人員進行大量重復操作,有效提高項目測試的工作效率。第三,軟件自動化測試具有可重復性和一致性。由于軟件測試是一項操作復雜且重復性較高的任務,而自動化測試系統(tǒng)可以利用自動化工具取代原本的人工處理模式,且每次測試研究都呈現(xiàn)出一致性的特征,這在傳統(tǒng)手工測試操作中難以實現(xiàn)。第四,有效利用各項資源。如果自動化測試分析處在理想狀態(tài)下,那么整個過程將會按照預期設定計劃自動運行,員工在工作之余也可以自主完成相關測試,不會過度浪費企業(yè)的機器資源[2]。
針對目前軟件測試面臨的問題,有學者在構(gòu)建軟件自動化測試平臺時,提出了如圖1所示的框架。
圖1 軟件自動化測試框架結(jié)構(gòu)圖
結(jié)合圖1分析可知,整體框架分為兩部分內(nèi)容:一部分是指在服務器中運行的軟件測試自動化管理系統(tǒng),另一部分是指在客戶端有序完成自動化測試腳本。在工作狀態(tài)下,整體平臺需要客戶端和服務端共同發(fā)揮作用,只有這樣才能建立平臺數(shù)據(jù)庫。如果對整體平臺架構(gòu)進行細分處理,那么可以得到三部分內(nèi)容。首先,自動化Web管理系統(tǒng)。這一系統(tǒng)設計包含了環(huán)境配置、任務管理、測試管理三個功能模塊,方便工作人員管理自動化測試運行期間的各項數(shù)據(jù),屬于平臺的數(shù)據(jù)展示中心。其次,測試腳本。這一模塊包含了測試框架和測試需求,它不僅可以基于Sekenium框架進行API調(diào)用,還可以真正實現(xiàn)統(tǒng)一化編寫目標。最后,任務執(zhí)行工具。這一模塊是指客戶端運行期間的代理依據(jù),需要認真監(jiān)聽系統(tǒng)用戶傳遞給測試機器的主要任務,而后將測試腳本下載傳遞到客戶機中,利用工具執(zhí)行測試腳本,將生產(chǎn)的測試結(jié)果儲存到數(shù)據(jù)庫中[3]。
為了科學處理當前測試腳本面臨的問題,本文研究利用Sekenium框架進行處理,確保測試框架可以有效支撐測試腳本的開發(fā)編寫過程,最終得到面向?qū)ο蠓謱蛹夹g的有效框架。因此,以Sekenium框架為核心的軟件自動化測試系統(tǒng)需求主要體現(xiàn)在以下幾點。首先,始終遵循分離的工作原則。對于測試框架和業(yè)務測試而言,利用分離原則進行設計操作,不會影響整體實驗分析,能讓用戶操作變得更加自由。其次,積極體現(xiàn)測試框架的可維護性。由于測試系統(tǒng)和操作業(yè)務具有多樣性的特征,所以要設計呈現(xiàn)容易擴展的測試框架,方便工作人員在后續(xù)操作中增添全新的測試模塊,確保測試框架容易操作和應用。整體框架設計是為了降低測試人員的工作壓力,因此要保障框架結(jié)構(gòu)和應用功能具有易用性特征,以此簡化軟件測試的全過程。
結(jié)合如圖2所示的框架流程圖分析可知,CtripTest是基于Sekenium框架進行二次開發(fā),整體內(nèi)容屬于軟件自動化測試平臺的核心依據(jù)。
圖2 Sekenium 框架流程圖
結(jié)合圖2分析可知,CtripTest框架設計內(nèi)容主要體現(xiàn)在以下幾點。首先,UI層設計。這項內(nèi)容作為測試框架的最頂層,代表測試目標和測試頁面的主要元素和對象封裝。在這一過程中,工作人員主要思考如何有效管理頁面及其相關元素,如何運用Page0bject概念完成UI層設計。從本質(zhì)上講,Page0bject是指將測試頁面及相關步驟封裝在每個對象中,把page看作基本單位實現(xiàn)有效管理。從應用角度來看,在某個頁面元素發(fā)生改變的情況下,只需要調(diào)整頁面對應的元素控制,就能有效修改腳本。其次,數(shù)據(jù)配置層設計。這項內(nèi)容主要用來為業(yè)務邏輯層提供測試數(shù)據(jù)。按照不同情況下的數(shù)據(jù)應用途徑分析可知,這一層次設計包含兩項內(nèi)容,一方面是指由測試邏輯所需數(shù)據(jù)構(gòu)成的測試data層,另一方面是指由測試環(huán)境配置所需數(shù)據(jù)構(gòu)成的configurtion層[4]。為了將數(shù)據(jù)從業(yè)務邏輯層分離出來,在系統(tǒng)設計時要利用數(shù)據(jù)驅(qū)動的測試框架結(jié)構(gòu)處理,這能有效分裝并單獨儲存。在需要添加權(quán)限的測試數(shù)據(jù)時,要根據(jù)對象形式增添測試記錄,以此利用腳本完成軟件測試分析。再次,業(yè)務邏輯Test層設計。這一層次包含了所有測試用例集合,工作人員能在調(diào)用UI層和Test層的數(shù)據(jù)實例后進行結(jié)果驗證。最后,TestLibaries層設計。這一層次設計包含了內(nèi)容加載、環(huán)境配置、打印級別、屬性定義等多項功能,能有效傳入不同測試配置,返回相應的實例化對象,以此為測試調(diào)用提供有效依據(jù)。結(jié)合現(xiàn)有軟件自動化測試系統(tǒng)應用情況來看,面向?qū)ο笏枷敕謱釉O計的自動化測試平臺框架是整體系統(tǒng)運行的核心,它融合了腳本的模塊化、數(shù)據(jù)驅(qū)動框架、測試庫架構(gòu)三種框架思維,全面提高了測試工作效率,加快了測試腳本開發(fā)步伐。
為了保障軟件自動化測試管理系統(tǒng)功能達到預期要求,本文在分析系統(tǒng)結(jié)構(gòu)設計后,利用黑盒測試方法驗證自動化管理系統(tǒng)是否達到目標,比如測試機是否可以正常管理、測試用例是否可以正常同步等。在實驗過程中收集了大約八百多條手動測試用例,利用自動化測試系統(tǒng)進行檢測分析,具體操作流程如圖3所示。
圖3 軟件自動化測試流程
按照圖3所示的流程進行操作分析可知,本文研究提出的自動化測試平臺具有以下優(yōu)勢:首先,基于軟件自動化測試框架編寫和驗證UI層的自動化腳本,能在其內(nèi)部形成良好的工作氛圍,避免在實驗操作期間出現(xiàn)不必要的難題;其次,在收集到八百多個功能測試用例后,有將近一半的測試用例會被傳遞到管理平臺中,這樣進一步提高了回歸測試自動化的比例;再次,隨著自動化測試腳本的不斷增加,工作人員在使用自動化管理平臺時面臨的問題越來越少,相比傳統(tǒng)人工執(zhí)行操作更加便捷有效;最后,從軟件發(fā)布到軟件生產(chǎn)的全過程角度來看,通常要完成測試環(huán)境、UAT環(huán)境、壁壘環(huán)境等方面的驗證分析,只有全面符合要求才能推廣到市場中[5]。在提出以人工智能模型為核心的軟件自動化測試系統(tǒng)后,重復性回歸測試用例可以在自動化平臺中運行,系統(tǒng)功能可以盡快發(fā)現(xiàn)手工測試忽略的問題,為提高線上發(fā)布質(zhì)量奠定了基礎。
如今,面對持續(xù)提高的國內(nèi)產(chǎn)品功能業(yè)務需求,大部分軟件公司逐漸轉(zhuǎn)變了傳統(tǒng)手工測試工作思維,開始利用自動化測試方案優(yōu)化創(chuàng)新,更會結(jié)合自身企業(yè)的實際情況開展自動化測試框架和應用技術的研發(fā)活動,這為我國自動化測試發(fā)展創(chuàng)建了良好的開端[6]。雖然基于人工智能模型的軟件自動化測試系統(tǒng)已經(jīng)發(fā)揮了重要作用,但也要結(jié)合時代發(fā)展要求繼續(xù)探索分析。首先,本文研究系統(tǒng)是基于Windows環(huán)境形成操作的,所以只支持相應平臺提出的自動化測試用例。但在社會經(jīng)濟和科學技術飛速發(fā)展的背景下,各國學者要綜合考慮其他開發(fā)平臺,以此保障系統(tǒng)應用具有通用性。其次,分析問題方式有待改進。雖然測試結(jié)果分析模塊中呈現(xiàn)了測試步驟,但只有比較了解的工作人員才能有效操作,這必然會增加測試用例開發(fā)的難度。因此,未來學者要在改進優(yōu)化中提高可讀性描述,方便直接呈現(xiàn)給項目中的所有成員查看處理。最后,系統(tǒng)缺陷管理問題。被測試系統(tǒng)缺陷無法儲存到其他模塊中,只能被系統(tǒng)管理,因此未來要在集中管控自動化系統(tǒng)bug的基礎上,綜合運用目前測試管理工具,以此保障測試bug相互連接。除了上述內(nèi)容外,還要重視軟件測試領域的人才培養(yǎng),逐步完善現(xiàn)有測試框架和應用界面。
綜上所述,在社會經(jīng)濟和科學技術飛速發(fā)展中,目前網(wǎng)絡技術幾乎覆蓋到每家每戶,人們對網(wǎng)絡技術軟件的依賴性越來越高,因此,如何保障軟件應用的安全性能是目前科技領域?qū)W者探究的核心問題。雖然目前我國軟件測試市場并不成熟,企業(yè)專家掌握的理論知識和研究成果不多,但隨著計算機技術的進一步升溫,各領域?qū)W者共同合作,未來必然可以研發(fā)出安全有效的軟件自動化測試系統(tǒng)及應用方法。