文/張藍圖
現階段各類網絡軟件的出現導致軟件使用者對軟件質量提出了更高要求,故為了滿足社會群眾的要求,現階段的軟件測試方法也不斷革新、研發,通過對軟件質量和性能的全面、高速測試,以便根據測試結果對已完成的軟件進行針對性的優化。而傳統的人工測試方法,其效率與準確性都已難以滿足現代社會的相關要求,故自動化測試方法已逐漸成為現代軟件測試中新的研究課題。
自動化測試就是將以人為基礎的傳統測試革新為以執行機器為核心的新型測試工作。通常情況下,在完成對測試工作的設計后,還應經由一定的審核、評價,再通過測試人員按照相關設計執行測試并獲取到測試結果。而自動化測試即是將這一過程改為應用各類軟件、設備等按照預先設置的內容進行測試,并經由相關程序實現對測試結果的自動化評價,從而在確保測試準確性、科學性的基礎上,還能提高測試效率。通常來說,軟件自動化測試常會分為軟件需求、測試計劃、測試設計、執行測試、缺陷處理與測試總結等環節。并且為了滿足制作者對軟件、程序高效率和低成本的要求,在實際測試時常需要進行多次的重復測試。故為了提高軟件測試效率,軟件自動化測試的重要性逐漸提高,現階段的軟件自動化測試方法、程序等也不斷豐富,由此現階段的軟件自動化測試也逐漸擁有了更廣泛的應用空間。但相關測試人員也應明確,現階段的軟件自動化測試仍未達到完全的自動化測試模式,在測試過程仍需要一定的人工操作,現階段的軟件自動化測試中其自動化程度通常占整個測試流程的50%左右,而若自動化過高,相關測試程序、設施的維護成本將大大提高。
現階段的軟件自動化測試方法常會根據主要操作模式分為腳本編寫、錄制回放、數據驅動和關鍵字驅動四個主要方法。在腳本編寫的測試方法中,通常需要測試人員先對軟件及其中各模塊的功能進行探索,還需要相關設計人員對軟件實際功能與軟件說明進行對照,而后再以此為基礎編寫軟件測試的腳本。經由采用腳本對軟件進行自動化測試,故該方法往往具備較高的準確性及良好的靈活性,但由于腳本編寫過程常會耗費大量的人力資源且大部分的腳本程序往往難以重復利用,致使該方法的軟件測試成本較高。而錄制回放方法則與腳本編寫方法類似,錄制回放法是以編寫的錄制回放腳本為基礎,通過腳本對用戶操作記憶的模擬、復現功能,從而實現對軟件的自動化重復測試,經由該方法往往能夠滿足最基本的測試要求。該方法通常具備較強的操作性,并被廣泛應用于低成本的軟件開發中。但由于該方法所編寫的腳本邏輯性、功能性較為單一,故受腳本重復利用性較差的影響,應用錄制回放法時常會造成大量冗余。至于數據驅動方法則是以相關變量的參數化為基礎,通過將測試數據記錄于測試腳本中,從而使文件數據與腳本數據相對應,由此在測試腳本與測試數據相分離后,其測試腳本仍能重復利用。故該方法的測試腳本往往能夠擁有較高的靈活性和較全面的測試內容,但在將測試腳本應用于不同軟件時,仍需要相關測試人員針對該腳本進行一定修改,而這就在一定程度上提升了該方法的應用成本。關鍵字驅動方法是以數據驅動測試技術為基礎,經由一定的改進、革新而創建。在應用該方法時,通常需要相關人員先根據關鍵字、方法與函數等創建關鍵字框架,再以此為基礎建立起函數庫,從而通過對關鍵字的讀取與對測試項目的調用等實現軟件的自動化測試。由于該方法在數據驅動法的基礎上開發了以關鍵字為核心的數據庫、數據表,并以此成為獨立測試的自動化工具,故該方法往往擁有更強的靈活性,能夠廣泛應用于軟件測試的各環節中。
而雖然現階段軟件自動化測試方法較為多樣,但測試人員的操作仍在很大程度上決定了測試結果的準確性與高效性。尤其在面對軟件設計時間要求較短的情況下,自動化測試中重要的腳本研發環節更是會出現時間短缺的情況,由此自動化測試也難以開展,這就需要相關人員針對所需測試的軟件,通過采用手動測試加以可重復使用的自動化腳本進行輔助,由此實現軟件的測試。綜上,在應用自動化測試技術前,相關人員就應當對軟件測試能否應用自動化測試方法進行一定辨別,在確定軟件需求變動不頻繁且項目周期較長的情況下,才能利用相關腳本展開自動化的測試工作。
Linux GUI自動化測試是以現階段Linux自動化測試的開源軟件為核心,該測試法屬于關鍵字驅動方法中的一種。而GUI測試則是一種軟件測試類型,其測試對象主要是以圖形界面為主的相關軟件,其中的具體測試元素則為軟件窗口、界面圖標、軟件菜單與指示設備。Linux GUI自動化測試法的原理是由多個關鍵字進行驅動,通過分層的結構框架,從而實現各功能的同時進行,并能經由該方法中低層向高層提供服務的模式,以達到高效化的自動測試工作。在實際應用Linux GUI自動化測試法時,測試人員的主要任務即是對軟件功能、集成、性能、穩定性等方面進行測試,以及對軟件各單元、組件的功能進行測試。在對軟件功能、集成的測試中,通常需要對軟件中各類組件的不同集成進行驗證,并通過將邊緣測試進行合并從而建設出多種類的錯誤處理測試。而軟件性能測試中則涵蓋有壓力測試、負載測試與并發測試三種類型,該自動化測試環節中往往需要極高密度的測試工作,故手工測試方式常無法滿足該環節的測試需求。而針對軟件穩定性的測試則主要是測試軟件在長時間、大容量等條件下的運行可靠性,經由相關條件的模擬從而測試出軟件的研發成熟性與實際應用性能。而在對軟件單元、組件進行功能測試時,由于相關的測試單元較為繁雜,故這一測試環節中通常會針對最小測試單元進行測試,而即便如此該環節中也同樣存在著較為復雜的測試內容。通常LinuxGUI的自動測試法還會分為通用功能與非通用功能測試兩類,通用功能測試即是對被測試軟件中的控件功能進行測試,從而實現對軟件中最小測試單元的性能測試,而非通用功能測試則是根據軟件中不同控件使用時的執行順序為基,由此生成不同的測試序列,以便Linux GUI控件能夠自動進行相關的測試內容。針對軟件性能測試環節,Linux GUI控件則能經由多版本的特性實現對相關軟件的大量重復測試工作,還可以利用元素樹的自動化測試法,進一步保障Linux GUI自動化測試法的準確性。
CLI屬于一種文本類型的命令接口,其功能是利用終端或遠程端口來建立起用戶與網絡設備間的通信渠道,而在控制時則主要是基于用戶使用鍵盤輸入的文本命令,由此對相關網絡設備進行監管與維護。而CLI的測試模式則主要由命令協議、命令外殼與命令集構成。CLI的測試原理主要是通過用戶操作來驅動終端,再經由其終端向用戶端進行發送命令,并由遠程通信協議的溝通,而后服務終端將會開始運作,隨后通過終端對服務終端外殼的驅動,最終利用命令集實現對用戶命令的解析。故在應用CLI自動化測試法時,首先應當選擇科學、合理的測試框架,再以此為基礎對CLI自動化測試法的功能進行整合、總結,最后再根據整合結果與測試框架對測試方案進行設計。在中國聯合網絡通信有限公司濟南軟件研究院中,就對Python CLI自動化測試進行了深入探索,并建立起了自動化程度較高的測試腳本。僅需要測試人員輸入、選擇相關的測試數據,在CLI系統的測試環境初始化完成后,CLI系統就會自動讀取相關測試數據,并經由翻譯、執行測試用例以及輸出、記錄測試結果等自動化測試環節,從而完成對軟件自動化的測試工作。此外,該CLI的自動化測試腳本中,還具備著測試完成的自動清理功能,能夠為后續測試的準確性打下良好保障。
綜上所述,經由豐富的軟件自動化測試方法,現階段測試人員已能夠全面、準確、高效地探索到相關軟件的可優化空間。而利用自動化測試方法,也能有效減小人力物力等資源耗費。故相關測試人員應當積極采用自動化測試方法,通過降低人工測試的比例,從而在提高測試效率的基礎上,保障性能測量的準確性。