當前位置:首頁 > 測試測量 > 測試測量
[導(dǎo)讀]摘要:本文介紹了基于數(shù)據(jù)驅(qū)動的自動化測試以及其實現(xiàn)方法,包括軟件是否適合自動化測試的可行性分析;開發(fā)測試前的需求分析;基于數(shù)據(jù)驅(qū)動的測試框架的實現(xiàn)以及其維護和擴充。 關(guān)鍵詞:自動化測試;手工測試;數(shù)據(jù)

摘要:本文介紹了基于數(shù)據(jù)驅(qū)動自動化測試以及其實現(xiàn)方法,包括軟件是否適合自動化測試的可行性分析;開發(fā)測試前的需求分析;基于數(shù)據(jù)驅(qū)動的測試框架的實現(xiàn)以及其維護和擴充。
關(guān)鍵詞:自動化測試;手工測試;數(shù)據(jù)驅(qū)動;測試框架:回歸測試

0 引言
    隨著社會的不斷發(fā)展和信息化的不斷普及,各種軟件越來越多,在日常生活中也起著越來越重要的作用,再加上客觀系統(tǒng)的復(fù)雜性,無論經(jīng)驗多豐富的開發(fā)人員、無論采用哪種開發(fā)模型開發(fā)出來的軟件,每個階段的技術(shù)復(fù)審也不可能毫不遺漏地查出和糾正所有的錯誤,因此如何才能把新的軟件做得更穩(wěn)定、錯誤更少呢?測試!統(tǒng)計表明,在典型的軟件開發(fā)項目中,軟件測試工作量往往占軟件開發(fā)總工作量的40%以上。
    測試是軟件能否通向市場的最后也是最重要的一關(guān)。傳統(tǒng)的測試方法是手工測試,目前大部分都是采用此方法,其特點就是簡單,但是它存在的問題非常多。手工測試可能引入人為的輸入錯誤,尤其在數(shù)據(jù)量大的情況下;另外大量重復(fù)性的手工測試可能成本較高,如果考慮軟件發(fā)生改動而需要重復(fù)手工測試的情況,這個成本還會更高;沒有辦法對組件進行隔離的測試,從而導(dǎo)致發(fā)現(xiàn)問題和解決問題的成本都太高。在很多項目中,測試人員的所有任務(wù)實際上都是手動處理的,而實際上有很大一部分重復(fù)性強的測試工作是可以獨立出來自動實現(xiàn)的。
    針對手工測試的缺點,自動化測試應(yīng)運而生。相比手工測試,自動化測試的優(yōu)勢很多;規(guī)范測試流程,提高測試效率、測試覆蓋率等。很多人對自動化測試存在誤區(qū),把其理解為找到一種自動化測試工具,把它應(yīng)用到軟件工程項目中,自動化測試工具只是被看作是一種錄制和回放的工具。事實上自動化測試遠不止這么簡單,錄制和回放僅是自動化測試中的最低級別。目前常把自動化測試分為5個級別,如圖l所示。


    現(xiàn)在常用的是基于數(shù)據(jù)驅(qū)動的測試,它是以數(shù)據(jù)來控制自動化測試的流程和動作的測試,其中數(shù)據(jù)是獨立于測試用例腳本的,通常以文本文件形式、Excel文件形式、XML文件等形式存在。

1 基于數(shù)據(jù)驅(qū)動自動化測試的實施
1.1 可行性分析
    基于對自動化測試優(yōu)點的分析,很多人對自動化測試存在另一個誤區(qū),認為對于所有的軟件都適合引入自動化測試,且只要引入自動化測試,就會提高測試的效率,降低測試的成本。實際上并非如此,自動化測試也需要開發(fā)和搭建測試框架,創(chuàng)建測試用例,這也就意味著成本的投入。對于一個項目周期很緊的測試項目,按測試方案進行手工測試的效率可能要比自動化測試工具錄制腳本再測試的效率好得多。那么自動化測試工具的價值在什么地方?
    對于一個一次性開發(fā)、沒有后續(xù)版本更新的軟件而言,自動化測試是毫無意義的。但是現(xiàn)在很多軟件都會不斷推出新的版本,在推出新版本的過程中,每次除了測試新加或修改過的模塊,相關(guān)聯(lián)的舊模塊同樣需要測試,才能保證產(chǎn)品的質(zhì)量,這樣就需要做大量的重復(fù)工作,自動化測試此時就可以創(chuàng)建測試中的可重用模塊,同時還可以覆蓋大部分的功能測試,這樣可以使測試人員從回歸測試中解脫出來,專注于新模塊的測試。所以可以說自動化測試的最大價值在于回歸測試。
    因此,對于一個軟件或其中某些模塊是否適合自動化測試必須要先進行可行性分析,以證明你所選的測試方法的正確性,通??蛇M行自動化測試的軟件需要滿足以下幾點:
    (1)手工測試復(fù)雜度高:
    (2)所選測試用例,實現(xiàn)自動測試的難度低;
    (3)軟件用于自動化測試的模塊界面變化相對不大;
    (4)軟件生命周期長,經(jīng)常推出新的版本;
    (5)軟件開發(fā)已基本完成,主要用于測試升級版本;
    (6)所選自動化測試框架必須對所測軟件應(yīng)用界面有有效的支持,且維護管理成本較低。
    另外自動化測試前期需要投入時間和一定的成本投入,故不要一開始就期望有高的回報,其效應(yīng)會在不斷完善積累中顯現(xiàn)。而且不要期待自動化測試可以發(fā)現(xiàn)每個版本中的大部分錯誤,因為自動化測試主要用于回歸測試,而且產(chǎn)品中每個新版本的大部分bug會在新模塊中出現(xiàn),所以自動化測試在于長期效應(yīng),能保證每個版本產(chǎn)品質(zhì)量的穩(wěn)定。
