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

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

  • <strong id="5koa6"></strong>
  • 軟件測試自動化中腳本開發經驗分享(2)

    發表于:2014-08-27來源:uml.org.cn作者:不詳點擊數: 標簽:腳本
    Case3:對2個有序文件進行merge,構造case的時候,構造文件$1,$2進行 merge,如果$1先結束,會造成$1的最后一條還 會不斷打印出來,使文件無序,如果$2文件

      Case3:對2個有序文件進行merge,構造case的時候,構造文件$1,$2進行 merge,如果$1先結束,會造成$1的最后一條還 會不斷打印出來,使文件無序,如果$2文件先結束,則不會出現該情況,構造數據驗證時要注意等價類劃分情況,保證所有情況都被測試到。

      錯誤代碼:

     
    77 awk '
    78 BEGIN{
    79 key_url=""
    80 key_all=""
    81 ret=1
    82 }
    83 {
    84 if($2<'$OLDEST_TIME') next
    85 url=$1
    86 while( url>key_url){ ######修改為while(ret>0 && url>key_url)
    
    87 if(key_all) print key_all
    88 while((ret=getline line < "'$1'")>0){
    89 sp=index(line, " ")
    90 tmp_url=substr(line, 1, sp-1)
    91 if(tmp_url>key_url){
    92 key_url=tmp_url
    93 key_all=line
    94 break
    95 }
    96 print line
    97 }
    98 if(ret==0) break
    99 }
    100 print
    101 }
    102 END{
    103 if(ret) print line
    104 while(ret=getline line < "'$1'"){ #######修改為((ret=getline line < "'$1'")>0 print line
    105 print line
    106 }
    107 }' $2

      4、加快腳本測試方法

      做任何事情,如果想加快,都有一些熟知的方法:1、并行處理; 2、借助于工具,自動化不需要人工介入的部分;3、加快必須人工部分的速度。如果把上面的基本方式映射到我們的腳本測試中:

      4.1 并行執行多個CASE

      我們可以對多次運行做并行化。對于腳本類測試,大多數是挖掘類,基于一個比較復雜的測試周邊環境,但是,不會修改本模塊以外的環境和數據。

      我們可以利用一個周邊環境,部署多個被測程序,通過修改conf來保證運行:

      a)對同一臺機器部署多個不同目錄(減少搭建周邊環境)

      b)對不同機器相同路徑部署(減少修改conf)

      對不同目錄進行不同case運行。比如,新舊對比,性能,功能等同時進行。同時對多個粒度進行測試,避免因為某次運行,占用環境,而堵塞我們的測試過程。

      4.2 借助工具

      自動化操作步驟,這個我們自己可以編寫test腳本來完成,比如性能監控,環境清理等功能。

      借助于自動化通用工具,比如類似編譯器的變量檢查,路徑檢查,函數接口檢查等,實現腳本之間調用關系和數據依賴關系的檢查等。對很多產品線的公共問題,統一處理,這些都是大組、專人來開發和維護。

      4.3 腳本測試技巧

      人是靈活的,不是所有的工作都適合自動化。腳本測試設計中和代碼邏輯強相關的部分,不易自動化,因為自動化要兼容多種可能性的時候,太復雜,而且不能保證100%的準確率,還是需要人工參與,比如:

      問題1:if的異常分支,空文件構造,數據的清空邏輯,數據的歷史維護邏輯,ssh邏輯,如何快速驗證?

      問題2:我們為了不同粒度的測試,需要多次運行腳本,有些腳本運行時間很長,是否可以一次運行,測試完所有粒度的功能?

      上面這個例子中的一些技巧:

      A)異常分支,我們可以通過添加語句mkdir –p a;rm a,來保證#?的檢測

      B)構造各種邏輯,或者看代碼,看是否滿足線上對數據邏輯的需求。

      C)中間數據的保留,對需要長時間運行的代碼塊兒,插上樁,將結果cp到其他文件,縮短時間,后續修改腳本代碼,利用備份的中間文件多次獨立運行,節省時間。

      D)成功運行一次,和多次運行相結合,對中間文件如果在腳本被刪除,需要我們再需要關注的關鍵點cp得到bak文件,運行一次后,保證任何段的代碼(粒度),單獨都可以運行。加上多環境,我們就可以在一次成功運行后,測試完所有的功能,同時并行完成性能測試。)

      E)多機不同用戶部署,可以變為單機不同用戶部署;總控和運行機器,也可以通過單臺模擬,和自己建立信任關系,來驗證功能。

    原文轉自:http://www.uml.org.cn/Test/201206143.asp

    老湿亚洲永久精品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>