一.设计测试用例的万能思路
功能测试+界面测试+性能测试+兼容性测试+易用性测试+安全测试
在遇到一个待测试问题时,凭借随机惯性思维,想出的答案一般都是有限的,要采用一定的顺序和条例,以更加全面的角度来构造测试用例。
例如:水杯的测试思路 (常见面试题!! !)
例如:网站测试
二.设计测试用例的方法
基于需求文档或产品规格文档来设计测试用例。
由上述测试用例可知,在测试过程中,如果遇到密码要求特别多的情况下,如果采用穷举法设计测试用例,显然是不科学的,太过于浪费时间,因此了解以下测试方法才能够有效率的进行测试。
1.等价类划分法
将测试用例分区分块,使得使用最少的测试用例达到符合的系统测试覆盖。
概念:
等价类划分法:正对需求输入范围分为若干个等价类,从其中一个等价类中取出一个测试用例,如果该测试用例通过,则说明该测试用例所在的等价类中所有的测试用例都通过。
有效等价类:针对需求来说,合理的,有意义的输入数据构成的集合。
无效等价类:正对需求来说,没有意义的,不合理的输入数据集合。
例如:输入条件说明学历可分为专科,本科,硕士和博士,那么这四个值作为四个有效等价类。那这四个学历之外的任何学历都作为无效等价类。
实现步骤:(1)确定有效等价类和无效等价类;
(2)编写测试用例。
例如:设计密码长度测试用例
有效等价类:10到20位字符。
无效等价类:0到9位字符 或 大于20位字符。
2.边界值测试
对输入输出的边界值进行测试。通常来说,边界值法是对等价类测试的补充。
边界值:有效等价类中的边界值。
次边界值:无效等价类中的在有效等价类范围附近边界值。
例如:上述设计密码长度测试用例
3.判定表法
一种呈表格状的表达逻辑判断的图形工具,可精确而简洁地描述复杂逻辑的方式,将这个条件和这些条件满足后要执行的动作相结合。
实现步骤:(1)确认输入条件和输出条件;
(2)找出输入条件和输出条件的关系;
(3)画判定表;
(4)根据判定表编写测试用例。
例如:对于需求:在订单提交,订单合计大于300或者订单有红包,则认为该订单属于有优惠订单,否则属于无优惠订单。
(1)确认输入条件和输出条件
输入条件:合计大于300元(A),订单有红包(B),订单提交(C)
输出条件:有优惠订单(D1),无优惠订单(D2)
(2)找出输入条件和输出条件的关系
(3)画判定表
(4)根据判定表编写测试用例
4.正交实验法
利用正交表对实验进行整体设计,综合比较,统计分析。
正交表:因素数:输入条件。
水平条件:输入条件对应的结果。(不是输出条件)
实现步骤:(1)找到因素数和水平数;
(2)用allparis工具生成正交表;
(进入allpairs所在目录后,输入allpairs.exe 1126.txt>1126jg.txt)
(3)根据正交表来编写测试用例;
(4)补充测试用例。
例如:上述订单优惠测试用例
(1)找到因素数和水平数;
因素数:A,B,C
水平数:Y,N(这里的Y N 表示A,B,C的结果,不指有无优惠)
(2)用allparis工具生成正交表;
(3)根据正交表来编写测试用例;
(4)补充测试用例。
5.场景设计法
现在的软件几乎都是用事件触发来控制事件流,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果形成事件流。生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例。
例如:ATM取款测试用例
基本流:插入银行卡,输入正确密码,选择取款业务,输入小于5万元且是50倍数的金额,等待出钞且出钞成功,后出卡。
备选流:插入银行卡,规定次数内未输入正确密码,出卡。
……
6.错误猜测法
对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针对性地设计测试用例的方法。这种方法依赖测试人员的个人工作经验和积累。
面试小tip:
与开发产生争执怎么办?
1.具备批判性思维。多反思自己是不是bug描述的有问题;或者提出了一个无效的bug。且测试人员要在深思熟虑之后决定要不要提交bug,避免经常性提交无效bug,影响你在团队中的权威性。
2.bug等级是否定义不准确,开发不认可。
3.态度方面:合理友好的进行沟通,站在用户的角度反问:如果是用户,能不能接受这个bug。
4.不仅能够提出问题,最好也能够给出解决方案。
5.组织bug评审。邀请代表,即包括产品代表,开发代表,测试代表参加bug评审,针对如何解决bug,如何预防类似bug进行讨论。