摘要:測(cè)試與實(shí)驗(yàn)單一變量法,咋這么熟悉的名字高中生物課化學(xué)物理,大學(xué)時(shí)代的各種實(shí)驗(yàn)課中都有提及。就是這個(gè)單一變量法,也可用于軟件測(cè)試領(lǐng)域。
測(cè)試與實(shí)驗(yàn)
“單一變量法”,咋這么熟悉的名字?
高中生物課、化學(xué)、物理,大學(xué)時(shí)代的各種實(shí)驗(yàn)課中都有提及。
就是這個(gè)“單一變量法”,也可用于軟件測(cè)試領(lǐng)域。
doSomething(req)表示為接口測(cè)試過程中的某個(gè)方法,Java示例代碼如下:
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; }
請(qǐng)求參數(shù):
字段名稱 | 類型 | 取值范圍 | 必填項(xiàng) | 備注 |
---|---|---|---|---|
user | String | 是 | ||
type | int | [0,1,2] | 是 | |
queryStartDate | String | 是 | 格式為yyyy-MM-dd |
返回結(jié)果:
字段名稱 | 類型 | 備注 |
---|---|---|
success | Bool | true表示成功,false表示失敗 |
message | String | |
data | Array | 對(duì)象數(shù)組 |
示例數(shù)據(jù):
// 請(qǐng)求參數(shù) { "user": "String", "type": "1", "queryStartDate": "2018-09-30" } // 返回結(jié)果 { "success": true, "message": "ok", "data":[ { ... }, { ... } ] }單一變量法實(shí)踐如下
選擇user、type、queryStartDate三個(gè)正確參數(shù),保持其中2個(gè)參數(shù)不變,僅修改其中1個(gè)參數(shù)。
(1)檢查各個(gè)參數(shù)進(jìn)行非空校驗(yàn)的測(cè)試用例(2)檢查各個(gè)參數(shù)進(jìn)行空字符串校驗(yàn)的測(cè)試用例user=null,type=1,queryStartDate=2018-09-30
user=helloworld,type=null,queryStartDate=2018-09-30
user=helloworld,type=1,queryStartDate=null
(3)保持user、queryStartDate不變,遍歷type枚舉項(xiàng)的測(cè)試用例user=空字符串,type=1,queryStartDate=2018-09-30
user=helloworld,type=空字符串,queryStartDate=2018-09-30
user=helloworld,type=1,queryStartDate=空字符串
(4)補(bǔ)充測(cè)試用例user=helloworld,type=0,queryStartDate=2018-09-30
user=helloworld,type=1,queryStartDate=2018-09-30
user=helloworld,type=2,queryStartDate=2018-09-30
單一變量法檢查接口參數(shù)是否正常,可能會(huì)導(dǎo)致部分組合參數(shù)不能覆蓋,需要在測(cè)試過程中根據(jù)實(shí)際代碼覆蓋率情況補(bǔ)充測(cè)試用例。
舉例:doSomething內(nèi)部針對(duì)特殊用戶,代碼執(zhí)行了不同的業(yè)務(wù)代碼,此時(shí)需要對(duì)特殊用戶增加測(cè)試用例。
為何使用單一變量法進(jìn)行接口測(cè)試?user=admin(特殊權(quán)限用戶),type=0,queryStartDate=2018-09-30
user=admin(特殊權(quán)限用戶),type=1,queryStartDate=2018-09-30
user=admin(特殊權(quán)限用戶),type=2,queryStartDate=2018-09-30
使用單一變量法,可以方便組織測(cè)試用例,甚至批量生成用例,并快速進(jìn)行接口自動(dòng)化測(cè)試。
代碼實(shí)踐由你來發(fā)揮,建議動(dòng)手實(shí)踐。
申明本文由作者同步發(fā)布到segmentfault、知乎社區(qū)、testerhome。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/8840.html
摘要:調(diào)用分布式服務(wù)接口時(shí)經(jīng)常會(huì)遇到這樣的問題接口方提供多個(gè)供用戶調(diào)用,只要有一個(gè)返回成功就算成功。但是請(qǐng)注意不是等到有一個(gè)被時(shí)返回,而是只要有一個(gè)被時(shí)就會(huì)返回,不論這個(gè)是還是。 調(diào)用分布式服務(wù)接口時(shí)經(jīng)常會(huì)遇到這樣的問題:接口方提供多個(gè) IP 供用戶調(diào)用,只要有一個(gè)返回成功就算成功。 對(duì)于這樣的問題,一個(gè)比較簡(jiǎn)單的方案是依次調(diào)用各個(gè)接口,如果前一個(gè)接口未成功返回再調(diào)用第二個(gè)接口。這樣做的好處...
摘要:老的訪問方式以及耗時(shí)統(tǒng)計(jì)耗時(shí)耗時(shí)秒并發(fā)訪問方式以及耗時(shí)統(tǒng)計(jì)耗時(shí)耗時(shí)秒帥氣吧整個(gè)頁面訪問后端接口的時(shí)間節(jié)省了一半 前言: 在我們平時(shí)的程序中難免出現(xiàn)同時(shí)訪問幾個(gè)接口的情況,平時(shí)我們用curl進(jìn)行訪問的時(shí)候,一般都是單個(gè)、順序訪問,假如有3個(gè)接口,每個(gè)接口耗時(shí)500毫秒那么我們?nèi)齻€(gè)接口就要花費(fèi)1500毫秒了,這個(gè)問題太頭疼了嚴(yán)重影響了頁面訪問速度,有沒有可能并發(fā)訪問來提高速度呢?今天就簡(jiǎn)...
摘要:正則表達(dá)式巧用匹配特殊字符作者原文章首先聲明,本文所有的代碼都是在下面運(yùn)行,需要修改之后才能運(yùn)行,但是本文沒有涉及到太多的新特性,而且由于對(duì)修飾符不支持,最后的實(shí)現(xiàn)也基本是用的知識(shí)寫的代碼。 正則表達(dá)式巧用 Unicode 匹配特殊字符 作者 @zwhu 原文章 @github 首先聲明,本文所有的代碼都是在 ES6 下面運(yùn)行,ES5需要修改之后才能運(yùn)行,但是本文沒有涉及到太多的ES6...
摘要:并且,一些偽元素可以使開發(fā)者獲取到不存在于源文檔中的內(nèi)容比如常見的還可以為偽元素定制樣式。。中新增加的偽元素必須用偽類使用一個(gè)冒號(hào)例如。就本文而言,我們將把我們探討的范圍限制在和這兩個(gè)偽元素的巧用上。 作為一門前端er,你肯定熟知 a:hover ? ??a:visited.....我還記得在小本本上記著訣竅:love 與 hate 糾纏不休,大家都懂的吧。。。。 ? ?????偽類和...
閱讀 1595·2021-11-22 15:33
閱讀 1741·2021-11-15 18:01
閱讀 678·2021-10-09 09:43
閱讀 2619·2021-09-22 16:03
閱讀 764·2021-09-03 10:28
閱讀 3565·2021-08-11 10:22
閱讀 2727·2019-08-30 15:54
閱讀 1768·2019-08-30 14:21