<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

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

            軟件測試中使用WinRunner 進(jìn)行測試給新手們的幾點(diǎn)建議

            發(fā)布: 2010-8-30 10:02 | 作者: 網(wǎng)絡(luò )轉載 | 來(lái)源: 領(lǐng)測軟件測試網(wǎng)采編 | 查看: 380次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng)

            軟件測試中使用WinRunner 進(jìn)行測試給新手們的幾點(diǎn)建議

            一、分解TestCase

             在大型程序測試中,往往有很多任務(wù)是可以分開(kāi)來(lái)Record。同時(shí),如果錄制的代碼過(guò)長(cháng)的,進(jìn)行調試是很麻煩的事情,此外如果今后某一部分的程序進(jìn)行了修改的話(huà),修改和重新錄制的工作也是非常痛苦的一件使用。因此我們可以將一個(gè)TestCase 進(jìn)行分解,分解TestCase 可以采用以下幾種方式

            1、將任務(wù)分段,比如Log、Logout、公共窗口的打開(kāi)、關(guān)閉

            2、錯誤處理的分類(lèi),比如將某一輸入項目的各中錯誤輸入分開(kāi)錄制

            3、公共界面的操作函數化統一處理,這種方式主要可以象移動(dòng)BOSS 的業(yè)務(wù)受理等不

            同窗口使用同一子界面的情況,如DELPHI/C++ Builder 中的Frame。將不同任務(wù)(TestCASE)的分解之后,我們可以使用call 函數及自定義函數機制來(lái)調用不同的子Script、函數來(lái)完成一個(gè)的testCase

            二、通過(guò)隨機組合實(shí)現大規模路徑覆蓋

            有時(shí)候我們需要將一組數據隨機組合來(lái)進(jìn)行大量數據測試,如填寫(xiě)某些表單。那么我們有兩種辦法:一是使用外邊工具隨機生成大量數據,也可用使用先將各個(gè)數據按測試要求生成一小組數據,然后使用rand 方法隨機抽取數據來(lái)測試
            偽代碼如下

            data a[];

            date b[];

            for (i="0;i<要測試的次數;i++){

             ca=a[rand()]

            cb=b[rand()]

            dosomething;

            }
             

            使用這種代碼的好處是隨意調整測試力度,缺點(diǎn)是數據單一,不想外邊工具一樣生產(chǎn)的數據的多樣化。如果想根據數據分段標準動(dòng)態(tài)產(chǎn)生不同數據,應該使用其他編程工具來(lái)生產(chǎn)而不應采用這種辦法。

            三、動(dòng)態(tài)修改chk 文件實(shí)行參數化的動(dòng)態(tài)Check

            有時(shí)候我們知道在測試過(guò)程中的某些數據是動(dòng)態(tài)生產(chǎn)的,比如某些按順序或隨機產(chǎn)生的單號,而我們又往往需要根據這個(gè)單號進(jìn)行一些判斷,比如數據庫中對應的數據是否完整。還有,當我們需要根據輸入的某些條件來(lái)判斷輸出的條件是否正確,這個(gè)時(shí)候WINRUNNER 就無(wú)能為力了,因為它目前沒(méi)有提來(lái)實(shí)現參數化的Check。但是我們可用使用WINRUNNER 的函數及WINNRUNNER 的錄制功能,先錄制一個(gè)使用ULTRAEDIT(或類(lèi)似工具)手工修改chk 文件的函數。然后將要修改的內容參數化,在主SCRIPT 執行Check 以前先調用該函數。

            四、在Script 里面管理GUI

            使用WINRUNNER 都知道GUI 文件的重要性,MI 推薦的一種方式是專(zhuān)人來(lái)管理GUI 文件,整個(gè)測試使用同一個(gè)/系列GUI 文件。但實(shí)際我覺(jué)得這很困難的,特別是程序比較的話(huà),光是找出所有的窗口就已經(jīng)是很痛苦的一件事情。我認為應該首先應該將GUI 與SCRIPT 同時(shí)存儲在同一目錄下。然后使用GUI_load 在SCRIPT 開(kāi)始以前就裝載GUI,在SCRIPT 開(kāi)始增加:

            if (GUI_load(".\\login.gui")!="0)
            {

            pause ("Can't load login.gui");

            texit;

            }
             

            使用Winner 做過(guò)復雜測試的可能會(huì )問(wèn),如果不同GUI 文件中的對象名稱(chēng)相同的話(huà),運行時(shí)候就會(huì )出問(wèn)題。因此我們應該在SCRIPT 完畢的時(shí)候加入GUI_close(".\\login.gui");

             五、注意恢復測試前的狀態(tài)

            此外,如果我們要連續運行多個(gè)測試CASE、就必須考慮將被測試程序恢復測試前的狀態(tài),比如我們在測試SCRIPT A 中打開(kāi)了窗口A(yíng),如果下一個(gè)TESTCASE 不需要用到窗口A(yíng),那么在SCRIPT A 窗口A(yíng)。這樣下一個(gè)TESTCASE 才能正常運行。如果我們采用采用批處理及CALL 的方式來(lái)組織SCRIPT 的話(huà),就應該堅持這樣一個(gè)原則:“誰(shuí)打開(kāi)、誰(shuí)關(guān)閉”,這樣才便于管理。此外如果對數據庫的操作也要根據具體要求考慮恢復。這些操作可以考慮通過(guò)錄制通過(guò)錄制庫客戶(hù)端的操作來(lái)實(shí)現。

            六、WinRunner 腳本標準格式

            (一)目錄結構

            存放目錄要求:

             1、根目錄與項目名稱(chēng)相同,如江西移動(dòng)BOSS 測試目錄為JXBOSS
             2、根目錄下應該是按子項目存放,如SALES、ACCOUNT。如果有公共腳本,存放在Share 目錄下面
             3、子項目下面應該根據功能/TestCase 來(lái)存放,如果有公共腳本也應該存放在Share 目錄下
             4、為存取及備份方便,目錄不能使用中文。使用的名稱(chēng)應該盡量與開(kāi)發(fā)保持一致
             5、GUI 文件應該存放在腳本的同一目錄,并且名稱(chēng)相同
             6、正確性測試(使用完全正確數據來(lái)檢查程序功能是否完成)目錄名稱(chēng)規定為

            validity
            以下是一個(gè)目錄例子
            JxBoss
            -Sales
            --ChangeSimCard
            --validity
            --CheckSimNoExistAnIdError
            --Share
            --Share
            -Account

            腳本要求
             注釋要求
             腳本創(chuàng )建及修改說(shuō)明注釋
             每個(gè)腳本的開(kāi)頭注釋格式如下:
             #腳本名稱(chēng):文件名稱(chēng)
             #創(chuàng )建人:創(chuàng )建人
             #創(chuàng )建日期:格式為YYYY/MM/DD
             #功能:腳本完成的功能描述
             #運行前要求:運行前的要打開(kāi)的窗口及狀態(tài)要求、數據庫中的數據要求、被測試程序運行目錄等
             #參考文檔:描述錄制代碼是參考的有關(guān)設計測試文檔
             #修改歷史:
             # 修改人:
             # 修改 http://www.csai.cn 格式為YYYY/MM/DD
             # 主要修改內容:
             注意創(chuàng )建人及修改人必須是中文完整姓名,不允許使用其它任何名稱(chēng)。運行前的要求一定要描述清楚
             子功能注釋

             在各小段功能前應該加入功能注釋?zhuān)⒁獠荒苤皇荳inRunner 自己產(chǎn)生的注釋 如:

            # insert a record
            # Flight Reservation
            set_window ("Flight Reservation", 1);
            obj_mouse_click ("Button", 13, 16, LEFT);
            obj_type ("MSMaskWndClass","101002");
            list_select_item ("Fly From:", "London"); # Item Number 2;
            list_select_item ("Fly To:", "Paris"); # Item Number 3;
            obj_mouse_click ("FLIGHT", 56, 22, LEFT); 

            注釋可以使用英文或中文。
             修改代碼說(shuō)明注釋
             在具體修改的代碼附近應該加入如下注釋
             #修改人
             #修改日期
             #修改原因/增加功能
             注釋可以放在一行中,簡(jiǎn)單修改可以忽略“修改原因/增加功能”,復雜修改應該不能忽略(簡(jiǎn)單及復雜標準待定)
             代碼要求
             路徑要求
             代碼中使用的路徑都應該使用相對路徑,不允許出現類(lèi)似“d:\\”、“\\”下的代碼,應該使用類(lèi)似“..\\..\\”的代碼。
             在Script 里面打開(kāi)和關(guān)閉GUI各Script 的GUI 的文件應該分開(kāi)保存在與Script 保存在同一個(gè)目錄,應該使用用GUI_load 在SCRIPT 開(kāi)始以前就裝載GUI,在SCRIPT 開(kāi)始增加:

            if (GUI_load(".\\login.gui")!="0)

            {pause ("Can't load login.gui");
            texit;
            }
             

            在SCRIPT 完畢的時(shí)候加入GUI_close(".\\login.gui");關(guān)閉GUI,注意代碼中的路徑一定要使用相對路徑。
             錯誤報告
             在使用錯誤報告的時(shí)候,應該注意包括出錯的腳本文件名稱(chēng),這樣當腳本文件被其他腳本調用時(shí)候,也能很清楚在什么地方?jīng)]有通過(guò)。Report_msg 的參數格式定義為“文件名稱(chēng):錯誤描述”。同時(shí)鑒于WinRunner 的Check 函數不能提供清楚的錯誤報告,要求錯誤報告使用以方式

            if ( win_check_bitmap("Flight Reservations", "Img1", 1)!="E_OK)
            {
            report_msg("DateCheck:月份輸入錯誤提示不對!");
            }

            附件:一個(gè)完整的例子
             #腳本名稱(chēng):DateCheck
             #創(chuàng )建人:謝慧強
             #創(chuàng )建日期:2002/09/08
             #功能:檢查FLIGHTA 程序在輸入錯誤月份的時(shí)候提示是否正確
             #運行前要求:要求FLIGHA 進(jìn)入定票窗口(New_Order 狀態(tài))且無(wú)任何數據輸入
             # 或者FLIGHTA 沒(méi)有運行,這時(shí)候要求FLIGHTA。EXE 位
             # 于E:\\Program Files\\Mercury
             Interactive\\WinRunner\\samples\\flight\\app\\flight1a.exe
             #參考文檔:無(wú)
             #修改歷史:
             # 修改人:謝慧強
             # 修改 http://www.csai.cn 2002/09/09
             # 主要修改內容:不采用位圖方式,改為直接判斷字符串內容
             #load gui file
             #Flight Reservation

            if (GUI_load(".\\DateCheck.gui")!="0)
            {
            report_msg ("DataCheck:Can't load .\\DateCheck.gui");
            texit;
            }
            #Check windows exists ,if don't exist ,call login to open it.
            # Flight Reservation
            if (win_exists("Flight Reservation")!="E_OK){
            pause ("Windows Flight Reservation don't exist");
            #texit;
            call "..\\login\\login"();
            }
            #input error month
            win_activate ("Flight Reservation");
            set_window ("Flight Reservation", 3);
            obj_mouse_drag ("Button_4", 17, 6, 17, 7, LEFT);
            obj_type ("MSMaskWndClass","301212");
            list_select_item ("Fly From:", "Denver"); # Item Number 0;
            #check message bitmap
            # Flight Reservations_1
            set_window ("Flight Reservations", 3);
            #2002/09/09 謝慧強
            #if ( win_check_bitmap("Flight Reservations", "Img1", 1)!="E_OK)
            #static_check_info("Invalid month Entered.The month must be greater than 01 and less than
            12.(static)","enabled",1);
            if (static_check_info("CheckMessage","label","Invalid month Entered.The month must be
            greater than 01 and less than 12.")!="E_OK)
            #2002/09/09 謝慧強修改結束
            {
            report_msg("DateCheck:月份輸入錯誤提示不對!");
            }
            button_press ("確定");
            #close gui file
            GUI_close(".\\DateCheck.gui");
            注意恢復測試前的狀態(tài)
                    此外,如果我們要連續運行多個(gè)測試CASE、就必須考慮將被測試程式恢復測試前的狀
            態(tài),比如我們在測試SCRIPT A 中打開(kāi)了窗口A(yíng),如果下一個(gè)TESTCASE 不必用到窗口A(yíng),
            那么在SCRIPT A 窗口A(yíng)。這樣下一個(gè)TESTCASE 才能正常運行。
                    如果我們采用采用批處理及CALL 的方式來(lái)組織SCRIPT 的話(huà),就應該堅持這樣一個(gè)原
            則:“誰(shuí)打開(kāi)、誰(shuí)關(guān)閉”,這樣才便于管理。
                    此外如果對數據庫的操作也要根據具體需求考慮恢復。這些操作能考慮通過(guò)錄制通過(guò)
            數據庫客戶(hù)端的操作來(lái)實(shí)現。

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/

            TAG: winrunner WinRunner Winrunner 建議 軟件測試 新手


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

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>