• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    關于GUI自動化測試的收益回收期分析

    發布: 2008-4-11 18:37 | 作者: 網絡轉載 | 來源: 網絡轉載 | 查看: 39次 | 進入軟件測試論壇討論

    領測軟件測試網



    關于GUI自動化測試的收益回收期分析

    作者: 未知    來源: 網絡轉載

    摘 要:軟件的界面測試是一項復雜而煩瑣的工作,本文對程序界面的手工測試與自動測試兩種方法進行比較,重點討論了自動測試的收益回收期問題。

    關鍵詞:程序界面測試 捕捉/回放工具

    the Break even of GUI Automation Test

    BEIJING HORIZON INFORMATION & TECHNOLOGY CO.,LTD.

    Ding Yuwei dyw@horizon-biz.com

    Abstract: since GUI testing is an complicated and annoying work, here we compared automation and manual test , talk about the break even of automation test.

    key words:GUI Testing GUI CR-tools(capture & replay tools)

    引言

            對于一個軟件產品的評估,從用戶角度來講,程序的界面部分是相當受關注的,這里包括程序界面的交互能力、穩定性、健壯性等,同時今天的軟件產品越來越復雜,通常一套軟件包括會大量的用戶界面,每個界面里又有很多的控制對象,以及各種信息的交互。對于這樣一套軟件,即便測試只覆蓋到部分界面,工作量也是相當大的。由此人們想到利用工具來進行自動化測試,本文希望通過對自動測試與手工測試的比較,指導人們進行測試方法的選擇。

    CR-tools介紹

            程序界面測試(GUI testing)主要包括兩項內容:界面顯示測試和界面功能測試,這里重點講解功能測試(black box functional testing)。界面功能的自動測試可以用捕捉/回放工具來完成,(GUI CR-tools :capture & replay tools ),但是在實際應用過程中,常常因為CR-tools固有的缺隙而大大削弱了它的效力,從而引起人們對自動化測試工具可用性的憂慮。如:

            CR-tools對GUI對象的識別能力嚴重依賴于被測軟件所使用的編程語言,這一因素大大增加了測試腳本的維護工作量。例如如果CR-tools可以識別C++語言開發環境、OO方法定義的對象(如buttons、menu等),通常在界面布局調整時,它仍然可以識別出新界面上的所有元素,但是很可能它不能夠識別Oracle應用程序,如用OCX開發的程序界面中的對象,這時我們不得不向供應商尋找相應的支持選件。
            CR-tools通過對程序運行過程的錄制產生的測試腳本,通常只能做為設計測試用例的初始原型,必須經過大量的修改和對腳本編程的工作,才能重復利用,如增加檢查點(check point)、進行參數化等。因此,GUI自動測試的設計也是一項復雜的編程與開發工作。
            當然以上問題我們也可以通過采取一些措施盡可能避免,如通過建立測試用例庫,實現用例的重用、腳本功能的擴展、腳本語言的規范化、以及減少維護工作量等。所以,雖然自動化測試工具還存在很多問題,但它最大的好處是可以通過用例的重用,來大大減少重復的測試設計工作量,這也是至今人們還堅持不懈研究自動化測試技術的原因。

    手工測試與自動化測試的比較

            下面我們對手工測試與自動測試的成本開銷進行比較,找出影響自動化測試效率的重要因素:自動測試的重復運行次數。

            首先我們把軟件開發過程定義為六個階段:定義、分析、設計、實現、測試、發布,其中的測試階段又可以細分為:測試設計、測試執行、測試分析、問題解決。.

            表1是相關實驗顯示的比較結果:

            實驗的前提條件:

            測試執行前錄制程序運行產生測試腳本,在腳本重復回放期間,是完全自動執行的,沒有做進一步修改,及其它人工的干預,盡管這在實際情況中會有一定的困難。

    表1:

    測試

    項目

    測試準備(V

    測試執行(D

    N

    手工支出/自動支出(E)n次自動測試)

    手工(m)

    自動(a)

    手工(m)

    自動(a)

     

    n=1

    n=5

    n=10

    n=20

    1

    16

    56

    24

    1

    1.74

    143

    45

    26

    15

    2

    10

    14

    2

    0.1

    2.11

    118

    73

    50

    32

    3

    10

    16

    4.5

    0.2

    1.40

    112

    52

    33

    20

    4

    20

    28

    1.5

    0.1

    6.15

    131

    105

    86

    64

    5

    10

    15

    1

    0.1

    5.56

    137

    103

    80

    57

    6

    10

    15

    1.5

    0.1

    3.57

    131

    89

    64

    43

    7

    10

    11.5

    0.75

    0.1

    2.31

    108

    87

    71

    54

    8

    10

    11.5

    0.5

    0.1

    3.75

    110

    96

    83

    68

    9

    10

    14

    3

    0.1

    1.38

    108

    58

    38

    23

    10

    10

    10.6

    0.5

    0.1

    1.50

    102

    89

    77

    63

    總計(t)

    116

    191.6

    39.25

    2.1

    2.03

    125

    65

    42

    26


    注:測試準備和測試執行是以小時工作量為單位

    Vm:測試設計的時間支出;

    Va:測試設計+重復測試的腳本定制、數據準備等支出;

    Dm:手工執行一次的時間;

    Da:自動測試執行完成后的整理工作量。不含執行過程的時間,因測試是在CR-TOOLS的管理下自動執行的,不需人工干預。

    En := Aa/Am = (Va + n*Da)/ (Vm + n*Dm).

    實驗分析

    分析1:

            以第二個測試項目為例進行說明,測試準備和設計需要10小時(Vm),如果進行自動測試另外還需4小時的工作,整個自動測試準備階段需14小時(Va)。手工執行(Dm)與結果分析需2小時,自動執行(Da)與測試結果分析需0。1小時。以上是自動執行一次的情況,由此我們可以計算出重復運行5、10、20次的成本開銷比較,其中如果自動運行5次,自動測試的成本是手工運行5次成本的73%,即:

    E5 = Aa/Am = (Va + 5*Da) / (Vm + 5*Dm) = (14 + 5*0,1) / (10 + 5*2) = 14,5/20 = 0,725 = 73 %

            由此可見,成本回收期限是由測試腳本的重復運行次數,或自動測試腳本的利用率決定的,

    分析2:

    根據等式:

    EN = Aa/Am = 100%.

    Ntotal =2,03

            可見在自動測試第二次執行完成后,手工測試與自動測試的成本支出基本持平。

    分析3:

            如果你的測試工具在捕捉程序運行生成測試腳本后,只做了一次回放工作,這樣的開銷是手工測試的125%,因為附加的準備工作開銷無法回收:191/116=165%。這里很可能是因為測試腳本語言的編程支持太弱,導致每一次重復運行時都有大量的維護、修改工作量,沒有體現出自動測試的優勢。

    分析4:

            對于一個自動測試過程,只要能夠重復利用10次,測試費用就能降低40%,可見自動測試的效率提高還是相當顯著的。

            另外,此結果可以適用于小型、中等軟件公司和開發團隊的規模情況。當然這些實驗和分析沒有考慮被測軟件、開發環境,測試流程等因素的影響。

    結論

            1.利用腳本語言編程實現測試用例的自動執行,自動執行一次的資源開銷是手工測試一次的165%,在正常情況下,如果第二次重復測試,自動與手工的資源開銷基本持平。

            2.影響自動測試效率的因素:未經培訓測試人員、人員沒有測試開發和編程經驗、在軟件產品還不穩定情況下過早啟動測試、開發與測試人員溝通不足,致使軟件修改后測試人員未能及時知道。

            3.進行GUI自動化測試需要掌握大量與測試工具相關的知識和技能,因此必須事先經過很好的培訓。

            4.實現自動測試的過程是一個復雜的軟件開發過程,需要測試人員具有相當的的軟件測試組織、實施經驗和專業的軟件開發經驗。

            5.建立并長期維護一套測試用例庫,?能夠幫助我們節省資源并能夠快速培養測試人員。

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>