1.2 需求分析
    正如開發(fā)軟件需要有需求分析一樣,基于數(shù)據(jù)驅(qū)動的自動化測試本質(zhì)上也是開發(fā),所以在制定測試方案之前也需要收集測試需求,這樣才能保證自動化測試的成功。
    隨著IT技術(shù)的發(fā)展,傳統(tǒng)的開發(fā)人員兼任測試人員的模式已經(jīng)不能滿足需求,目前大多數(shù)較正規(guī)的軟件公司均已采用獨立的測試人員來對軟件進行測試,所以形成了開發(fā)人員、開發(fā)管理者、測試人員、測試管理者的模式。如圖2示。


    規(guī)范的測試過程需要上述人員的通力配合,因此在做自動化測試之前應(yīng)該有一份規(guī)范的文檔,用來描述測試內(nèi)容、人員安排、測試流程、缺陷管理等。其中開發(fā)管理人員和測試管理人員分別作為開發(fā)團隊和測試團隊的接口,協(xié)調(diào)兩個團隊的工作,一般來說開發(fā)人員需要在每次對軟件更新后提供詳細的功能文檔,開發(fā)人員還需要提供自動化測試所需要的數(shù)據(jù)等相關(guān)資源,測試人員根據(jù)功能文檔創(chuàng)建適合做自動化的測試用例,并建立基于數(shù)據(jù)驅(qū)動的自動化測試工程。
1.3 數(shù)據(jù)驅(qū)動的自動化測試框架結(jié)構(gòu)以及實現(xiàn)
    基于數(shù)據(jù)驅(qū)動的自動化測試不是簡單的錄制回放,而且通過編程的形式來實現(xiàn)每個測試用例,其中數(shù)據(jù)文件獨立于測試用例,這樣數(shù)據(jù)的更新對整個測試工程的維護會降低到最小。因此創(chuàng)建自動化測試框架需要有一定的編程基礎(chǔ)。
    本文自動化測試中采取的是三層框架結(jié)構(gòu),如圖3所示。


    其中最底層為UI Driver層,主要負責定義基本的通用元素庫,如按鈕、下拉框、文本框等在每個軟件中都會出現(xiàn)的基本元素;對這些元素的基本操作以及通用操作(如等待某段時間的函數(shù)等)。這一層和測試的軟件沒有關(guān)系,因此通用性很強,既可以自己開發(fā)也可以用前人開發(fā)好的底層自動化Driver。
    第二層為代理(Agent)層,這一層是建立在被測軟件上,對被測軟件的每一界面(UI)均建立相關(guān)的類和對象,方便最上層調(diào)用,這一層需根據(jù)軟件的不斷更新而更改。
    最上層為測試用例層(Test Cases),這一層建立在代理層上,代理層建立好之后,可以提供給測試用例層所需的界面元素,使測試用例可以通過對界面元素的操作完成自動化測試過程。這一層是測試用例的實現(xiàn)層,如果有了比較完善、結(jié)構(gòu)合理的底層以及代理層,此層實現(xiàn)起來就會非常簡單。
    其中測試數(shù)據(jù)以及軟件中元素的ID信息是存放在獨立的XML文件中,測試用例層或者代理層需要用數(shù)據(jù)時,可以通過統(tǒng)一的接口讀取。這樣的方式不僅可以使整個測試工程結(jié)果清晰,最重要的是可以降低整個測試系統(tǒng)的維護費用,這樣才能確保自動化測試的投入回報不斷提升。
1.4 自動化測試的維護和擴充
    自動化測試工程會由于軟件的不斷擴充而必須加以維護和擴充。其中維護是指由于新版本的升級導(dǎo)致的舊的測試用例無法通過,必須加以維護才能正常運行。而擴充則是指由于版本的不斷升級,某些功能已經(jīng)非常穩(wěn)定,適合于自動化測試,需要新添加一些測試用例來覆蓋這些功能。
    擴充和維護是一個長期的過程,其中需特別注意的是每次自動運行測試用例,必須有個詳細的結(jié)果日志來記錄測試用例的通過情況,對于運行失敗的用例,記錄失敗的原因,這樣有利于測試人員通過結(jié)果來判斷產(chǎn)品的bug。這里需要特別注意的是,有的測試用例表面上是通過了,但是實際上卻執(zhí)行失敗了,并且結(jié)果日志上記錄的是通過,如果出現(xiàn)這樣的情況,而測試人員卻毫無察覺,這就是失敗的自動化,所以對于每次自動化測試的結(jié)果,最好能夠建立起核查機制,以確保結(jié)果的可靠性。

2 總結(jié)
    自動化測試是一個比較新的研究領(lǐng)域,也是近來很具爭議性的研究話題,對于自動化測試引入之后的利弊,眾說紛紜。當然自動化測試也在爭議中顯現(xiàn)出了強大的生命力,其測試效率高、重用性好等優(yōu)點得到了廣泛的認同。本文中所介紹的自動化測試框架結(jié)構(gòu)在很多大型的軟件系統(tǒng)中得到了應(yīng)用,取得了良好的效果。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