測試工具和測試自動化
第一代,以工具為中心的自動化
時間:90年代中期之前
這一代自動化使用的測試工具,以捕捉/回放(Capture/Replay)工具最為典型,即捕獲用戶的鼠標(biāo)和鍵盤操作,并記錄下來,下次測試時可以回放這些操作,重復(fù)上次的測試。這些工具一般也提供簡單的腳本功能,測試人員還可以根據(jù)需要對記錄的腳本進行修改,比如增加循環(huán)操作以及一些簡單的判斷條件等,以強化測試。不過因為腳本語言簡單,腳本功能往往只是其中的點綴。如QARun,WinRunner,就是這種工具的典型代表。這代測試自動化技術(shù)有很大的局限性:
自動化程度有限。每種工具都有自己獨特的腳本語言,但又不是一個全功能的腳本語言,能自動化的操作有限,構(gòu)不成一個完整的自動化解決方案,不同工具的腳本無法共享;
對SUT(System Under Test)的變化適應(yīng)性較差。如果SUT的GUI有了變化,錄制的腳本幾乎不能再用,這在軟件總是不斷改進和變化的時代幾乎是致命的缺陷。
第二代,以腳本為中心的自動化
時間:90年代末至21世紀(jì)初
這是自動化的個人英雄主義時代。一些測試團隊在這個階段已經(jīng)認識到采用統(tǒng)一腳本語言的重要性,并找到了適合測試工作的、功能完備的腳本語言,在團隊中大力推行。但因為經(jīng)驗有限,缺乏良好的頂層設(shè)計,測試自動化主要依靠測試工程師的主觀能動性,八仙過海、各顯神通,每個人都是腳本工程師,測試腳本大量產(chǎn)生。
這代自動化雖然有了統(tǒng)一的腳本語言,測試工程師之間也可以進行少量的腳本共享。但總體而言,是各自為戰(zhàn),風(fēng)格不同,質(zhì)量參差不齊。和個人測試環(huán)境密切關(guān)聯(lián)的個人自動化成果難以充分轉(zhuǎn)化為有效的團隊平臺積累。不過,這個階段培養(yǎng)了大量的技術(shù)熟練的測試自動化工程師,為下個階段打好了人員和技術(shù)基礎(chǔ)。
第三代,以平臺為中心的自動化
時間:21世紀(jì)初至今
在第二代自動化摸索幾年后,有眼光的測試管理者和出色的測試工程師,都認識到這種野蠻生長產(chǎn)生的腳本在可維護性、可重用性、拓撲適應(yīng)性方面都存在很大問題,不能真正形成持續(xù)有效的團隊積累。于是,自動化測試的頂層設(shè)計被提上日程:構(gòu)建一個出色的自動化測試平臺;腳本基于邏輯拓撲進行開發(fā),在執(zhí)行時才映射到物理拓撲;把常用測試操作抽象為Action word并實現(xiàn),作為通用類庫供所有測試工程師使用;制定腳本的開發(fā),驗收,維護規(guī)范,保證腳本的一致性、通用性和可維護性。基于這個測試自動化平臺開發(fā)的腳本,才真正可轉(zhuǎn)化為有效的團隊積累。
以H3C的測試自動化發(fā)展為例,在1999年之前,只是利用簡單的捕捉和回放測試工具,基于這些工具編寫簡單的腳本,屬于第一代自動化。1999-2002年期間,測試平臺團隊引入了適應(yīng)通信設(shè)備測試的TCL語言,開發(fā)了通用測試平臺,但統(tǒng)一的ATF(Auto Testing Framwork)尚未成熟,處于第二代自動化階段。2003年,H3C測試團隊發(fā)布了ATF,并啟動Testbladev1/v2腳本體系的開發(fā),這標(biāo)志著H3C的測試自動化進入了第三代,并在實踐中不斷優(yōu)化。基于VTP和ATF,H3C已經(jīng)實現(xiàn)了80%以上的功能測試的自動化,并提供了多個性能測試、壓力測試及持久性測試的自動化測試套件。
三、展望:第四代自動化測試技術(shù)
那么是否會有第四代自動化測試技術(shù)?回答是肯定的。下一代自動化技術(shù)必然是以網(wǎng)絡(luò)為中心的測試自動化,也可以稱之為以云為中心的測試自動化。所有的測試設(shè)備(真實的、虛擬的)、測試儀器以及測試主機,通過一個測試自動化管理系統(tǒng)進行統(tǒng)一管理,呈現(xiàn)在測試工程師面前的將是一個測試設(shè)備云。測試工程師可以遠程登錄到測試自動化管理系統(tǒng),通過任務(wù)管理系統(tǒng)提交自己的自動化測試任務(wù),只需要描述清楚測試任務(wù)所需要的設(shè)備類型、設(shè)備連接的鏈路類型,需要執(zhí)行的測試套,系統(tǒng)即會按規(guī)則在測試云中進行搜索和計算,得出什么時間能提供滿足本次測試任務(wù)所需要的測試執(zhí)行環(huán)境,測試工程師可以預(yù)約這個時間之后的任意時間運行自動化任務(wù),并準(zhǔn)時收到自動化測試結(jié)果。
第四代自動化測試技術(shù)相對第三代,將在可管理性、易用性以及設(shè)備利用率方面有質(zhì)的飛躍,但仍然必須以穩(wěn)定可靠的測試平臺以及完善的測試腳本體系做為測試執(zhí)行的基礎(chǔ),這意味著第三代測試自動化不可跨越。否則,所謂的云測試就是無源之水。
四、結(jié)束語
測試自動化極大的提高了測試效率,使測試工程師可以從簡單重復(fù)的機械操作中解放出來,把更多精力投入到更有創(chuàng)造性的測試設(shè)計,以及更復(fù)雜的測試執(zhí)行中去。但我們也必須認識到測試自動化的局限性。首先,自動化只是對已有測試設(shè)計的機械重復(fù),不會超出已有的測試認知。其次,復(fù)雜測試場景下,影響測試結(jié)果的因素非常廣泛,依靠機器進行判別很難行得通,還是必須由人來完成。
這些局限因素決定了自動化測試不可能完全替代手工測試。不過,測試工具和自動化技術(shù)在復(fù)雜環(huán)境模擬和業(yè)務(wù)模型構(gòu)造上的作用,永遠無可替代,所以,即使是手工測試,一樣也離不開測試工具和測試自動化技術(shù)??梢哉f,測試工具和測試自動化的進步推動著整個測試行業(yè)的發(fā)展。 熱式質(zhì)量流量計相關(guān)文章:熱式質(zhì)量流量計原理 流量計相關(guān)文章:流量計原理
評論