深入了解软件测试基础day2
一、边界值
什么是边界?
边界是指对于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。
边界值分析法也是一种常用的黑盒测试方法。
有效数据和无效数据的分界点,往往作为程序员编写程序的判断点,是程序员容易犯错误的地方,也是测试人员重点测试的内容。
如何解决这类问题?
- 确定边界情况(输入或输出等价类的边界)
- 选取正好等于、刚刚好大于或刚刚好小于边界值作为测试数据
- 边界值的取值依据输入范围区间不同而有所不同,但是都需要把上点值、离点值和内点值取到。(闭两边、开中间)
课堂练习?
练习1
使用边界值的方法设计添加标题的测试用例
标题长度>0 标题长度<=30
用例编号 |
操作步骤(输入) |
预期输出 |
备注 |
1 |
输入:(空白) |
给出错误提示 |
0个字节 |
2 |
输入:a |
标题正确添加 |
1个字节 |
3 |
输入:ab |
标题正确添加 |
2个字节 |
4 |
输入:abcdefghijklmnopqrstuvwxyz123 |
标题正确添加 |
29个字节 |
5 |
输入:abcdefghijklmnopqrstuvwxyz1234 |
标题正确添加 |
30个字节 |
6 |
输入:abcdefghijklmnopqrstuvwxyz12345 |
给出错误提示 |
31个字节 |
练习2
输入一个学生成绩n,判断是否及格(0到100整数);
(1)画流程图Axure(产品经理用来制作流程图的); http://www.zcool.com.cn/work/ZMTUxMjE1OTI=.html
(2)确定有效区域和无效区域;
(3)临界点:0、60、100;
(4)取值:-1、0、1、59、60、61、99、100、101;
(5)具体测试用例;
练习3
修改手机银行登录密码:
密码必须由字母与数字组合
密码长度在8~24之间(包含8和24)
编号 |
等价类划分 |
输入框 |
预期结果 |
是否bug |
1 |
有效 |
8个数字和字母组合 |
正确 |
|
2 |
有效 |
9个数字和字母组合 |
正确 |
|
3 |
无效 |
7个数字和字母组合 |
错误 |
|
4 |
有效 |
24个数字和字母组合 |
正确 |
|
5 |
有效 |
23个数字和字母组合 |
正确 |
|
6 |
无效 |
25个数字和字母组合 |
错误 |
|
7 |
无效 |
中文、特殊符号、空格、空 |
错误 |
|
8 |
无效 |
8个数字 |
错误 |
|
9 |
无效 |
9个数字 |
错误 |
|
10 |
无效 |
7个数字 |
错误 |
|
11 |
无效 |
24个数字 |
错误 |
|
12 |
无效 |
23个数字 |
错误 |
|
13 |
无效 |
25个数字 |
错误 |
|
14 |
无效 |
8个字母 |
错误 |
|
15 |
无效 |
9个字母 |
错误 |
|
16 |
无效 |
7个字母 |
错误 |
|
17 |
无效 |
24个字母 |
错误 |
|
18 |
无效 |
23个字母 |
错误 |
|
19 |
无效 |
25个字母 |
错误 |
边界值的方法小结
1、如果输入条件规定了值得范围,则应取刚到到这个范围的边界值,以及刚刚超越这个范围边界的值作为输入数据。
- 两位整数加法器数的范围为-99—99,则应测试-99,-100和99,100
2、输入条件规定了值的个数
- 姓名要求1—20个字符,需要测试0、1、2个字符和19、20、21个字符
- 某商品信息查询系统,每页最多显示10条商品信息,我们就应该准备商品信息,使能够查询出9、10条、11条、1条、0条商品记录
边界值和等价类区别:边界值分析不是从某等价类中随便挑一个作为代表,而是这个等价类的每个边界,被取出来都要作为测试条件。
常见边界值
文本框接收字符个数,比如用户名长度,密码长度等;
报表的第1行和最后1行;
数值元素的第1个和最后1个;
循环的第1次、2次和倒数第1次、2次。
二、因果图法
因果图法的定义
因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
特点:
考虑输入条件的相互制约及组合关系
考虑输出条件对输入条件的依赖关系
等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。
这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
因果图的核心
因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出。
因果图的“因”——输入条件
因果图的“果”——输出结果
因果图法要注意考虑:
所有输入/输出条件的相互制约关系以及组合关系
输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样的输出结果,即“因果关系”
因果图中的基本符号
通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”表示某状态不出现,“1”表示某状态出现。
恒等:若原因出现,则结果出现;若原因不出现,则结果不出现。
非(~):若原因出现,则结果不出现;若原因不出现,则结果出现。
或(∨):若几个原因中有一个出现,则结果出现;若几个原因都不出现,则结果不出现。即:c1、c2、c3三个原因不会同时成立,最多有一个可能成立。
与(∧):若几个原因都出现,结果才出现;若其中有一个原因不出现,则结果不出现。
因果图法基本步骤
利用因果图导出测试用例需要经过以下几个步骤:
① 找出所有的原因,原因即输入条件或输入条件的等价类。
② 找出所有的结果,结果即输出条件。
③ 明确所有输入条件之间的制约关系以及组合关系。
哪些条件不能组合到一起,哪些条件可以组合到一起
④ 明确所有输出条件之间的制约关系以及组合关系。
哪些输出结果不能同时输出,哪些输出结果可以同时输出
⑤ 找出什么样的输入条件组合会产生哪种输出结果
⑥ 把 因果图 转换成 判定表/决策表。
⑦ 为判定表/决策表中的每一列表示的情况设计测试用例。
案例:交通一卡通自动充值软件系统需求
根据因果图再制作出对应的“表格”
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
||
输 入 |
1、投入50元 |
1 |
1 |
1 |
|||||
2、投币100元 |
1 |
1 |
1 |
||||||
3、选择充值50元 |
1 |
1 |
1 |
||||||
4、选择充值100元 |
1 |
1 |
1 |
||||||
输 出 |
a、完成充值、退卡 |
1 |
1 |
1 |
|||||
b、提示充值成功 |
1 |
1 |
1 |
||||||
c、找零 |
1 |
1 |
1 |
1 |
|||||
d、错误提示 |
1 |
1 |
1 |
1 |
1 |
三、判定表法
因果图只是一种辅助工具,通过分析最终得到判定表,再通过判定表编写测试用例。但有时画因果图非常麻烦,影响测试效率,可以直接写判定表,进而编写测试用例。
判定表的组成
条件桩:问题的所有条件
动作桩:问题的所有输出
条件项:针对条件桩的取值
动作项:条件项的各种取值情况下的输出结果
1、列出所有的条件桩和动作桩。
2、填入条件项。
3、填入动作项。得到初始判定表。
4、简化判定表(合并相似规则(相同动作))
判定表法案例
怎样称为一个好学生?遵纪守法的前提下,学习成绩好是一个好学生、品德高尚也是一个好学生;(只要违法乱纪就绝对不是一个好学生;成绩和品德有一项,再加遵纪守法也是好学生)
合并使用“-”代表无关条件,选什么都不影响结果。
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
||
条件桩 |
学习好 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
品德好 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
|
遵纪守法 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
|
动作桩 |
好学生 |
Y |
Y |
Y |
|||||
坏学生 |
Y |
Y |
Y |
Y |
Y |
四、场景法
场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。
在冒烟测试时也主要采用场景法进行测试。
用例场景定义
场景法中两个重要的概念
基本流
按照正确的业务流程来实现的一条操作路径(模拟正确的操作流程)
备选流
导致程序出现错误的操作流程(模拟错误的操作流程)
用例场景产生的背景
现在的软件几乎都是由事件触发来控制流程的,事件触发时的情景便形成了场景。而同一事件不同的触发顺序和处理结果形成事件流。
将这种在软件设计方面的思想引入到软件测试中,生动的描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时测试用例也更容易的得到理解和执行。
在使用场景法设计测试用例时,需要覆盖系统用例中的主成功场景和扩展场景,并且需要适当补充各种反向的测试用例和考虑出异常场景的情形。
当使用场景法测试程序没有问题时,可以再使用边界值、等价类方法对账号、密码进行更加细致、完整的测试。
五、流程分析法
流程分析法主要是针对测试场景类型属于流程测试场景的测试项下的测试子项进行设计,是从白盒测试设计方法中的路径覆盖分析法借鉴过来的一种方法。
- 在白盒测试中,路径就是指函数代码的某个分支组合,路径覆盖法需要构造足够的用例覆盖函数的所有代码路径。
- 在黑盒测试中,若将软件系统的某个流程看成路径的话,则可以针对该路径使用路径分析的方法设计测试用例。
流程分析法的步骤
第一步:详细了解需求;
第二步:根据需求说明或界面原型,找出业务流程的各个页面以及各页面之间的流转关系;
第三步:画出业务流程(产品经理使用Axure软件制作);
第四步:写用例,覆盖所有的路径分支。
流程分析法总结
流程分析法适用于有先后顺序的测试。常用于业务流程测试、安装流程测试等。
流程分析法重点在于测试流程。因此,一般每个流程用一个测试用例验证。
六、错误推测法
错误推测法是指利用直觉和经验猜测出,出错的可能类型,有针对性列举出程序中所有可能的错误和容易发生错误的情况,
它是测试经验丰富的测试人员喜欢使用的一种测试用例设计方法。
基本思想:
基本思想是列举出可能犯的错误或错误易发生的清单,然后根据清单编写测试用例;
这种方法很大程度上是凭经验进行的,即凭人们对过去所作测试结果的分析,对所揭示缺陷的规律性作直觉的推测来发现缺陷。