測試工程師必備:掌握這5種設計方法快速編寫測試用例~思路分析
一四年我在YX公司帶測試團隊,一個用例評審的會議上,一不小心超常發揮,結果卡在了一個用例設計方法上,印象非常深刻,當時的業務場景是支付方式的選擇和優惠方案。
在後來的工作中,也曾幾次遇到需要選擇合理的設計方法來寫用例,不過每次在網上都是搜尋了半天,也找不到令人滿意的答案。很多簡單的問題被複雜化,然後給出的解題思路更是令人百思不得其解。
網路資源下,任何一個問題都不缺答案,更多的時候缺的是個讓人一目瞭然的答案。
測試前準備
作為一個測試人員,軟體測試的流程首先是要非常熟悉的,何時何地都能脫口而出,避免一切翻車的可能。需要注意的是流程沒有唯一答案,具體由專案決定。所以給出的只是一個還算通用的參考流程。
我們要熟知的測試流程:
總結一下:在測試流程中,有6個部分,其中3個部分涉及到了用例,可見寫好用例的重要性。
所以,結合這些年吃過的虧,我來給大家縷縷,如何快速的get到測試用例的設計方法。
5種常見的測試用例設計方法
一、等價類劃分
1)概念
某個輸入域的集合,在這個集合中每個輸入條件都是等效的,如果其中一個的輸入不能導致問題發生,那麼集合中其它輸入條件進行測試也不太可能發現錯誤。
關於等價類劃分的兩個重要概念:
有效等價類:有效等價類是程式規格說明有意義,合理的輸入資料。
比如用正確的使用者名稱和密碼來登入系統就是有效等價類。
無效等價類:無效等價類是程式規格說明無意義,不合理的輸入資料。
比如用不存在的使用者名稱和密碼來登入系統就是無效的等價類。
2)等價類法設計測試用例的步驟
為每個輸入劃分等價類,得到等價類表,為每個等價類規定一個唯一編號
設計一個測試用例,使其儘可能多的覆蓋所有尚未覆蓋的有效等價類。重複這一步驟,使得有效等價類均被測試用例所覆蓋設計一個測試用例,使其只覆蓋一個無效等價類。重複這一步驟使得所有無效等價類均被覆蓋。
假設上面的文字你都沒有看懂,那麼做個題目就懂啦。
3)案例來了
程式規定:輸入三個正整數作為三邊的邊長構成三角形。請用等價類方法設計測試用例分別判斷輸入3個整數時的三角形為一般三角形、等腰三角形、等邊三角形時情況:
提示:
需求提取:
1、三條邊需求:整數/3個數/非零數/正數
2、一般三角形的要求:二邊之和大於第三邊
3、等腰三角形:二二邊相等且滿足二邊之和大於第三邊
4、等邊三角形:三條邊相等
參考答案
答案解析:符合的需求條件的即是有效等價類,比如,等腰三角形,那麼要求至少有兩條邊相等,所有有效等價類就包括a=b b=c a=c ,那麼不符合條件的就是無效等價類包括a!=b b!=c a!=c
二、邊界值分析
1)概念
邊界值分析方法的理論基礎是假定大多數的錯誤是發生在各種輸入條件的邊界上,如果在邊界附近的取值不會導致程式出錯,那麼其它的取值導致程式錯誤的可能性也很小。
2)邊界值分析法設計用例的步驟
分析輸入引數的型別:從測試規格中分析得到輸入引數型別
等價類劃分(可選):對於輸入等價類劃分方法進行等價類的劃分
確定邊界:運用域測試分析方法確定域範圍的邊界(上點、離點與內點)
相關性分析(可選):如果存在多個輸入域,則需要運用因果圖、判定表方法這些輸入域邊界值的組合情況進行進一步分析
形成測試項:選擇這些上點、離點與內點或者這些點的組合形成測試項
3)案例來了
假設存在以下的測試場景,某個網站的登入頁面:
1、使用者名稱:1—20個字元,包括1和20,其他不考慮
2、密碼:6個數字,其他不考慮
現要求用邊界值分析法測試使用者名稱和密碼這兩個輸入框。
參考答案
邊界值分析方法如下:
答案解析:密碼這個欄位的範圍是閉區間【1-20】,用邊界值設計用例,那麼去找這兩個數的左鄰右舍+自己,1則是0和1和2,20則是19,20,21。
三、判定表
1)概念
判定表是分析和表達多種輸入條件下系統執行不同動作的工具,它可以把複雜的邏輯關係和多種條件組合的情況表達得既具體又明確 。
2)判定表法設計用例的步驟
列出所有的條件樁和動作樁
填入條件樁、條件項
填入動作樁、動作項
化簡,合併相似規則
將每條規則轉化為用例
3)案例來了
假設有以下邏輯:
運用判定表設計用例。
參考答案
答案解析:判定表的解題思路就是先列出所有條件,然後列出每個條件的取值,最後如上圖,一列就是一條用例。
四、正交試驗法
1)概念
正交試驗設計(Orthogonal experimental design)是研究多因子多水平的又一種設計方法,它是根據正交性從全面試驗中挑選出部分有代表性的點進行試驗,這些有代表性的點具備了“均勻分散,齊整可比”的特點。
關於正交試驗表的兩個重要概念:
1、所有參與試驗、影響試驗結果的條件稱為因子。
2、影響試驗因子的取值或輸入叫做因子的水平。
如何選擇正交表:
1、考慮因子的個數
2、考慮水平的個數
3、考慮正交表的行數
4、取行數最少的一個
2)案例來了
有如下使用者登入頁面,三個登入條件:使用者名稱、密碼、驗證碼,考慮填寫或不填寫,用正交表設計測試用例。
參考答案
分析因子數,以及因子水平值:
3因子2狀態
經過組合合併之後的對應用例
補充:
答案解析:正交試驗法主要在於選取因子數和水平值,將兩者結果列出再合併,工作中用的不多,但是合適的業務邏輯下可以選擇。
五、流程分析法
1)概念
流程分析法是將軟體系統的某個流程看成路徑,用路徑分析的方法來設計測試用例。根據流程的順序依次進行組合,使得流程的各個分支都能走到。
2)流程分析法設計用例步驟
1、畫出業務流程圖
2、設定功能路徑優先順序
3、確定測試路徑
4、選取測試資料
5、構造測試用例
3)案例來了
案例:安裝 QQ,安裝系統之家版 QQ。
參考答案
對應的測試用例
答案解析:看起來非常複雜的流程圖和用例,設計的核心其實就兩個方向,一個是正常流程,即安裝安裝嚮導一直點選【下一步】直到完成。另一個方向則是每個判斷條件選擇【否】的場景,那麼這樣的話,就會產生很多條其他分支的用例。
結尾篇
測試用例設計方法不止上面提到的5種,但是工作中遇到的業務場景基本可以透過上述的方法來得到解決。等價類劃分和邊界分析方法較為簡單,很多時候可以結合起來一起用。正交實驗表和判定表一般用在需要將多個輸入組合起來測試的情況。流程分析法顧名思義就是存在不同分支流程的時候選用。希望上述的方法能夠幫助到大家。
歡迎加入 51軟體測試大家庭,在這裡你將獲得【最新行業資訊】,【免費測試工具安裝包】,【軟體測試技術乾貨】,【面試求職技巧】... 51與你共同學習,一起成長! 加我VX:ww-51testing 回覆關鍵詞“測試”進入軟體測試學習交流群哦~~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2651777/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何編寫介面測試用例?測試工程師必備技能!工程師
- 軟體測試用例編寫(含思路)
- 測試工程師必看!測試用例設計全解析,讓你徹底掌握工程師
- 【轉】測試用例編寫(功能測試框架)框架
- 軟體測試用例的設計和編寫
- 介面測試用例編寫和測試關注點
- 軟體測試用例設計方法
- APP測試設計測試用例的要點APP
- 測試用例設計指南
- Android 程式設計師必須掌握的三種自動化測試方法Android程式設計師
- 【編測編學】介面測試必備面試題必背(下)面試題
- postman寫測試用例Postman
- 【編測編學】介面測試必備面試題(上)面試題
- 軟體測試工程師必備技工程師
- 軟體測試員必須編寫程式碼嗎?掌握多少程式設計能力才夠?程式設計
- 寫給軟體測試程式設計師:這5大點必須提起注意!程式設計師
- 測試面試-測試用例面試
- 軟體測試用例設計方法-場景法
- 軟體測試用例設計方法-判定表法
- 軟體測試用例設計方法-因果圖法
- JUnit5編寫基本測試
- 物聯網智慧家居領域的測試用例設計思路?
- 看這裡!移動應用測試必備六種型別說明型別
- 【編測編學】分享一套好用的功能測試用例編寫框架框架
- 不經常用到但又非常重要的測試用例編寫方法——測試大綱法詳解
- 測試用例的設計方法、思路、場景、分類和歸納,你知道多少?
- Web自動化-Selenium自動化測試-4-編寫測試用例Web
- 編寫難於測試的程式碼的5種方式
- iOS開發那些事--編寫OCUnit測試方法-邏輯測試方法iOS
- 軟體測試用例設計方法-邊界值法
- 測試用例與輸入資料的設計方法
- 高階測試工程師必備技術:用Git版本控制自動化測試程式碼工程師Git
- 測試中,介面測試的必要性與介面測試的基礎用例設計
- 測試工程師必知的10大測試法則工程師
- 服務端測試開發必備技能:Mock測試服務端Mock
- 用Junit Framework編寫單元測試Framework
- teprunner測試平臺測試計劃批量執行用例
- 軟體測試中的測試計劃和測試用例起到什麼作用?