自動化用例的自動生成技術

發表于:2012-12-27來源:淘測試作者:雷藏點擊數: 標簽:自動化用例
閑話少說,直奔主題。 先來看看用例構成:輸入數據(包括方法入參,數據庫狀態)+ 方法調用+ 預期結果+ 結果比對 而這里面“方法調用”,“結果比對”都是固定的可以封裝起來,所以用例的核心就是數據:輸入數據,預期數據。只要解決了這兩個問題所有
  閑話少說,直奔主題。
  先來看看用例構成:輸入數據(包括方法入參,數據庫狀態)+ 方法調用+ 預期結果+ 結果比對
  而這里面“方法調用”,“結果比對”都是固定的可以封裝起來,所以用例的核心就是數據:輸入數據,預期數據。只要解決了這兩個問題所有問題就解決了。
  空說無憑,將這兩天做的一個日常作為實例來說明問題。
  需求說明:
  根據B2B用戶nick,獲取用戶信息(user),用戶旺旺處罰規則code(ruleCode),用戶狀態(suspended),處罰中心相關數據(punishData),如果是子帳號還需要獲取子帳號相關信息(mmpData)
  詳細設計流程圖如下:
  1、解決輸入數據問題
  第一步,對上述詳細設計進行分析,整理出輸入、輸出,這里的輸入包括“方法調用入參”,“數據庫數據”:
輸入數據 入參nick
旺旺規則數據wwLimitData
用戶狀態suspended
處罰中心數據punishData
子帳號數據mmpData
輸出數據 用戶信息user
旺旺ruleCode
用戶suspended
處罰數據punishData
子帳號數據mmpData
  第二步,整理出所有輸入數據的取值范圍,這里就要把我們生平所學的所有業務知識、測試理論全都用上,什么等價類啊,邊界值啊,隨便吧,總之八仙過海各顯神通,不過這里數據取的不好是會影響測試用例質量的哦!(PS:數據庫字段數據的取值范圍有個偷懶的辦法,可以去線上庫distinct一下,立馬就有了):
輸入數據 類型 取值范圍(包含異常取值) 取值個數
nick String “”,空串
null
“1233211”,不存在的用戶nick
“leizang_test”, 淘寶帳號
“leizang_btob_1”,B2b帳號
“ leizang_btob_1:subnick01”, 子帳號
6
suspended Integer 0,1,2,3,-9 5
wwLimitData String null
“true”
“OK_WW”
“ LIMIT_WW”
“ {"ruleCode":"","wwuic-limit":"OK_WW"}”
“ {"ruleCode":"xxxx","wwuic-limit":"LIMIT_WW"}”
6
punishData String null
"UEsDBBQACAAIAGL/Ua61XfDlBLBwi2PNplVAAAAPwDAAA="
2
mmpData String null
“{"accountStatus":-1}”
“{"accountStatus":3,"owedStatus":-1}”
3
  一旦輸入范圍確定,用例的輸入就好解決了,最笨的辦法就是把所有的數據排列組合一遍,肯定能測試到所有的場景,只是用例的數量龐大一點而已,排列組合后的用例個數為:6*5*6*2*3= 1080個,哇靠,這么多啊,果然不是人能做出來的,看你以后老板還敢不敢要求腳本數量。不過呢,這里面水分很多,有很多重復場景,那有效場景到底有多少呢?我們先放一放,容后再談,先來解決一下預期數據的準備問題。
  2、解決預期數據問題
  梳理流程圖,整理出依賴關系,“A-- > B”表示A依賴于B:
  整理出的依賴關系如下:
中間對象 被依賴對象
user nick
ruleCode user, wwLimitData
isFrozen user, wwLimitData
suspended user, isFrozen
punishData user, punishData, suspended
mmpData user, mmpData
  這樣,我們可以針對每一個“中間對象”(沒想到好名字,姑且先這么叫)編寫一個獲取中間對象取值范圍的方法。注意這里用詞是“取值范圍”,跟開發的程序邏輯是不一樣的,是我們根據“輸入的數據”并按照“業務規則”得出的,我們直接用數據說話,那么到底該如何編寫呢?接著往下看。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97