QQ交流群:929262679 ,免费领取测试资料,免费公开课,免费分享项目实战经验等
一、测试用例的主要构成要素 (重点掌握)
1.用例ID;
2.模块;
3.子模块;
4.用例名称:就像人的名字一样,给你书写的用例起一个名称,以方便执行用例,书写bug,其他人参考等时容易理解。用例名称尽量不要重复。
5.前置条件:完成一件事,需要具备什么条件
5.测试步骤:为了验证某个功能,我们需要怎样的操作才能看到这个功能
6.预期结果:用例执行后要达到什么结果
7.实际结果:用例执行后的实际结果
二、用例颗粒度
颗粒度,指的是粗细程度。粒度大,就是说一个用例所涵盖的关注内容比较多,反之同理。
用例的颗粒度大,则总的用例数就少,用例看起来也简洁。
用例的颗粒度小,则单条用例关注的测试点很集中,不容易遗漏,并且执行需要的时间比较好估计。
三、黑盒用例设计
1)等价类 、边界值(重点掌握)
是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
划分等价类:
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据,取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:
是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:
与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。
常见的能够划分等价类的地方:1、数值范围;2、重复次数;3、字符串的长度;4、字符串组中字符串的个数;5、文件命名;6、文件大小;7、可用内存大小;8、屏幕分辨率;9、屏幕颜色种类;10、操作系统版本;11、超时时间;12、数据类型。
边界值:
如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
等价类、边界值举例:
比如百度注册的用户名这项,如何用等价类、边界值来设计测试用例?
边界值是14、7
1.输入为空能否注册
2.输入14个英文能否注册
3.输入15个英文能否注册
4.输入7个汉字能否注册
5.输入8个汉字能否注册
有效等价类是1-14个英文或1-7个汉字,那么无效等价类就是为空、特殊字符、超过14个英文、超过7个汉字(等价类一般是和边界值一同使用)
2)错误推测法 (重点掌握)
在软件测试中,人们可以靠经验和直觉推测系统中可能存在的各种错误,从而有针对性地编写检查这些错误的例子,这就是错误推测法。其基本想法是:根据以往的测试经验和对系统内部知识的了解,列出系统中各种可能有的错误和容易发生错误的特殊情况,再根据它们来设计测试用例。随着在产品测试的实践中对产品的了解加深和测试经验的丰富,使用错误推测法设计的测试用例往往非常有效,可以作为测试设计的一种补充手段,并且积累的经验越丰富,方法使用效率越高。
错误推测法举例:
1、 在回答记录中混有标准答案记录
2、 有两个学生的学号相同
3、 试题数是负数
4、 开始日期大于结束日期
5、 程序是否对敏感字符做特殊处理,如:%、*
6、 考虑用户按回车键的习惯
3)判定表
如图,判定表就是简化,合并相似规则(相同动作)
4)因果图
从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),可以通过因果图转换为判定表。(因果图是通过分析因(输入)与果(输出),从而找出输入与输入、输入与输出、输出与输出之间的关系,画出便于观察的图示,来设计测试用例的方法。
方法步骤
1.分析输入输出,并进行分类,找出输入输出分别有几种。
2.分析输入之间的关系。
3.分析怎样的输入会导致各种结果。
4.根据分析结果画出因果图
5.根据因果图画出判定表、人为删去判定表中不可能发生的情况。
6.找出测试用例
5)场景法(熟悉)
场景法也叫流程分析法,是模拟用户操作软件时的场景,主要用于测试系统的业务流程。当我们拿到一个测试任务时,我们并不是先关注某个输入框的等价类、边界值是否满足要求,而是关注它的主要功能和业务流程是否实现,这就需要使用场景法来进行测试。当业务流程测试没有问题,就说明软件的基本功能没有问题,我们再重点从等价类、边界值等方面对软件的控件进行测试。
场景法举例:
使用场景法,设计ATM取款机取款功能的测试用例
步骤一:描述出基本流及各项备选流
基本事件流:
1 、用户向ATM提款机中插入银行卡,如果银行卡是合法的,ATM提款机界面提示用户输入提款密码;
2 、用户输入该银行卡的密码,ATM提款机与MainFrame传递密码,检验密码的正确性。如果输入密码正确,提示用户输入取钱金额,提示信息为:“请输入您的提款额度”;
3 、用户输入取钱金额,系统校验金额正确,提示用户确认,提示信息为“您输入的金额是xxx,请确认,谢谢!”,用户按下确认键,确认需要提取的金额;
4 、系统同步银行主机,点钞票,输出给用户,并且减掉数据库中该用户帐户中的存款金额。
5、用户提款,银行卡自动退出,用户取走现金,拔出银行卡,ATM提款机界面恢复到初始状态;
备选事件流(考虑可能失败的地方):
在基本事件流1中:
如果插入无效的银行卡,那么,在ATM提款机界面上提示用户“您使用的银行卡无效!”,3秒钟后,自动退出该银行卡。
在基本事件流2中:
如果用户输入的密码错误,则提示用户“您输入的密码无效,请重新输入”;
如果用户连续3次输入错误密码,ATM提款机吞卡,并且ATM提款机的界面恢复到初始状态。此时,其他提款人可以继续使用其他的合法的银行卡在ATM提款机上提取现金。
用户输入错误的密码后,也可以按“退出”键,则银行卡自动退出。
在基本事件流3中:
如果用户输入的单笔提款金额超过单笔提款上限,ATM提款机界面提示“您输入的金额错误,单笔提款上限金额是1500RMB,请重新输入”;
如果用户输入的单笔金额,不是以100RMB为单位的,那么提示用户“您输入的提款金额错误,请输入以100为单位的金额”;
如果用户在24小时内提取的金额大于4500RMB,则ATM提款机提示用户,“24小时内只能提取4500RMB,请重新输入提款金额”输入提取的金额超过了系统的设定的限制 ;
如果用户输入正确的提款金额,ATM提款机提示用户确认后,用户取消提款,则ATM提款机自动退出该银行卡;
如果ATM提款机中余额不足,则提示用户,“抱歉,ATM提款机中余额不足”,3秒钟后,自动退出银行卡。
在基本事件流4中:
如果用户银行户头中的存款小于提款金额,则提示用户“抱歉,您的存款余额不足!”,3秒钟后,自动退出银行卡;
如果ATM提款机与MainFrame之间通讯超时10秒钟,则本次操作取消,提示用户“抱歉,链接超时,本次操作取消”,并且将银行卡退出;
在基本事件流5中:
如果用户没有取走现金,或者没有拔出银行卡,ATM提款机不做任何提示,直接恢复到界面的初始状态;
步骤二:根据基本流和各项备选流生成不同的场景,并对重复的场景进行过滤。以下为部分场景
步骤三:对每一个场景生成相应的测试用例,并确定测试数据。
步骤四:确定测试数据
标题:成功取款
前置条件:1、准备一张合法的银行卡;2、银行卡的余额大于2000,当日可取金额为5000;3、ATM机的余额为10000
测试步骤:1 插卡并输入密码;2 选择取款业务,输入金额2000元
预期结果:1 密码校验成功;2 成功取出2000元。