這段時間積累的一些想法:
1.參考這篇吐槽https://zhuanlan.zhihu.com/p/27345893略荡,理解軟件的Bug為什么不能徹底消除這一事實。
2.和傳統(tǒng)行業(yè)(例如制造業(yè))歉胶、傳統(tǒng)軟件行業(yè)(例如軍工軟件行業(yè)汛兜、IT行業(yè))不同,互聯(lián)網(wǎng)行業(yè)的測試只保證應用的核心鏈路/功能可用通今,并不追求測試覆蓋率粥谬,出現(xiàn)小的bug能夠通過快速迭代去fix,2者的質(zhì)量策略有很大差別衡创,即使在阿里內(nèi)部帝嗡,淘寶和螞蟻的測試工具、方法和質(zhì)量管理策略璃氢、理念都是有差異的哟玷。
3.老板總是吐槽我們自己定位過低,希望我們盡快從一個項目測試人員轉(zhuǎn)變?yōu)橐粋€質(zhì)量領域?qū)<乙灰玻聦嵣衔覍@2個角色之間的區(qū)別理解的不夠透徹巢寡,即使理解清楚了,也并不代表一定能干的好椰苟,知易行難抑月。
4.現(xiàn)在很多的測試開發(fā)工程師,都喜歡自動化測試舆蝴、開發(fā)測試工具谦絮,有開發(fā)能力的測試工程師也越來越多,但是在當前行業(yè)的質(zhì)量保證還無法脫離黑盒手工測試的前提下洁仗,測試設計方法仍然是每一個測試人員都需要掌握的基本功层皱。
吐槽完了,回到正題赠潦,黑盒測試設計方法主要包含:
- 等價類劃分法
- 邊界值分析法
- 錯誤推測法
- 因果圖
- 判定表法
- 正交實驗法
- 狀態(tài)遷移圖
- 流程分析法
......
學習測試設計方法前门岔,有基本的數(shù)學基礎或者統(tǒng)計學基礎更好矛双,因為很多測試設計方法本質(zhì)上都是基于一些抽樣理論,思考的是如何通過少量的抽樣實例實現(xiàn)對測試輸入情況的全量覆蓋赢乓。
等價類劃分法
定義:將所有可能的輸入數(shù)據(jù)劃分幾個子集,子集內(nèi)的輸入數(shù)據(jù)是等價的,在子集中抽取1個(幾個)輸入數(shù)據(jù)作為用例代表整個子集,通過這種方式實現(xiàn)所有輸入數(shù)據(jù)的測試覆蓋。
等價類包括有效/無效等價類拳恋,有效/無效指的是輸入數(shù)據(jù)的有效/無效,分別用于覆蓋正常/異常場景你踩。
舉例:
1.PRD中一個頁面表單新增配置功能诅岩,規(guī)格說明如下:
輸入框錄入數(shù)據(jù)為整數(shù)[1,100],點擊保存成功带膜,否則彈出錯誤提示吩谦。
我們可以做等價類劃分如下:
c1: input<1
c2: input∈[1,100]
c3: input>100
從等價類中抽取用例如下:
c10: input = -1,output = fail
c20: input = 10, output = success
c30: input = 200, output = fail
其中c1和c3屬于無效等價類
c2屬于有效等價類
等價類劃分的原則:
1.完備性:等價類求并集為整個集合(比如舉例中,c1/c2/c3求并集就是整數(shù)集合)
2.互斥性:各等價類無交集(舉例中膝藕,c1/c2/c3為整數(shù)集合的互斥子集)
總結:
1.等價類是依據(jù)需求規(guī)格來劃分的式廷。
2.這里劃分等價類用到了邊界值分析法。
3.用例的粒度是由具體的測試設計人員來控制芭挽,測試設計人員結合實際測試場景和需求決策用例粒度滑废。
應用場景:
邊界值分析法
定義:邊界值分析法是對等價類劃分法的補充,依據(jù)等價類劃分袜爪,從等價類的邊界值處設計測試用例蠕趁。
邊界值分析法假定問題更容易發(fā)生在邊界處,這是邊界值分析法的理論基礎辛馆。
還是以等價類劃分里面的舉例來看:
按照邊界值分析法俺陋,可以抽用例如下:
c11: input = 0, output = fail
c21: input = 1, output = success
c22: input = 2, output = success
c23: input = 99, output = success
c24: input = 100, output = success
c31: input = 101, output = fail
錯誤推測法
基于經(jīng)驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法。
這是一個很唯心的異常測試設計方法昙篙,用例設計的好壞依賴:測試人員對業(yè)務的了解程度腊状、過往的
測試經(jīng)驗等。
比如測試一個移動app通話功能苔可,我們推測可能出現(xiàn)通話異常的情況有:
1.弱網(wǎng)情況(隧道里/火車上)
2.低電量情況
3.CPU/內(nèi)存耗盡
4.受到信號干擾
......
測試人員可以按照這些推測異常的場景去設計用例缴挖。
我理解的是,錯誤推測法更多的應用于發(fā)散測試/探索測試中焚辅。
因果圖
等價類劃分和邊界值分析考慮的都是輸入值的覆蓋情況映屋,但是沒有考慮不同輸入條件之間的相互影響,因果圖是利用圖解來分析各種輸入值的組合情況同蜻,根據(jù)分析結果來設計用例秧荆。
輸入條件組合的全量覆蓋為何不可行?
如果有n個輸入條件埃仪,每個輸入條件有m個等價類,則可能的組合情況是:n^m種陕赃。
>假設n=5卵蛉,m=3颁股,組合就有19683種
>實際測試場景可能比這個更復雜。
舉例:
1.PRD中的頁面表單新增配置功能傻丝,規(guī)格說明如下:
表單有2個輸入框如下:
輸入框A甘有,支持整數(shù)[1,100]
輸入框B,支持字符(1~10字符)
點擊保存成功葡缰,否則彈出錯誤提示亏掀。
2.按等價類分析整理輸入輸出如下:
輸入A,等價類為:(-∞,1),[1,100],(100,+∞)
輸入B泛释,等價類為:1字符滤愕,[2,9]字符,10字符
輸出:
保存成功
彈出錯誤提示
3.等價類全覆蓋組合如下:3*3 = 9
因果圖法:
輸入:
A1:輸入框A為[1,100]
B1:輸入框B為(1,10)字符
中間狀態(tài)A11:輸入框A已輸入[1,100]
輸出C:
C1:保存成功
C2:彈出錯誤提示
手畫因果圖如下:
因果圖的符號含義參考下面2張圖:
將上面的因果圖轉(zhuǎn)判定表如下(1代表是怜校,0代表否):
根據(jù)判定表設計4個用例即可间影。
后續(xù)繼續(xù)施工下面的幾種設計方法
- 判定表法
- 正交實驗法
- 狀態(tài)遷移圖
- 流程分析法