「單一變量法」,咋這麼熟悉的名字?
高中生物課、化學、物理,大學時代的各類實驗課中都有說起。
就是這個「單一變量法」,也可用於軟件測試領域。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
- user=null,type=1,queryStartDate=2018-09-30
- user=helloworld,type=null,queryStartDate=2018-09-30
- user=helloworld,type=1,queryStartDate=null
- user=空字符串,type=1,queryStartDate=2018-09-30
- user=helloworld,type=空字符串,queryStartDate=2018-09-30
- user=helloworld,type=1,queryStartDate=空字符串
- user=helloworld,type=0,queryStartDate=2018-09-30
- user=helloworld,type=1,queryStartDate=2018-09-30
- user=helloworld,type=2,queryStartDate=2018-09-30
單一變量法檢查接口參數是否正常,可能會致使部分組合參數不能覆蓋,須要在測試過程當中根據實際代碼覆蓋率狀況補充測試用例。
舉例:doSomething內部針對特殊用戶,代碼執行了不一樣的業務代碼,此時須要對特殊用戶增長測試用例。code
- user=admin(特殊權限用戶),type=0,queryStartDate=2018-09-30
- user=admin(特殊權限用戶),type=1,queryStartDate=2018-09-30
- user=admin(特殊權限用戶),type=2,queryStartDate=2018-09-30
使用單一變量法,能夠方便組織測試用例,甚至批量生成用例,並快速進行接口自動化測試。對象
由你來發揮,建議動手實踐。接口
本文由做者同步發佈到segmentfault、知乎社區、testerhome。字符串