功能用例的生成法則

什么是測(cè)試用例

測(cè)試用例(Test Case)是為某個(gè)特殊目標(biāo)而編制的一組測(cè)試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測(cè)試某個(gè)程序路徑或核實(shí)是否滿足某個(gè)特定需求。

測(cè)試用例(Test Case)是將軟件測(cè)試的行為活動(dòng)做一個(gè)科學(xué)化的組織歸納,目的是能夠?qū)④浖y(cè)試的行為轉(zhuǎn)化成可管理的模式;同時(shí)測(cè)試用例也是將測(cè)試具體量化的方法之一,不同類別的軟件,測(cè)試用例是不同的。

測(cè)試用例是軟件測(cè)試的核心

軟件測(cè)試的重要性是毋庸置疑的。但如何以最少的人力、資源投入,在最短的時(shí)間內(nèi)完成測(cè)試,發(fā)現(xiàn)軟件系統(tǒng)缺陷,保證軟件的優(yōu)良品質(zhì),則是軟件公司探索和追求的目標(biāo)。每個(gè)軟件產(chǎn)品或軟件開發(fā)項(xiàng)目都需要有一套優(yōu)秀的測(cè)試方案和測(cè)試方法。

測(cè)試用例

影響軟件測(cè)試的因素很多,例如軟件本身的復(fù)雜程度、開發(fā)人員(包括分析、設(shè)計(jì)、編程和測(cè)試的人員)的素質(zhì)、測(cè)試方法和技術(shù)的運(yùn)用等等。因?yàn)橛行┮蛩厥强陀^存在的,無法避免。有些因素則是波動(dòng)的、不穩(wěn)定的,例如開發(fā)隊(duì)伍是流動(dòng)的,有經(jīng)驗(yàn)的走了,新人不斷補(bǔ)充進(jìn)來;一個(gè)具體的人工作也受情緒等影響,等等。如何保障軟件測(cè)試質(zhì)量的穩(wěn)定?有了測(cè)試用例,無論是誰來測(cè)試,參照測(cè)試用例實(shí)施,都能保障測(cè)試的質(zhì)量??梢园讶藶橐蛩氐挠绊憸p少到最小。即便最初的測(cè)試用例考慮不周全,隨著測(cè)試的進(jìn)行和軟件版本更新,也將日趨完善。

因此測(cè)試用例的設(shè)計(jì)和編制是軟件測(cè)試活動(dòng)中最重要的。測(cè)試用例是測(cè)試工作的指導(dǎo),是軟件測(cè)試的必須遵守的準(zhǔn)則。更是軟件測(cè)試質(zhì)量穩(wěn)定的根本保障。

設(shè)計(jì)說明

參考百度百科:https://baike.baidu.com/item/%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B/1928697

功能用例的自動(dòng)生成法則

下面是設(shè)計(jì)一個(gè)測(cè)試登陸功能是否必填的Model文件的例子。輸入條件有登錄名、密碼、驗(yàn)證碼。各項(xiàng)輸入條件分別有不同的參數(shù)選擇。

username:? ??填寫登錄名,?不填登錄名

psw:? ??????????填寫密碼,?不填密碼

yzm:? ??????????填寫驗(yàn)證碼,?不填驗(yàn)證碼

則可產(chǎn)生下面的測(cè)試用例:

username????????psw?????????????yzm

填寫登錄名??????不填密碼????????填寫驗(yàn)證碼

填寫登錄名??????填寫密碼????????不填驗(yàn)證碼

不填登錄名??????不填密碼????????不填驗(yàn)證碼

不填登錄名??????填寫密碼????????填寫驗(yàn)證碼

填寫登錄名? ? ? 填寫密碼? ? ? 填寫驗(yàn)證碼

不填登錄名? ? ? 不填密碼? ? ? 填寫驗(yàn)證碼

從上面的例子不難看出,用例自動(dòng)生成的總量依賴于信息維度數(shù)量和維度條件數(shù)量。

什么是信息維度數(shù)量?

信息維度:? ??指的是完成一個(gè)測(cè)試鏈路(比方說:登錄),需要經(jīng)歷的步驟(一個(gè)步驟可稱為一個(gè)維度),以上面例子來看,算法中包含三個(gè)維度即:username,psw,yzm

因此:信息維度數(shù)量是 3

什么是維度條件數(shù)量?

維度條件:? ??指的是各個(gè)維度中條件的個(gè)數(shù);舉個(gè)栗子:維度username中包含了【填寫登錄名】,【 不填登錄名】?jī)深悧l件(真實(shí)場(chǎng)景中考慮邊界值、等價(jià)類情況等,條件種類會(huì)大于2)

因此:維度“username”的條件數(shù)量是2

用例總量 = C21 * C21 *C21 = 6, 因此會(huì)出現(xiàn)6種不同路徑的測(cè)試用例

這種思路等同于接口用例的自動(dòng)生成法則,站在白盒測(cè)試的角度對(duì)開發(fā)代碼的路徑進(jìn)行全覆蓋,需要設(shè)計(jì)出最小cover用例數(shù)。

功能用例的自動(dòng)生成的代碼實(shí)現(xiàn)

Case類:?? ? ????顧名思義,測(cè)試用例類,是上述6條用例的統(tǒng)稱

Action類:? ? ? 動(dòng)作,是Case攜帶的屬性之一;一個(gè)Case包含N個(gè)Action

Step類:? ? ? ? ?步驟,Action在執(zhí)行過程中最終使用了哪種的步驟;一個(gè)Action包含N種Step,但是一個(gè)Action一次執(zhí)行實(shí)例化和執(zhí)行一種Step

FullCaseRoad類:? ? 生成用例總量 的方法類,缺點(diǎn)是:將無關(guān)的用例路徑也一并生成出來,對(duì)測(cè)試人員造成了極大的時(shí)間浪費(fèi)去做排查

AnalysisTest類:? ? 用例步驟信息采集的初始化類


部分代碼如下:

用例信息采集和分析[ AnalysisTest類 ]
根據(jù)輸入數(shù)據(jù)實(shí)例化?全量用例[ Case 類?]??
根據(jù)Case獲取Action動(dòng)作的關(guān)聯(lián)方法[ Action 類?]? ?
根據(jù)Action獲取Step信息的方法[Step類]

上面是小編根據(jù)面向?qū)ο驤ava管理用例的思想和實(shí)際用例步驟前后的邏輯關(guān)系特性而編寫的一個(gè)十分輕量化的框架,根據(jù)這個(gè)框架可以做很多衍生,例如:

1. 數(shù)據(jù)信息輸入采集通過Excel表錄制、線上數(shù)據(jù)分析和采集等思路對(duì)接

2. 生成的實(shí)際用例與決策樹綁定建立圖像化邏輯樹圖的對(duì)接

3. 邏輯用例和數(shù)據(jù)用例的轉(zhuǎn)化等等


該框架現(xiàn)已經(jīng)開源到百度云盤上,歡迎下載使用和繼續(xù)貢獻(xiàn):

鏈接:https://pan.baidu.com/s/13wbNBjvCCKaoMgpKzidykQ

提取碼:nxtx

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容