测试用例总结
一、测试用例的作用
1、防止遗漏:减少遗漏缺陷的风险,确保功能测试覆盖率更高。
2、可以提高测试的效率
3、方便版本重复测试
4、监督测试过程
5、评估测试结果
6、缩短周期:版本更新或升级时,只需要修正少部分测试用例,资源可以复用。
二、测试用例的注意事项:
1、在编写用例之前,要将用例编号的编写规范,附带资料的命名及提交位置等信息说明清楚。
2、测试用例需要评审
方式:互评互审、组内评审、有甲方参与的评审会
3、对于测试人员编写用例的要求:
1)基本要求:
1条用例先写好。
标准:就是其他测试人员按照你写的测试步骤能够顺利的执行测试。
2)高标准要求
独立的分析、设计测试的能力,能够形成比较完善的测试思路,测试覆盖率高,遗漏缺陷少。
第5讲 因果图和判定表
一、应用场合
界面中有多个控件,控件之间有组合或者限定关系,为了弄清楚不同的输入组合会对应怎样不同的输出结果,可以使用因果图或判定表法。
说明:因果图/判定表法比较适合测试组合数量少(一般指20种以下)的情况(如果组合数量大可以选择使用正交排列法效率会更高)
二、因果图法
1、解析因果图法
因(原因):输入条件
果(结果):输出结果
因果图:通过画图的方式说明输入条件和输出结果之间的关系
2、图形符号
1)基本图形符号——表达的是因和果之间的关系
A)恒等
如果a=1,那边b=1
如果a=0,那么b=0
因 果
A --- - B
恒等
B)与
说明:例如
条件1 与 条件2 结果
0 1 0
1 1 1
1 0 0
0 0 0
只有所以条件都成立时,结果成立,有任何一个条件不成立(或所有条件都不成立)时,结果不成立。
简化:全1为1,有0为0
![](https://img.haomeiwen.com/i4833574/d3eb27d24d17e2cb.jpg)
C)或
说明:
条件1 或 条件2 结果
1 0 1
0 1 1
1 1 1
0 0 0
只有所有条件都不成立时,结果不成立。只要有任何1个条件(或者所有条件都成立)时,结果都成立。
简化:全0为0,有1为1
![](https://img.haomeiwen.com/i4833574/2feab4b37708d41c.jpg)
D)非(了解)
说明:取反
如果a=1,取反后变成a=0
如果a=0,取反后变为a=1
![](https://img.haomeiwen.com/i4833574/ce8be88831f7eefb.jpg)
2)限制图形符号——表达的是因之间或果之间的限制关系
A)互斥(E-exclude)
特点:如果选只能选一个,但是可以不选
![](https://img.haomeiwen.com/i4833574/f36c6432513f9c5d.jpg)
B)唯一(O-only)
特点:只能选一个(不能不选)
唯一和互斥的区别:
唯一和互斥都是单选
但是唯一必须选一1个,而互斥可以不选,如果选只能选1个
![](https://img.haomeiwen.com/i4833574/eaa2fad091bea9dd.jpg)
C)包含(I-include)
特点:至少要选择1个(可以多选,不能不选)
![](https://img.haomeiwen.com/i4833574/ca804e3f870ee44f.jpg)
D)要求 (R-required)
特点:如果a=1,那么要求b必须是1,反之,如果a=0,那么b的值无所谓。
![](https://img.haomeiwen.com/i4833574/e8f0ed6d8939b3da.jpg)
E)屏蔽 (M-masked)
特点:当a=1时,b=0,
当a=0时,b的值可能是1也可能是0。
![](https://img.haomeiwen.com/i4833574/0ff98a3cce01c1c5.jpg)
操作步骤:
案例:一卡通自动充值模拟系统
步骤1:熟悉需求,找出所有的输入条件(因)
1)请投币:50元
2)请投币:100元
3)请投币:50元
4)请投币:100元
步骤2:找出所有的输出结果(果)
A)充值成功并退卡
B)找零
C)错误提示并退卡
将找出的因和果填入到《判定表》中
步骤3:找出输入条件中的组合和限制关系
![](https://img.haomeiwen.com/i4833574/2018f0d7afefc244.jpg)
步骤4:明确不同的输入组合会产生的不同输出结果,画因果图,填判定表(在实际工作中可以只填判定表,不画因果图)
1)画因果图只是一种辅助工具,通过分析最终得到判定表,在通过判定表编写测试用例。但是,画因果图非常麻烦,影响测试效率,所以在实际应用中,可以直接写判定表,不画因果图。
2)判定表的缺点:限制关系在判定表中不好体现,解决办法:在判定表中添加备注信息,将限制关系填写在备注中。
步骤5:编写测试用例
判定表中每一列为一种组合,写一条用例
问题:编写测试用例能参考什么?
1)需求
2)设计(开发)文档【有可能没有】
3)已经开发出来的被测程序
4)通过跟开发人员、产品人员、客户等沟通、讨论
第六讲 多种测试方法综合测试
案例:工资发放系统
测试步骤:
步骤一:熟悉需求,判断测试功能需要用到哪些测试方法?
1.基本信息部分使用等价类+边界值的测试方法,测试基本信息部分。
![](https://img.haomeiwen.com/i4833574/3912fda8f2a9ca9b.jpg)
2.使用判定表法测试扣款比例
![](https://img.haomeiwen.com/i4833574/2d1ebbdd31a5321e.jpg)
步骤二:用每个(每组)控件对应的测试方法,进行独立的分析,将分析结果填入相应的表格(单独分析)
1、基本信息填入《数据分析表》
2、扣款比例部分填入《判定表》
步骤三:根据分析结果,综合考虑形成中比较完善的测试方案(思路),编写测试用例。
首先:判定表(8种组合)+基本信息(编号、姓名、本月工资)的有效数据
接下来:单独测试每个文本框(编号、姓名、本月工资)的无效数据
最后:适当强化测试
将多个控件的无效情况或者1个控件的多个无效情况组合起来测试
判定表总结
1、判定表的专有名词
![](https://img.haomeiwen.com/i4833574/17d06ebeb8c2389a.jpg)
2、1)判定表/因果图适合测试控件之间的组合和限制关系
2)判定表/因果图的局限:一般适合测试组合数量比较少的情况(一般少于20种)
3)判定表的特点:
(1)输入条件的排列顺序无关紧要
(2)输出结果的排例顺序无关紧要
(3)先测哪种组合后测哪种组合无关紧要
(4)每种组合都是相互独立的。
第七讲 正交排列法
说明:正交排列法依赖于正交法进行测试
正交表是数学中统计学的研究成果。
测试人员只需要能选择合适的正交表并且能应用到测试中来就可以了
正交表不需要记忆,不需要计算。
一、应用场合
在一个界面中有多个控件,每个控件有多个取值,测试时要考虑不同控件之间的组合,但是组合数量很大(一般超过20种),没有必要测试全部组合,可以使用正交排例法挑选最优、最少的组合进行测试。
问题:正交排列法和判定表法的主要异同?
1)两种方法都可以实现控件之间的组合问题的测试
2)判定表适合测试组合数量比较少的情况(一般少于20种)
3)正交排列法适合测试组合数量较多的情况(一般超过20种)
4)判定表法除了考虑控件之间的组合以外还要考虑控件之间的限制关系,而正交排列法只需考虑组合情况。
二、解析正交表的公式
公式:
![](https://img.haomeiwen.com/i4833574/092e27f1b2dee275.jpg)
L:line (行)
n:表示该正交表有几行,n值不需要测试人员计算,正交表确定后该值是固定写好的
m:代表该正交表中数据的最大值
测试时:表示每个控件的取值个数
k:表示该正交表有几列
测试时:k表示控件个数
三、使用正交排例法测试的步骤
步骤1、分析需求,列出参与组合的空间以及每个控件的取值-列出到excel表格里
步骤2、选择一个合适的正交表
其实就是确定m值和k值的过程
k(控件的个数)
m(每个控件的取值个数)
分析案例:
k=4(有四个控件)
m=3(每个控件有3个取值)
结果:选择3的4次幂的正交表
步骤3:应用正交表(将控件和控件取值映射在正交表中)
1)将控件和正交表的列标题(因子)进行映射
2)将控件取值和正交表中对应列的数值(状态)进行映射
步骤4、根据生成正交排列表,编写测试用例
每一列是一种组合,编写1条用例
四、关于正交表的初步总结:
1、正交表是采用最优、最少的测试数据进行测试。效率很高,但是毕竟没有测试所有的组合,会有遗漏缺陷的风险,如果时间允许可以适当补充测试。
2、正交表的局限:
1)正交表的个数是有限的(9个表)
2)要求每个控件中取值个数相等,这在实际应用中很难遇到
3、正确表的特性
1)在正交表中每列中不同数字出现的次数均等
2)任意两列中,同一行两个数字组成有序数对,有序数对出现的次数均等
五、没有合适的正交表
1、k(控件的个数)值不合适:
解决方案:选择最接近的大一点的,如果有用不到的列可以删除
2、每个控件的m取值不同
解决方案1:最大值原则(建议)
哪个控件的m值最大,最终m值就确定个这个案例的最大值。
案例分析:m值最大的是:4
m=4,k=4,所以理论上选4的4次幂的正交表,但是没有,所以最终选取的是4的5次幂的正交表
解决方案2:少数服从多数原则
哪个m值相同的个数最多,m值就选择哪个
案例分析:m=3的有两个,是最多的,所以:
m=3,k=4要选择的正交表是3的4次幂
补充:正交排列法常实际用于测试软件的兼容性或软件的属性配置功能。
方法总结:
1、如果有对余的列,可以删除掉
2、把每一列能映射的值先映射好
3、把每一列多余的机会,尽量均匀的分配给该列的各个取值
4、最后要检查是否有完全相同的组合,如果有要适合处理(修改(建议),删除)
5、选择正交表时,优先选择正好匹配的正交表,如果没有正合适的,再去选择接近的进行处理。
第八讲 测试大纲(提纲)法
一、应用场合
程序中有多个窗口,窗口中有多个操作,多个窗口的操作之间有一定的关系,为了理清窗口直接的关系,可以使用测试大纲法。
常用于:测试软件的安装、删除程序;多窗口之间的跳转关系。
二、测试大纲法的使用步骤:
1、分析需求,列出所有窗口以及每个窗口中的操作-列大纲
2、根据大纲,理清窗口操作间的关系,编写用例。
说明:
1)如果某个操作流程中没有新的测试功能点(所有的功能点在前面的测试中已经测过),那么该条用例可以省略。但是如果测试时间允许,最好还是测。
2)对于列表框或下拉列表框控件,一般至少测试三项:第一项(最小值),中间某项(有效等价类),最后一项(最大值)
补充:1、第一项是最小值,最后一项是最大值,这是按索引位置定义的
2、在测试下拉列表选项时,不是只测3项,如果选项中有特殊项,如:不限,请选择**时,要选择该选项进行单独测试
3、测试用例可以适当复用-有些用例如果跟前面的用例基本一致,可以重复使用。
案例:snagit软件的安装程序
1、安装程序的窗口较多,但是窗口之间的关系比较简单,一般只关注“上一页”和“下一页”,测试时不需要特别关注,重点关注每个窗口中能够完成的功能(测试点),一一列出大纲,写测试用例。
2、测试软件的安装、删除程序的测试用例,一般直接写在word中,不需要按照规定格式写。
3、安装程序的测试需要考虑测试环境(安装环境):
1)该软件支持的操作系统(操作系统的版本、品牌、位数(32 位、64位)等)
2)该软件与其他软件的兼容问题(与其他软件,同时安装在一台电脑中可以同时使用不相互影响)
3)考虑该软件的安装路径:
1)默认路径
2)自定义路径(正确路径、错误路径)
4)已经安装过该软件,怎么处理?(更新升级,覆盖,取消,不允许)
第一个界面
1、点击“next”(下一步)按钮,可以进入下一个界面
2、点击“cancel”按钮,程序不应直接退出,弹出“消息提示框”,
1)如果点击“resume”(继续)按钮或者“X”(关闭)按钮(bug1:直接退出安装程序),关闭消息提示框,继续安装程序
2)如果点击“exit setup”(退出安装)按钮,安装程序终止。
第二个界面
1、点击“back”(后退),返回上一个界面
2、“cancel”按钮功能可以参考界面1中cancel按钮功能
3、1)如果不选择“I accept the license agreement”(我接受许可协议)复选框,“next”按钮“值灰”
2)如果选择“I accept the license agreement”(我接受许可协议)复选框,“next”按钮可用,点击可以进入下一个界面。
第三个界面
1、点击“back”(后退),可以返回到上一个界面
2、“cancel”按钮功能可以参考界面1中的cancel按钮功能
3、点击“more information(更多信息)”按钮,可以官网的相关页面
4、1)如果两个单选按钮都不选择,此时“next”按钮值灰
2)如果选择两个单选按钮中的任何一个,“next”按钮可用,点击可以进入下一个界面
第四个界面
1、点击“back”按钮,可以返回到上一个界面
2、“cancel”按钮功能可以参考界面1中的cancel按钮功能
3、点击“need help finding your software key?”(需要帮助找到你的软件注册吗?)按钮,可以连接到官网的相关网页(bug2:链接失效)
4、1)如果不选择“installation type”(安装类型)中的其中一个,“next”按钮“值灰”
2)如果选择“30 day evaluation”(30天评估版),“next”按钮可用,点击可以进入下一个界面(安装后只能使用30天)
3)如果选择“license-l hava a key”(授权-获得一个序列号),“next”按钮可用:
(a)填写“name”(姓名)【可以为空】和正确的“key”(序列号),点击“next”按钮,可以进入下一个界面(安装后按照序列号的授权时间使用)
(b)填写错误的“key”(或者不填),点击“next”按钮,弹出“错误提示框”:
(1)点击“ok”按钮,关闭“消息提示框”
(2)点击“visit techsmith web site”,可以访问官网相关页面
第五个页面
1、点击“back”可以返回到上一个界面
2、点击“cancel”按钮功能可以参考界面1中的cancel按钮功能
3、1)如果选择“tipical”(典型安装)单选按钮,点击“next”按钮可以进入到下一个界面(典型安装类型)
2)如果选择“custom”(自定义安装),点击“next”按钮,可以进入下一个界面(自定义安装类型)
第六个界面(安装界面)
1、点击“back”可以返回上一个界面
2、“cancel”按钮功能可以参考界面1cancel按钮功能
3、测试选择和不选择“start snagit when installation is finished” (当安装完后立即运行snagit)选项功能
4、测试选择和不选择“create shortcuts on desktop”(创建快捷方式在桌面)选项功能
5、测试选择和不选择“run snagit when wondows starts”(当Windows启动后立即运行snagit)选项功能
6、点击“install”(安装)按钮,开始进行安装,开始进行安装
7、Updating System(更新系统)
第七个界面
1、点击“cancel”按钮或“X”关系按钮,程序不应该直接退出,而是弹出消息提示框(参考之前的案例)
第八个界面
Snagit 10 has been successful installed(安装成功)
1、点击“finish”(完成)按钮,结束按钮
2、“cancel”按钮和“X”(关闭)按钮必须“置灰”
第九讲 场景法(重点)
一、应用场合
主要用于测试软件的业务流程和业务逻辑。
是一种基于软件业务的测试方法,测试人员把自己当成最终用户,尽可能真实的模拟用户在使用该软件时的各种情景:
重点模拟两类操作:
A、模拟用户正确的业务操作流程——验证软件的业务功能是否能够正确实现
B、模拟用户错误的业务操作过程——严重软件的异常处理能力(健壮性)
使用场景法测试的思路:
场景法就是模拟用户操作软件时的各种场景,用来测试软件的业务逻辑和流程。当拿到一个测试任务时,我们并不是先关注某个控件的等价类,边界值这些细节,而是先关注整个功能的业务逻辑和业务流程是否正确,这就需要使用场景法来测试完成。当整体业务流程和主要功能没有问题时,我们再从控件的细节去进行测试,使用等价类、边界值等方法。(先整体再细节)
二、场景法基于两个层面:
1、业务层面(业务的理解更为重要)
测试人员要熟悉所测系统的业务逻辑、流程,成为该行业的“业务上的专家”
2、技术层面
1)基本流
也叫正确流或有效流,模拟的是用户正确的操作流程
2)备选流
也叫错误流或无效流,模拟用户错误的用户操作过程。
三、场景法测试步骤:
案例1:ATM取款功能
步骤:
1、分析需求,熟悉业务,整理业务逻辑或流程,列出基本流和备选流
1)基本流(成功取款):
插卡,验证卡→输入密码(正确)→选择“取款”,输入(选择)取款金额(正确)→确定,出钞,修改余额(账户余额、ATM余额)
2)备选流(在取款过程中可能会出现的各种错误场景):
1)卡验证无效
2)验证密码错误(3次以下)
3)验证密码错误(3次)
4)账户余额不足
5)ATM机余额不足
6)超出当次取款上限(5000元)
7) 超出当日取款上限(2万)
说明:备选流并不完整,有一些备选流场景没有列出,这也更加说明业务对于场景法的重要性。
步骤2:根据基本流和各项备选流生成 场景,填入《场景表》(excel中)
V:valid(有效的)
I:invalid(无效的)
步骤3:根据场景,设计测试用例测试用例与场景之间不一定是1:1的关系,有可能:一条用例测试多个场景,一个场景使用多条用例测试
案例2:五子棋游戏
步骤1、熟悉需求,整理业务逻辑。
额外规则:电脑如果是黑棋,不允许下出禁手,如果下出禁手就是缺陷
1、玩家先(玩家是黑棋)
玩家胜利
玩家负
和棋
玩家遇到禁手(躲开、没躲开)
2、电脑先(电脑是黑棋)
电脑胜
电脑负
和棋
电脑遇到禁手,必须躲开,如果下出禁手就是bug
步骤2、生成场景
步骤3、游戏测试中,有些场景可以不用写测试用例,执行场景,留下证迹(图片或视频)可以结合文字记录说明
留有证挤(截图):
截图的技巧:1、如果弹出提示,需要调整位置,尽量不要遮挡有效信息
2、尽量截取整个游戏界面,不要只截取局部,将所有有效部分都截取到。
案例3:美萍酒店管理系统-系统设置-房间设置中的删除房间类型功能模块
1、熟悉需求
删除房间类型功能:
分析:删除房间类型的因素有两个:
1)房间的房态
房间类型中如果房间有人住,那么不能删除该房间类型
房间类型中如果所有房间没有人住,那么能删除该房间类型
2)服务生
如果房间类型分配有服务生不能删除
如果没有服务生可以删除
总结:综合房态和服务生两个因素:
房间类型能删:没人住+没服务生
房间类型不能删:
有人住(占用、预订、长包房)+没服务生
有人住+有服务生
没人住(停用、清理、可供)+有服务生
房态分析:
有人住:占用,预订,长包房,
没人住:停用,清理,可供
作业:测试删除房间功能(场景法)
需求:有人住的房间不能删,没人住的房间可以删。
网友评论