接口測試巧用 「單一變量法」

測試與實驗

「單一變量法」,咋這麼熟悉的名字?
高中生物課、化學、物理,大學時代的各類實驗課中都有說起。
就是這個「單一變量法」,也可用於軟件測試領域。java

示例

doSomething(req)表示爲接口測試過程當中的某個方法,Java示例代碼以下:json

public DoSomethingRes doSomething(DoSomethingReq req) {
  // check params
  check(req);
  DoSomethingRes res= null;

  SomeRpc rpc = getSomeRpc();
  SomeRpcReq rpcReq = build(req);
  rpc.doRpcMethod(rpcReq);

  // do something else
  return res;
}

請求參數:segmentfault

字段名稱 類型 取值範圍 必填項 備註
user String
type int [0,1,2]
queryStartDate String 格式爲yyyy-MM-dd

返回結果:數組

字段名稱 類型 備註
success Bool true表示成功,false表示失敗
message String
data Array 對象數組

示例數據:測試

// 請求參數
{
  "user": "String",
  "type": "1",
  "queryStartDate": "2018-09-30"
}

// 返回結果
{
  "success": true,
  "message": "ok",
  "data":[
    {
      ...
    },
    {
      ...
    }
  ]
}

單一變量法實踐以下

選擇user、type、queryStartDate三個正確參數,保持其中2個參數不變,僅修改其中1個參數。ui

(1)檢查各個參數進行非空校驗的測試用例

  1. user=null,type=1,queryStartDate=2018-09-30
  2. user=helloworld,type=null,queryStartDate=2018-09-30
  3. user=helloworld,type=1,queryStartDate=null

(2)檢查各個參數進行空字符串校驗的測試用例

  1. user=空字符串,type=1,queryStartDate=2018-09-30
  2. user=helloworld,type=空字符串,queryStartDate=2018-09-30
  3. user=helloworld,type=1,queryStartDate=空字符串

(3)保持user、queryStartDate不變,遍歷type枚舉項的測試用例

  1. user=helloworld,type=0,queryStartDate=2018-09-30
  2. user=helloworld,type=1,queryStartDate=2018-09-30
  3. user=helloworld,type=2,queryStartDate=2018-09-30

(4)補充測試用例

單一變量法檢查接口參數是否正常,可能會致使部分組合參數不能覆蓋,須要在測試過程當中根據實際代碼覆蓋率狀況補充測試用例。
舉例:doSomething內部針對特殊用戶,代碼執行了不一樣的業務代碼,此時須要對特殊用戶增長測試用例。code

  1. user=admin(特殊權限用戶),type=0,queryStartDate=2018-09-30
  2. user=admin(特殊權限用戶),type=1,queryStartDate=2018-09-30
  3. user=admin(特殊權限用戶),type=2,queryStartDate=2018-09-30

爲什麼使用單一變量法進行接口測試?

使用單一變量法,能夠方便組織測試用例,甚至批量生成用例,並快速進行接口自動化測試。對象

代碼實踐

由你來發揮,建議動手實踐。接口

申明

本文由做者同步發佈到segmentfault知乎社區testerhome字符串

相關文章
相關標籤/搜索