楊曉峰 錢斐斐 劉國靖
【摘要】? ? 本文首先針對早先以及當下所使用的主流軟件自動化測試方法進行逐一介紹,并結合筆者個人經(jīng)驗,論述了在應用軟件自動化測試方法環(huán)節(jié)常發(fā)生的相關類型錯誤,并針對其中部分不建議運用軟件自動化測試的情境開展了分析。希望可以給從事相關領域研究的人員帶來有效的幫助。
【關鍵詞】? ? 軟件自動化測試? ? 方法? ? 錯誤分析? ? 不適用場景
引言:
伴隨著全球范圍內計算機技術的迅速進步,各行業(yè)領域針對各類軟件的應用已經(jīng)變得越來越普及,軟件在使用過程中的整體性能質量也越來越被人們所重視,而在這一過程中,針對軟件進行測試時了解軟件整體質量的一種重要手段。因此,對于從事相關領域工作的人員來說,了解當前較為常見的軟件自動化測試方法,認識軟件自動化測試環(huán)節(jié)中常出現(xiàn)的相關問題,對一些不建議采用軟件自動化測試的情境有所了解,便成為了其所必須要關注的課題。
一、常見的軟件自動化測試方法
1.1早期的軟件自動化測試技術介紹
軟件自動化測試技術最早誕生于上世紀九十年代,經(jīng)常采用硬件方法來開展鍵盤錄入和使用,之后通過播放來實現(xiàn)對軟件的重復測試。但需要注意的是,該檢測技術尚無法完成測試點功能,簡單地說,就是不能就某一功能點進行功能和屬性的檢查,在該方式當中,對操作過程和數(shù)據(jù)信息進行記錄是尚未分離的,所以該自動化測試技術的維護成本較高。另外,一旦對操作界面進行了調整,之前的腳本便不能再次使用,必須要重新對其進行錄制。這種方式下,腳本的使用效率相對較為低下,并且在完成軟件測試時,整體效率較為低下。
1.2憑借數(shù)據(jù)驅動的測試技術
在上世紀九十年代的中后期,伴隨著軟件測試水平的不斷進步,使得錄制和播放測試腳本的功能能夠轉移到軟件層實現(xiàn),并且也提升了檢查點性能,也就是可以依靠對某一功能使用過程中相關數(shù)據(jù)、屬性的變動與預估數(shù)據(jù)進行比較,來對軟件功能效果進行確認。
該技術和最早的軟件自動化測試技術最大的不同就是可以從數(shù)據(jù)文件中對相關信息進行讀取,數(shù)據(jù)與操作流程腳本之間可以完全脫離,因此該技術被叫做依托數(shù)據(jù)驅動的軟件自動化測試技術。該技術把數(shù)據(jù)錄入、預期數(shù)據(jù)輸出自動匯總成表格,表中每一行數(shù)據(jù)就代表著每一次測試流程,在測試過程中,對表格中的數(shù)據(jù)進行逐行讀取,之后依靠變量的方式傳送到之前錄制完成或手工錄入的腳本之中,采用相同的測試方式來對不相同的數(shù)據(jù)進行排列組合。該方法針對擁有多種不同數(shù)據(jù)作為測試的軟件系統(tǒng)來說效率得到了非常顯著的提升。
1.3依托關鍵字驅動測試技術
該技術最早誕生于二十一世紀初葉,它是依托數(shù)據(jù)驅動的軟件自動化測試技術的升級版。依托關鍵字驅動的軟件自動化測試技術通過自然語言來對測試軟件的整體情況進行表述,把測試腳本進行抽象化處理,讓不了解任何代表的非專業(yè)技術人員,還可以利用工具開展測試,該測試技術采用關鍵字構成的測試原理邏輯。
其核心工作原理為:腳本和數(shù)據(jù)相互獨立,測試表述和具體細節(jié)相互獨立、界面元素名稱與測試對象內部稱謂相互獨立。核心關鍵字涉及有被操作對象(Item)、價值(Value)、操作(Operation),使用面對對象的方式可將其體現(xiàn)為Item Operation(Value)。
1.4依托領域驅動測試技術
該技術是基于關鍵字驅動基礎上優(yōu)化改進而來的,該技術的最主要特征為:從領域模型視角進行觀察,面對待測軟件的領域語言進行測試案例描繪,并進行建模、針對測試用例和領域關鍵字進行分析、設計、研發(fā)以及組織管理,由此進行相關的測試活動。在使用該測試技術的過程中,表現(xiàn)出如下優(yōu)點:
第一,測試用例使用領域語言進行描繪,普通人在理解過程中沒有難度,比較簡單;
第二,測試用例能夠憑借把領域關鍵字與設置數(shù)據(jù)進行重新組合來獲取;
第三,在被測試軟件成品的實現(xiàn)方式發(fā)生調整時,能夠更新領域驅動測試庫來對新發(fā)生的變化進行有效匹配,測試用例在自動化測試的過程中,不再需要進行任何形式的修改或調整。
1.5依托功能驅動的軟件自動化測試技術
依托功能驅動的軟件自動化測試技術是把軟件的整個系統(tǒng)劃分成若干個獨立板塊,在開展自動化測試的過程中,對每個板塊進行獨立的自動化測試,每一個板塊都可以理解成一個個獨立的,能夠完成測試任務的載體,每一個載體的本質就是包含有自動化測試的函數(shù),為獨立的測試用例,同時能夠基于實際需求調配代表單一獨立功能板塊的應用模塊,讀取驅動當中所必須的測量信息。
在應用模塊中,存儲著所有對系統(tǒng)界面操作的錄入信息,由于應用模塊是獨立存在的區(qū)域,所以對其以后進行的維護工作也是相對較為獨立的。因為在該測試技術背景下,所有與被測試軟件系統(tǒng)相關聯(lián)的操作和屬性,均儲存在每一個應用模塊腳本當中,在系統(tǒng)界面出現(xiàn)變動之后,后續(xù)只需要對產(chǎn)生影響的應用模塊腳本進行修改即可,其他腳本不再需要進行大的調整。
1.6依托指令驅動測試技術
該測試的基本原理是對驅動軟件測試技術的改良優(yōu)化,其所有流程所包含的功能都是憑借指令驅動來達到的,可以支持由不同序列或者多種不同路徑構成的測試。指令驅動測試構建在數(shù)據(jù)驅動自動化測試方式之上,在表格中,存儲的信息不再是數(shù)據(jù),而是各類指令,它是獨立于執(zhí)行測試工具,也是對數(shù)據(jù)驅動模式合理優(yōu)化,時至今日,依托指令驅動的軟件測試技術被認為是目前最為先進的軟件自動化測試技術。
二、使用測試技術過程中存在的誤區(qū)
雖然軟件自動化測試技術擁有良好的效率和可重復操作性,但是在實踐過程中,仍然存在有一定的局限,筆者接下來就使用軟件自動化測試技術過程中的一些常見誤區(qū)進行概述。
2.1使用軟件自動化測試技術完全代替軟件手工測試
在許多情境之下,針對軟件的測試一定需要通過人來進行操作,即只有在上一個操作流程完成之后,才能夠基于操作結果來判定執(zhí)行方案,或者輸入測試數(shù)據(jù)內容,以現(xiàn)有的技術能力來說,此項工作機器仍然是無法完成的,必須要通過人類大腦的決策,因此不能期待在全部的情境當中均使用軟件自動化測試技術,更不能在現(xiàn)有技術能力下,使用軟件自動化測試技術來代替手工測試。
2.2可以對軟件的易用性進行判定
因為軟件自動化測試技術的本質,只是一種工具,而對于工具來說,審美能力和想象能力并不是其應當具備的一種能力,對于針對軟件界面是否整潔美觀、軟件是否具有易用性等內容,軟件自動化測試技術是不能夠代替人類來進行判斷的,所以在這些方面,仍然需要通過人類的主觀意識來決定。
2.3只要采用軟件自動化測試技術便能夠降低測試時長,提高測試工作效率
需要注意的是,在使用軟件自動化測試技術的過程之前,一定要花費一定的時間和精力用于建立測試環(huán)境、進行腳本錄制、建立數(shù)據(jù)表格式、輸入數(shù)據(jù)等,和傳統(tǒng)的手工測試進行對比,需要消耗5-10倍時間來研發(fā)一個自動化測試用例,所以若無法轉化額外的資源與時間,便不能夠開展大量的投入來建立軟件自動化測試框架,針對部分規(guī)模相對較小、測試用例相對更少的軟件系統(tǒng)來講,使用軟件自動化測試技術可能會適得其反,導致測試時間更長,測試效率更低。
自動化測試工具使用圖形化界面,操作簡單易學,對測試人員并沒有過高的能力要求,但是從目前的技術發(fā)展情況來看,此項技術并非萬能,若想基于被測系統(tǒng)的特征建立有效的自動化測試腳本,工作人員一定要掌握相關的腳本語言,能夠迅速對腳本內容進行編輯和完善。
三、不適用軟件自動化測試的情境介紹
整體來說,雖然軟件自動化測試技術擁有比較優(yōu)秀的可重復性、工作效率優(yōu)異等特點,但是并不能在所有種類的軟件產(chǎn)品測試中實現(xiàn)運用,所以對此還需要進一步探討,了解不同的測試情境。
首先是定制類軟件:這些軟件都是基于客戶的實際要求,針對性設計的測試軟件,其維護一般是由客戶自己負責,相應側運行環(huán)境、程序語言等,都是依據(jù)客戶需求來確定的。這種形式,讓企業(yè)對這些軟件項目所積累的測試經(jīng)驗極少,因此,在定制類軟件中,不適合使用軟件自動化測試技術。
周期相對較短的項目:如果某軟件工程項目研發(fā)周期相對較短,那么其測試時間就非常有限,這一情況下,不建議花費大量精力來投資進行軟件自動化測試,即便有充足的時間和精力去建設測試環(huán)境,設計測試腳本,但是仍然會出現(xiàn)腳本利用率不高的情況,導致使用軟件自動化測試技術的性價比不足。
運行規(guī)則相對較為復雜的軟件產(chǎn)品:若待測軟件系統(tǒng)具有極度復雜的運行規(guī)則和邏輯,就一定要通過人工測試的方式,因為自動化測試技術很難完成相關的腳本設計。
運行次數(shù)不多的軟件:實際上,軟件自動化測試技術的本質,就是讓軟件大量進行運行,來檢測軟件的測試效率,針對一些較少使用的軟件,使用此項技術極有可能造成資源的浪費。
四、結束語
整體來說,軟件自動化測試技術在絕大多數(shù)場景下,都能夠針對軟件的性能進行測試,因此具有重要的使用價值,但是作為相關場景工作人員來說,仍然需要區(qū)分軟件自動測試技術在使用過程中的誤區(qū)以及不適用情境,只有有效回避這些場景,才能讓此項技術得到更為有效的利用。
參? 考? 文? 獻
[1]高楠梟.軟件自動化測試的方法探究[J].計算機產(chǎn)品與流通, 2020(09):49.
[2]孫雷.軟件自動化測試的方法分析[J].集成電路應用, 2020,37(05):94-95.
[3]衛(wèi)春才.軟件自動化測試方法的應用分析[J].計算機產(chǎn)品與流通,2020(02):33.
[4]楊麗波.軟件自動化測試方法的發(fā)展現(xiàn)狀分析[J].無線互聯(lián)科技,2017(04):49-50.
[5]艾迪安.軟件自動化測試方法的研究與應用[J].中國新通信, 2016,18(17):16-17.