测试对象:红框内的“价格筛选功能”
以下是功能需求:
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、再构造有效等价类来输入到两个输入框中,通过对比两个输入框中的值,来测试是否能实现预期的逻辑功能;(这一步测试是为了在输入的是空或者自然数的前提下,确保需求中的价格筛选功能可以实现)
经过以上的测试思路,感觉已经测试到了价格筛选功能的主要测试点,只是这个测试用例设计办法有点繁琐。
有点啰嗦,如果各位看官有更好的方法或者发现了本文中的错误,欢迎指正