软件测试基础day02
测试用例
买手机、买电脑,要试用一下:开机、屏幕、运行速度、内存大小;这就是生活中的测试用例!
定义:测试用例(Test Case)是为特定的目的而设计的一组测试输入、执行条件和预期的结果,以便测试是否满足某个特定需求。
通过大量的测试用例来检验软件的运行效果,它是指导测试工作进行的依据。
测试用例:举例说明1
买手机:按开机键,相当于输入了一组数据来测试,执行条件指的是开机的前提条件,比如是否有电;
预期结果就是能顺利打开手机,那么测试完毕后,是否达到了想要的需求(顺利开机)。
所以通过上面的描述,我们不难看出,测试用例主要解决的问题是要测什么?怎么测?
测试用例:举例说明2
新浪注册页面:https://login.sina.com.cn/signup/signup?entry=homepage
这次测试的是邮箱地址格式是否正确,怎么测试的呢?分别输入了正确的地址和错误的地址进行测试的。
等价类划分法
计算器:到底输入几组数据才算测试完毕?(讨论课题)
答案:一个一个测试效率低下,一定要分类测试!
1、整数(在范围内的整数-99到99)取最大、最小、中间
2、小数(在范围内的整数-99到99)
3、符号(+-/*,。、!@#¥%……&*())
5、汉字
6、空格
7、不输入
通过上面的描述,我们发现我们用户所有可能输入的数据,划分成了若干份(或者也可以称为子集),
然后从每一个子集当中选取少数具有代表性的数据作为测试用例,这种测试用例我们称为“等价类划分法”。
等价类划分是一种重要的、常用的黑盒测试方法,不需要考虑程序的内部结构,只需要考虑程序的输入规格即可。
它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。
等价类划分
等价类的分类
有效等价类
指符合《需求规格说明书》,输入合理的数据集合
无效等价类
指不符合《需求规格说明书》,输入不合理的数据集合
等价类思考步骤
1、先确定有效和无效等价类
2、有效等价类就是题目条件(两端的极值(边界值)要判断、中间随意一个值也要判断)
3、无效等价类先划分与条件相反的情况,再找到特殊情况(中文、英文、符号、空格、空)
等价类分类
我们可以把 “有效等价”和“无效等价”用例写在一个Excel表格中(写出来永远比自己脑子里想要好)!
例:计算 1---100的整数之和(包括1和100)
一般是一个框输入正确的值,一个框输入错误的值,没有两个框都输入错误的值,因为更容易确定到底是哪个框出现错误的值。
等价类分类强化练习
测试要求是:测试QQ账号,账号的要求是 6---10位正整数。
有效的等价类:
1:长度在6—10位之间的整数
无效等价类:
1:长度小于6
2:长度大于10.
3:负数
4:小数
5:英文字母
6:中文
7:空格
8:特殊字符
某城市电话号码由三部分组成,分别是
地区码:空白或是3位数字
前缀:非‘0’且非‘1’开头的三位数字
后缀:4位数字
例子:1232341234
用户名(昵称)长度为 3-19:以字母开头
-登录名称:非空
-密码: 非空
-确认密码: 值和密码相同
边界值
什么是边界?
边界是指对于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。
边界值分析法也是一种常用的黑盒测试方法。
大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。
【注意】
有效数据和无效数据的分界点,往往作为程序员编写程序的判断点,是程序员容易犯错误的地方,也是测试人员重点测试的内容。
如何解决这类问题
题目:输入的参数值必须大于等于0同时小于等于100的整数
找到测试数据的边界点,也就是有效等价类和无效等价类的边界点,对边界点数据专门进行测试。
一般情况下,需要对边界值(0和100)以及边界值两边的数(-1和1以及101和99)分别进行测试。
用例编号 | 被测边界 | 输入数值 | 预期结果 | 实际结果 | 备注 |
1 | 0 | -1 + 10 | 提示错误 | 按实际情况定 | 是否提bug |
2 | 1 + 20 | 21 | |||
3 | 0 + 30 | 30 | |||
4 | 100 | 99 + 40 | 139 | ||
5 | 101 + 50 | 提示错误 | |||
6 | 100 + 60 | 160 | |||
7 | 0 | 10 + (-1) | 提示错误 | ||
8 | 20 + 1 | 21 | |||
9 | 30 + 0 | 30 | |||
10 | 100 | 40 + 99 | 139 | ||
11 | 50 + 101 | 提示错误 | |||
12 | 60 + 100 | 160 |
确定边界情况(输入或输出等价类的边界)
选取正好等于、刚刚好大于或刚刚好小于边界值作为测试数据
边界值方法练习
练习1:使用边界值的方法设计添加标题的测试用例
标题长度>0 标题长度<=30
练习2:输入一个学生成绩n,判断是否及格(0到100整数);
(1)画流程图Axure(产品经理用来制作流程图的);
(2)确定有效区域和无效区域;
(3)临界点:0、60、100;
(4)取值:-1、0、1、59、60、61、99、100、101;
(5)具体测试用例;
练习3:修改手机银行登录密码:
密码必须由字母与数字组合
密码长度在8~24之间(包含8和24)
练习4:
用户名(昵称)长度为 3-19:以字母开头
-登录名称:非空
-密码: 非空
-确认密码: 值和密码相同
边界值的方法小结
1、如果输入条件规定了值得范围,则应取刚到到这个范围的边界值,以及刚刚超越这个范围边界的值作为输入数据。
2、输入条件规定了值得个数
姓名要求1—20个字符,需要测试0、1、2个字符和19、20、21个字符
某商品信息查询系统,每页最多显示10条商品信息,我们就应该准备商品信息,使能够查询出9、10条、11条、1条、0条商品记录
边界值和等价类区别
边界值分析不是从某等价类中随便挑一个作为代表,而是这个等价类的每个边界都要作为测试条件,
是对等价类的一个补充,二者是相辅相成的关系。
因果图法
因果图法的定义
因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,
它适合于检查程序输入条件的各种组合情况
特点:
考虑输入条件的相互制约及组合关系
考虑输出条件对输入条件的依赖关系
因果图法产生的背景
等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、
输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,
但多个输入条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,
因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,
这就需要利用因果图(逻辑模型)。
因果图的核心
因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出。
因果图的“因”——输入条件
因果图的“果”——输出结果
因果图法要注意考虑:
所有输入/输出条件的相互制约关系以及组合关系
输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样的输出结果,即“因果关系”
因果图的基本符号
了解即可,从网上看看,没必要细究
因果图法基本步骤
利用因果图导出测试用例需要经过以下几个步骤:
① 找出所有的原因,原因即输入条件或输入条件的等价类。
② 找出所有的结果,结果即输出条件。
③ 明确所有输入条件之间的制约关系以及组合关系。
哪些条件不能组合到一起,哪些条件可以组合到一起
④ 明确所有输出条件之间的制约关系以及组合关系。
哪些输出结果不能同时输出,哪些输出结果可以同时输出
⑤ 找出什么样的输入条件组合会产生哪种输出结果
⑥ 把因果图转换成判定表/决策表。
⑦ 为判定表/决策表中的每一列表示的情况设计测试用例。
因果图法练习
案例:交通一卡通自动充值软件系统需求
系统只接收50或100元纸币,一次只能使用一张纸币,一次充值金额只能为50元或100元。
若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功;
若输入50元纸币,并选择充值100元,提示输入金额不足,并退回50元;
若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元;
若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功;
若输入纸币后在规定时间内不选择充值按钮,退回输入的纸币,并提示错误;
若选择充值按钮后不输入纸币,提示错误
1、找到所有输入条件编号
2、找到所有输出条件编号
3、找出所有输入、输出的制约关系
输入条件: 输出结论:
1、输入50 a、完成充值退卡
2、输入100 b、提示充值成功
3、充值50 c、找零
4、充值100 d、错误
结论: 结论:
不能组合:条件1、2不能组合,条件3、4不能组合 不能组合:ad、bd
可以组合:13、14、23、24、1、2、3、4. 可以组合:abc、cd、ab必须组合、d可以单独存在
根据因果图的关系再制作出对应的“表格”
判定表法
因果图只是一种辅助工具,通过分析最终得到判定表,再通过判定表编写测试用例。
但有时画因果图非常麻烦,影响测试效率,可以直接写判定表,进而编写测试用例。
判定表的组成
条件桩:问题的所有条件
动作桩:问题的所有输出
条件项:针对条件桩的取值
动作项:条件项的各种取值情况下的输出结果
判定表步骤
1、列出所有的条件桩和动作桩。
2、填入条件项。
3、填入动作项。得到初始判定表。
4、简化判定表(合并相似规则(相同动作))
判定表法练习
怎样称为一个好学生?遵纪守法的前提下,学习成绩好是一个好学生、品德高尚也是一个好学生;
(只要违法乱纪就绝对不是一个好学生;成绩和品德有一项,再加遵纪守法也是好学生)
合并使用“-”代表无关条件,选什么都不影响结果。(写测试用例时不建议写,因为在测试时容易忽略)
场景法概述
场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。
当拿到一个测试任务时,我们并不是先关注某个控件的边界值、等价类是否满足要求,
而是先要关注它的主要功能和业务流程是否正确实现,这就需要使用场景法来完成测试。
当业务流程测试没有问题,也就是该软件的主要功能没有问题时,我们再重点从边界值、等价类等方面对控件进行测试。
在冒烟测试时也主要采用场景法进行测试
用例场景定义
场景法中两个重要的概念
基本流
按照正确的业务流程来实现的一条操作路径(模拟正确的操作流程)
备选流
导致程序出现错误的操作流程(模拟错误的操作流程)
用例场景是用来描述流经用例路径的过程,这个过程从开始到结束遍历用例中所有基本流和备选流。
在使用场景法设计测试用例时,需要覆盖系统用例中的主成功场景和扩展场景,
并且需要适当补充各种正反面的测试用例和考虑出异常场景的情形。
当使用场景法测试(冒烟测试)程序没有问题时,可以再使用边界值、等价类方法对账号、密码进行更加细致、完整的测试。
案例-QQ登录
使用场景法测试QQ登录功能。
输入正确的账号和密码后点击“登录”按钮,程序能正常登录
输入正确的账号,错误的密码后点击“登录”按钮,程序应给出错误提示
输入正确的账号,不输入密码,点击“登录”按钮,程序应给出错误提示
不输入账号和密码,直接点击“登录”按钮,程序给出错误提示“请您输入账号后登陆”;
不输入账号,输入正确的密码,点击“登录”按钮,程序应给出错误提示
输入错误的账号,正确的密码,点击“登录”按钮,程序应给出错误提示
(更多……)
(目的:遍历流程中所有路径,先快速测一遍)
测试用例矩阵
用例 编号 | 场景/条件 | 账号 | 密码 | 预期结果 |
01 | 输入正确的账号和密码后点击“登录”按钮 | Y | Y | 程序正常登陆 |
02 | 输入正确的账号,错误的密码后点击“登录”按钮 | Y | N | 程序应给出错误提示 |
03 | 不输入账号和密码,直接点击“登录”按钮 | (空) | (空) | 程序给出错误提示“请您输入账号后登陆” |
04 | 输入正确的账号,不输入密码,点击“登录”按钮 | Y | (空) | 程序应给出错误提示 |
05 | 不输入账号,输入密码,点击“登录”按钮 | (空) | Y | 程序应给出错误提示 |
06 | 输入错误的账号和密码,点击“登录”按钮 | N | Y | 程序应给出错误提示 |
流程分析法
适用于有先后顺序的测试;常用于业务流程、安装流程等等。每个流程就是一条测试用例,
它只是在测试整体流程是否正确,细节还需要使用等价类、边界值等方法进行完善;
优点:
降低了测试用例设计难度,只要搞清楚各种流程,就可以设计出高质量的测试用例来,而不需要太多测试方面的经验;
在测试时间较紧迫的情况下,可以有的放矢的选择测试用例,而不用完全根据经验来取舍。
流程分析法的步骤
第一步:详细了解需求;
第二步:根据需求说明或界面原型,找出业务流程的各个页面以及各页面之间的流转关系;
第三步:画出业务流程(产品经理使用Axure软件制作);
第四步:写用例,覆盖所有的路径分支。
错误推测法
错误推测法是指利用直觉和经验猜测出出错的可能类型,有针对性列举出程序中所有可能的错误和容易发生错误的情况,
它是测试经验丰富的测试人员喜欢使用的一种测试用例设计方法。
基本思想:
基本思想是列举出可能犯的错误或错误易发生的清单,然后根据清单编写测试用例;这种方法很大程度上是凭经验进行的,
即凭人们对过去所作测试结果的分析,对所揭示缺陷的规律性作直觉的推测来发现缺陷。
测试用例方法总结
总结:当要对一个系统进行测试时,先用场景法判断业务流程是否ok,如果业务流程没有问题,再进行下一步。
条件项和结果项有制约关系没有,如果有制约关系,因果图法,判定表。
等价类划分测试,在边界值对等价类补充进行细致测试。