測試對象:紅框內的“價格篩選功能”
以下是功能需求:
1、 除了空以外,輸入框不能輸入數字之外的內容。
備注:如果出現數字之外的內容,輸入框禁止輸入。
2、 輸入框不能小於0
備注:如果出現小於0的數字,輸入框禁止輸入負號,只保留數字。
3、 框1為空,框2有數值,清空所有輸入框
4、 框1有數值,框2為空,清空所有輸入框
5、 兩個框都為空,搜索出所有商品
6、 第一個框的值要小於等於第二個框的值。
第一個框的值和第二個框的值相同時,如果存在該價格的商品僅展示該價格的商品,若沒有,彈出“抱歉,沒找到您要搜索的商品,換個條件試試!”
這個小模塊的測試用例如何設計呢?百思不得其解,是用等價類划分法還是用判定表法還是兩個方法結合着來設計測試用例?
有一個未經驗證的思路:
先按照等價類划分法划分:
有效等價類:空、不小於0的整數;
無效等價類:中文、英文、特殊字符,以及特殊的無效等價類,如小數和負數。
第一、先測試有效等價類能否正常輸入,經測試可以正常輸入
第二、再測無效等價類,中文、英文、一般特殊字符是否確實被禁止輸入,經測試確實無法正常輸入,但是特殊情況下可以輸入(比如數據是復制進去的時候)。
之后再測試無效等價類中的兩個特殊情況,小數和負數:
小數,比如輸入(或者復制進輸入框)50.5,輸入框中的數據會自動變成505,說明小數這個無效等價類確實無法輸入到輸入框中,理由是輸入框中的數據確實不是一個小數50.5而是一個整數505。
負數也是同理,比如輸入-500,輸入框中的數據會自動變成500,說明負數這個無效等價類也無法輸入到輸入框中,理由同樣是輸入框中的數據最終確實不是一個負數-500而是一個正整數500.
負小數也是同理,最終輸入到輸入框中也會變成正整數。
所以,小數和負數這兩個無效等價類經測試,滿足空和數字以外的內容禁止輸入這個需求。
第三、在兩個輸入框中都輸入的是有效等價類的前提下,通過兩個輸入框中輸入的數據之間的對比來測試能否實現特定的邏輯功能
1、兩個框都為空,預期結果是可以搜索出所有商品,經測試符合需求;
2、框1為空,框2有數值,預期結果是可以清空所有輸入框,經測試符合需求;
3、框1有數值,框2為空,預期結果是可以清空所有輸入框,經測試符合需求;
4、框1框2都有數值且均不為0,且框1值小於框2值,預期結果是可以搜索出價格在這兩個值之間的商品,經測試符合需求;(為什么要排除為0的情況?因為要把邊界值單測)
4.1、框1框2都有數值,且框1值小於框2值,且框1值為0,預期結果是可以搜索出價格在0-框2值之間的商品,經測試搜索出了所有商品。此處沒能滿足需求,需記錄在缺陷報告中;
4.2、框1框2都有數值,且框1值小於框2值,且框1值為1,預期結果是可以搜索出價格在1-框2值之間的商品,經測試符合需求;
5、框1框2都有數值且均不為0,且框1值等於框2值,且待搜索的商品中有價格等於框1/2值的,那么就僅搜索出並展示這個價格的商品;
5.1、框1框2都有數值且均為1,且待搜索的商品中有價格等於1的,那么就搜索並展示這個價格的商品;
6、框1框2都有數值且均不為0,且框1值等於框2值,且待搜索的商品中沒有價格等於框1/2值的,那么就彈出“抱歉,沒找到您要搜索的商品,換個條件試試!”;
6.1、框1框2都有數值且均為1,且待搜索的商品中沒有價格等於1的,那么就彈出“抱歉,沒找到您要搜索的商品,換個條件試試!”;
7、框1框2都有數值且均為0,且待搜索的商品中有價格等於0的,那么就搜索並展示這個價格的商品;
8、框1框2都有數值且均為0,且待搜索的商品中沒有價格等於0的,那么就彈出“抱歉,沒找到您要搜索的商品,換個條件試試!”;
9、此處少了一個需求,即是框1的值大於框2的值,會有怎么樣的提示;
以上的思路大致是:
1、先獨立測試兩個輸入框中在輸入無效等價類時是否如預期一樣,除了空和數字以外的內容都不會顯示;(這一步測試是為了確保輸入框中只能輸入空或者自然數,為下一步的邏輯功能實現做鋪墊)
2、再構造有效等價類來輸入到兩個輸入框中,通過對比兩個輸入框中的值,來測試是否能實現預期的邏輯功能;(這一步測試是為了在輸入的是空或者自然數的前提下,確保需求中的價格篩選功能可以實現)
經過以上的測試思路,感覺已經測試到了價格篩選功能的主要測試點,只是這個測試用例設計辦法有點繁瑣。
有點啰嗦,如果各位看官有更好的方法或者發現了本文中的錯誤,歡迎指正