日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

测试用例设计

發(fā)布時間:2023/12/31 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 测试用例设计 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、?等價類劃分:(從輸入角度考慮測試用例設計)

  • 等價類:用戶不同的輸入,軟件的處理是一樣的:要么同時正確,要么同時錯誤。
  • 具體步驟
  • 確定輸入
  • 梳理業(yè)務過程,確定每個輸入的輸入條件:輸入的限制條件或要求
  • 針對每個輸入條件確定有效等價類和無效等價類
  • ?有效等價類:合法、正常、正向數(shù)據(jù)
  • 無效等價類:非法、異常、逆向數(shù)據(jù)
  • 用測試用例覆蓋等價類
  • ?用盡量少的測試用例覆蓋有效等價類
  • 針對每個無效等價類分別用測試用例覆蓋

    a. 大多數(shù)軟件在對輸入進行檢查時,一旦發(fā)現(xiàn)前面輸入錯誤,后面的輸入會不再檢查;????????????????????????

    b. 便于開發(fā)人員定位缺陷;

  • 案例:測試餓了么小程序新增地址功能
  • 存在選填項:選填項可以測試,也可以不測試
  • 地址輸入點擊后進入選擇收貨地址界面,可以單獨考慮測試
  • 輸入項輸入條件有效類無效類
    聯(lián)系人必填項不為空(1)為空(9)
    字母或漢字字母或漢字(2)含特殊字符(10)
    性別必選項選擇(3)不選(11)
    電話必填項不為空(4)為空(12)
    11位數(shù)字11位數(shù)字(5)少于11位數(shù)字(13),大于11位數(shù)字(14),11位包含非數(shù)字(15)
    手機號符合格式要求符合(6)不符合(16)
    地址必填項不為空(7)為空(17)
    必須存在存在(8)不存在(18)
    測試用例覆蓋等價類測試輸入測試標題
    11、2、3、4、5、6、7、8大強、先生、190xxxx8685、陜西省西安市高新區(qū)新增正確的地址
    29、、先生、190xxxx8685、陜西省西安市高新區(qū)聯(lián)系人為空新增
    310、大強@、先生、190xxxx8685、陜西省西安市高新區(qū)聯(lián)系人含特殊字符新增
    411、大強、190xxxx8685、陜西省西安市高新區(qū)不選性別新增
    512、大強、先生、陜西省西安市高新區(qū)電話為空新增
    613、大強、先生、190xxxx868、陜西省西安市高新區(qū)電話少于11位數(shù)字新增
    714、大強、先生、190xxxx86850、陜西省西安市高新區(qū)電話大于11位數(shù)字新增
    815、大強、先生、190xxxx868a、陜西省西安市高新區(qū)電話包含字母新增
    916、大強、先生、00000000000、陜西省西安市高新區(qū)電話不符合格式新增
    1017、大強、先生、190xxxx8685地址為空新增
    1118、大強、先生、190xxxx8685、火星地址不存在新增
  • 等價類劃分原則:
  • 必填項 (滿足某個條件):一個有效,一個無效?
  • 長度范圍:
  • 有效和無效等價類可以進一步細分
  • 特點:只考慮覆蓋,不考慮組合
  • 2、邊界值分析

  • 針對有取值范圍的輸入,可以考慮用邊界值覆蓋等價類;

    eg:if length>=6 && length<=8

  • 邊界值:上點和離點
  • 上點:邊界上的點,? ?eg:長度6-8:上點為6和8
  • 離點:離邊界最近的點:

    1. 如果取值范圍為閉區(qū)間,離點在取值范圍外:

    ? ? ? ? eg:長度6-8,離點為5和9

    2. 如果取值范圍為開區(qū)間,離點在取值范圍內(nèi):

    ? ? ? ? eg:長度<6 && 長度>8,離點為5和9

  • 3、正交實驗法

  • 正交實驗法是利用正交表自動篩選組合輸入項來進行測試。比等價類對組合的測試更加充分。
  • 正交表:(因子——>輸入項; 狀態(tài)——>輸入取值)
  • 幾因子幾狀態(tài)正交表:
  • 特點:
  • 用盡量少的測試用例覆蓋兩兩組合;
  • 如果兩兩組合沒問題,更復雜的組合出問題概率低/風險小:
  • 具體步驟
  • 確定需要組合的輸入/因子和輸入取值狀態(tài);
  • 選擇合適的正交表:根據(jù)因子個數(shù);
  • 將實際輸入以及輸入取值代入正交表得到測試用例;
  • 案例1:測試餓了么篩選功能
  • 分析可得,有4個因子(輸入項),最多4個狀態(tài)(輸入取值):
    等價類輸入輸入條件有效無效
    配送方式選填不選1,蜂鳥2
    人均消費選填不選3,20以下4,20-40 5,40以上6
    優(yōu)惠活動選填不選7,任選一個8
    商家屬性選填不選9,選一個10,選多個11
    測試用例等價類覆蓋
    1、3、7、9
    2、4、8、10
    1、5、7、11
    1、6、7、9
    對組合的測試很不充分
    正交因子
    配送方式1人均消費2優(yōu)惠活動3商家屬性4
    狀態(tài)不選1/3不選1不選1/3不選1
    蜂鳥220以下2任選一個2選一個2
    20-40 3選多個3
    40以上3
  • 可選擇正交表:4因子2狀態(tài)和4因子3狀態(tài),我們優(yōu)先選擇4因子3狀態(tài)正交表:
  • 實際輸入以及輸入取值代入正交表,可組合出12個測試用例【注意多出的一個狀態(tài)的組合方式:其他項取值不變,20-40 和 20以上 分別和其他項組合一次】:
    配送方式人均消費優(yōu)惠活動商家屬性
    1不選不選不選不選
    2不選20以下任選一個選一個
    3不選20-40不選選多個
    4不選40以上不選選多個
    5蜂鳥不選任選一個選多個
    6蜂鳥20以下不選不選
    7蜂鳥20-40不選選一個
    8蜂鳥40以上不選選一個
    9不選不選不選選一個
    10不選20以下不選選多個
    11不選20-40任選一個不選
    12不選40以上任選一個不選

    對比4因子2狀態(tài):

    配送方式1人均消費2優(yōu)惠活動3商家屬性4
    不選0不選0不選0不選0
    蜂鳥120以下0任選一個1選一個1
    20-40 1選多個1
    40以上1

    代入輸入和取值,得到測試用例:

    配送方式人均消費優(yōu)惠活動商家屬性
    1不選不選不選不選
    2不選20以下不選不選
    3蜂鳥不選任選一個不選
    4蜂鳥20以下任選一個不選
    5不選20-40任選一個不選
    6不選40以上任選一個不選
    7蜂鳥20-40不選不選
    8蜂鳥40以上不選不選
    9不選不選不選選一個
    10不選20以下不選選一個
    11不選不選不選選多個
    12不選20以下不選選多個
    13蜂鳥不選任選一個選一個
    14蜂鳥20以下任選一個選一個
    15蜂鳥不選任選一個選多個
    16蜂鳥20以下任選一個選多個
    17不選20-40任選一個選一個
    18不選20-40任選一個選多個
    19不選40以上任選一個選一個
    20不選40以上任選一個選多個
    21蜂鳥20-40不選選一個
    22蜂鳥20-40不選選多個
    23蜂鳥40以上不選選一個
    24蜂鳥40以上不選選多個

    ? ? ? ? 以上,比對可得出,在輸入項(因子)確定的情況下,選擇輸入項取值(狀態(tài))最接近的正交表,可以用最少的測試用例覆蓋最多的組合

  • 案例2:測試word打印功能
  • 不需要考慮所有輸入的組合,對于比較復雜或者和其他輸入相關,可以單獨拿出來測試;
  • 盡量選擇用戶常用的輸入。
  • 組合測試用例:
  • 確定因子(輸入項)和狀態(tài)(輸入取值):
    因子
    狀態(tài)打印機名稱1頁面范圍2打印3份數(shù)4
    本地打印機1全部1所有11份1/3
    遠程打印機2當前頁2奇數(shù)頁2多份2
    虛擬打印機3頁碼范圍3偶數(shù)頁3
  • 選擇4因子3狀態(tài)正交表:見案例1
  • 代入正交表得到測試用例:不附結(jié)果了,發(fā)動大腦,代入進去練練手吧~
  • 正交試驗法的特點:
  • 使用比較簡單;
  • 不關心選取出來的組合有什么業(yè)務含義,可以人為補充用戶常用組合來測試。
  • 常用正交表:https://www.cnblogs.com/snailgirl/p/8507479.html
  • 4、輸入域分析:

  • 一般用于對等價類 + 邊界值的補充測試;
  • 超大值:
  • eg:QQ登錄時,QQ號輸入1000位數(shù)字,超出保存QQ號輸入的變量的存儲空間大小,可能會導致內(nèi)存溢出,可能影響其它程序?qū)е麻W退、崩潰。
  • 特殊值:通常和程序代碼有關
  • eg1:千年蟲,年份用兩位數(shù)字存儲:2000年
  • eg2:2038bug,32位系統(tǒng)上,日期以秒為單位來存儲,在北京時間2038.1.19-11:14:07,日期會回到1970.1.1-00:00:00
  • 5、判定表:

  • 判定表:從業(yè)務規(guī)則角度考慮測試用例設計。業(yè)務規(guī)則復雜的系統(tǒng),可以選用判定表法。例如,控制系統(tǒng)(eg:電梯)、金融/電信
  • 術語:
  • 條件:輸入
  • 動作:輸出
  • 規(guī)則:若干條件取值和動作取值和動作取值的對應關系
  • 具體步驟
  • 確定條件、動作;
  • 針對所有條件做全排列組合,完全覆蓋所有業(yè)務規(guī)則;
  • 去除無效的組合;
  • 合并相似規(guī)則:動作和某個條件的取值無關。這是判定表法的價值所在
  • 針對簡化后的判定表中每條規(guī)則至少用一條測試用例覆蓋
  • 案例1:測試QQ登錄功能
    條件QQ號/手機號/郵箱(存在/不存在/空)3存在存在存在不存在不存在不存在
    密碼(正確/錯誤/空)3正確錯誤正確錯誤正確錯誤
    動作登錄成功(是/否)
    QQ號/手機號/郵箱(存在/不存在/空)3存在存在存在注:黃色,賬號不存在或為空,不會再進行密碼驗證,屬于無效組合,剔除它
    密碼(正確/錯誤/空)3正確錯誤注:綠色,動作和賬號的取值無關,合并
    登錄成功(是/否)
    測試用例測試輸入測試標題
    1234、123456合法qq號登錄
    1234、234567密碼錯誤登錄
    1234、密碼為空登錄
  • 全排列組合為9個:最多9條業(yè)務規(guī)則
  • 判定表中相似規(guī)則:只要密碼為空,無論QQ號怎么輸入,結(jié)果都是登陸失敗。
  • 判定表的特點:
  • 可以覆蓋所有的業(yè)務規(guī)則,避免業(yè)務規(guī)則的漏測;
  • 比較繁瑣,工作量大;
  • 合并相似規(guī)則可能導致漏測。
  • 重點在于,使用等價類劃分設計測試用例后,需要查看一下是否有業(yè)務規(guī)則沒有測試到。
  • 6、因果圖:

  • 因果圖,通過減少條件個數(shù)降低判定表法的工作量,輔助生成判定表。
  • 具體步驟:
  • 確定所有原因和結(jié)果:原因/條件/輸入、結(jié)果/動作/輸出
  • 畫出因果圖
  • 將大因果圖拆分成小因果圖
  • 根據(jù)小因果圖得到小判定表
  • 小判定表合并為大判定表
  • 案例1:有一個文本處理程序,如果輸入的文本第一列字符為A或者B,第二列為數(shù)字,則修改文本;如果第一列不正確,給出信息L;如果第二列信息不正確,給出信息M。
  • 等價類方法:
    輸入輸入條件有效無效
    文本第一列為A或B第一列為A(1),第一列為B(2)第一列不為A和B(4)
    第二列為數(shù)字第二列為數(shù)字(3)第二列不為數(shù)字(5)
    測試用例覆蓋等價類測試輸入測試標題
    1、3A3第一列為A第二列為數(shù)字
    2、3B4第一列為B第二列為數(shù)字
    4、3C3第一列不為A和B第二列為數(shù)字
    1、5A*第一列為A第二列不為數(shù)字
  • 判定表方法:
    條件(3)第一列為A(是/否)2
    第一列為B(是/否)2
    第二列為數(shù)字(是/否)2
    動作修改文本
    L
    M
    A3A*B4B*C3C*
  • 因果圖:
  • 大因果圖:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ?
  • 拆分為兩個小因果圖,及其判定表:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????
    第一列為A(是/否)
    第一列為B(是/否)
    第一列為A或B
    ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ?
    第一列為A或B
    第二列為數(shù)字
    修改文本
    L
    M
  • 合并判定表:
    第一列為A(是/否)
    第一列為B(是/否)
    第二列為數(shù)字(是/否)
    修改文本
    L
    M
    ?
  • 7、輸出域分析:

  • 當輸出為數(shù)字的時候,可以考慮輸出域分析方法
  • 適用范圍:電子商務、金融
  • 案例:餓了么結(jié)賬
    輸出輸出條件有效無效
    待支付金額滿20減免快送費<20,>=20
    滿40減5<40,>=40
    滿60減10<60,>=60
    測試用例測試輸入測試標題
    菜的金額為19點餐金額不滿20
    菜的金額為20點餐金額正好20
    菜的金額為39點餐金額不滿40
    菜的金額為40點餐金額正好40
    菜的金額為59點餐金額不滿60
    菜的金額為60點餐金額滿60
  • 8、狀態(tài)遷移:從工作狀態(tài)角度考慮測試用例設計

  • 工作狀態(tài):

    手機:關機、搜索網(wǎng)絡、待機、通話

    電梯:上行、下行、停止

    紅綠燈:紅、綠、黃

  • 具體步驟:
  • 畫狀態(tài)遷移圖或?qū)憼顟B(tài)時間表,列出所有可能的工作狀態(tài)的變化;
  • 畫狀態(tài)轉(zhuǎn)換樹來覆蓋所有的工作狀態(tài)變化;
  • 找出所有的測試路徑;
  • 針對每條測試路徑至少寫一條測試用例;
  • 案例1:手機整機測試
  • 狀態(tài)遷移圖 and 狀態(tài)事件表:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
  • 狀態(tài)轉(zhuǎn)換樹:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
  • 測試路徑:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 案例2:手機音樂播放器:
  • 工作狀態(tài)的確定沒有可參考的,不需要將所有看到的功能都變成狀態(tài),盡量拆開,盡量簡化
  • 狀態(tài)遷移圖 and 狀態(tài)事件表:
    狀態(tài)事件表后一狀態(tài)
    前一狀態(tài)初始播放暫停
    初始點擊歌曲
    播放上一首/下一首點擊暫停/無網(wǎng)絡/播放結(jié)束
    暫停點擊播放/上一首/下一首
    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 測試路徑:
  • 初始-->播放-->播放
  • 初始-->播放-->暫停-->播放
  • 測試用例:
  • 點擊歌曲-->點上一首
  • 點擊歌曲-->點下一首
  • 點擊歌曲-->點擊暫停-->點擊播放
  • 點擊歌曲-->無網(wǎng)絡暫停-->點上一首
  • 點擊歌曲-->播放結(jié)束-->點下一首
  • 案例3:鬧鐘設置? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 案例4:語言設置? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
  • ?9、流程分析:從業(yè)務流程角度考慮測試用例設計

  • 金融行業(yè)(銀行、保險、證券)、電信行業(yè)、電子商務行業(yè)比較適合業(yè)務流程分析。
  • 業(yè)務流程的內(nèi)容:不同角色不同操作(測試步驟)得到不同結(jié)果(預期輸出)。
  • 具體步驟:
  • 熟悉和理解業(yè)務,畫出業(yè)務流程圖;
  • 使用基本路徑覆蓋來找出所有測試路徑:

    1. 基本路徑覆蓋:循環(huán)次數(shù)不超過1次

    2. 測試路徑:基本流和備選流

    ? ? ? ? ?a. 基本流程:一次性成功

    ? ? ? ? ?b. 備選流程:1> 經(jīng)過波折后成功; 2> 失敗;

  • ?針對每條測試路徑至少寫一條測試用例
  • 案例1:ATM機取款流程:
  • 案例2:QQ電腦管家安裝流程? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
  • 10、錯誤猜測:?

  • 從經(jīng)驗角度考慮測試用例設計,通常用于其他方法使用完之后,最后補充使用。

  • 總結(jié)

    以上是生活随笔為你收集整理的测试用例设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。