試用例設(shè)計是測試過程中非常重要的一個活動鳍贾,不管是文檔化的設(shè)計輸出,還是只是存在于他們腦海中的測試思想交洗,其質(zhì)量都會直接影響測試執(zhí)行的質(zhì)量骑科。
【java學習資料免費分享微信:tangniu520666,備注“4”】
盡管每個測試人員都掌握了不少的測試用例設(shè)計技術(shù)與方法构拳,例如:等價類劃分咆爽、狀態(tài)轉(zhuǎn)換測試等,但是如何將它們應(yīng)用到具體的測試對象測試中去隐圾,很多測試人員都會感覺有些力不從心伍掀,甚至有無從下手的感覺。
下面是針對某個功能模塊的一個簡單的需求描述:該基本功能是為了創(chuàng)建某個條目暇藏,它的基本需求如下:
假如dataBit0 = 0蜜笤, 并且cBPDU或者pBPDU的值不為1,那么創(chuàng)建請求會被拒絕盐碱。假如dataBit0 = 0把兔, 并且cBPDU = 1或者pBPDU = 1沪伙,在滿足下面條件下可以創(chuàng)建成功:
(1)其他的bit不能為1;
(2)TD的取值必須是Guranteed县好;
(3)VLANpop的取值必須是disabled围橡;
假如你得到這樣的一個需求描述,你準備如何來設(shè)計該功能模塊的測試用例缕贡?通常來說翁授,測試人員拿到需求規(guī)格說明之后,會根據(jù)其中定義的需求條目設(shè)計測試用例晾咪,類似于如下過程收擦。
針對上面的需求描述,根據(jù)圖1直接設(shè)計測試用例谍倦,會不會覺得有些迷茫呢塞赂?即使測試人員設(shè)計了多個測試用例,覆蓋了每條測試需求昼蛀,是不是也會覺得評估測試覆蓋率比較困難宴猾?
實際上,需求規(guī)格說明通常是針對開發(fā)人員而寫的叼旋,并不一定直接適合測試的要求仇哆。因此,假如測試人員希望能夠更好的進行測試用例設(shè)計送淆,需要將需求規(guī)格說明 轉(zhuǎn)化成為測試人員可以方便使用的語言很重要税产,即在需求規(guī)格說明和設(shè)計測試用例之間增加一個橋梁:模型。在建立模型的過程中偷崩,測試人員不僅需要學習需求規(guī)格說明辟拷,同時也需要了解各種測試設(shè)計技術(shù)與方法,并能將兩者數(shù)量的結(jié)合起來阐斜。圖2是增加了“模型”概念的測試用例設(shè)計過程衫冻。
還是以上面的需求描述為例,我通過學習該需求之后谒出,發(fā)現(xiàn)它可能可以與決策表技術(shù)結(jié)合起來隅俘。因此,我將上述需求翻譯為適合決策表技術(shù)的各種條件與輸出笤喳,并
根據(jù)它們的不同組合得到不同的結(jié)果为居。圖3是我針對上述需求描述,基于決策表技術(shù)得到的初始決策表杀狡,然后可以基于此進行決策表優(yōu)化蒙畴,直至得到概要和詳細的測
試用例列表。
根據(jù)圖2的過程得到的圖3的結(jié)果,是否覺得整個測試設(shè)計過程更加清楚膳凝,而且更加容易進行測試覆蓋率等方面的評估碑隆?注意:這里只是根據(jù)需求描述得到的一些測試用例,并沒有考慮其他方面的測試用例蹬音,例如非功能測試用例等上煤。
需求規(guī)格說明對測試人員很重要,測試設(shè)計技術(shù)與方法也很重要著淆,但更重要的是測試人員如何能夠?qū)烧哂行У慕Y(jié)合起來劫狠,并在此基礎(chǔ)之上建立適合測試設(shè)計和評
估的“模型”。而這通常是測試用例設(shè)計的難點所在永部,同時也是體現(xiàn)測試人員技術(shù)含量的地方嘉熊。下面是測試人員在建立模型過程中可以參考的一些方向:
1、基于黑盒測試技術(shù)扬舒,例如:決策表模型、狀態(tài)轉(zhuǎn)換模型凫佛、正交矩陣模型等讲坎;
2、基于測試類型愧薛,例如:質(zhì)量特性模型晨炕、缺陷分類模型等;
3毫炉、基于全局因素的全局因素模型瓮栗;
4、基于功能交互的功能交互模型瞄勾;
測試設(shè)計過程中建立有效的“模型”费奸,測試人員設(shè)計測試用例相對會比較容易,并且可以很好的提高測試覆蓋率进陡,從而幫助提升產(chǎn)品質(zhì)量愿阐。另一方面,通過建立模型趾疚,也可以幫助測試人員有效的評審測試對象功能的描述缨历,例如可以發(fā)現(xiàn)需求中定義不清楚、遺漏等方面的問題糙麦。