功能测试与项目实战之编写测试用例(重中之重)
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!
接着上一篇博客继续往下写 :https://blog.****.net/qq_41782425/article/details/103531642
一、测试用例的定义和内容
1.测试用例的定义
- 对一项特定的软件产品进行测试任务的描述,指定输入,预期结果和一组测试项的执行条件的文档。
√ 体现测试方案、方法、技术和策略;
√ 内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等。
2.测试用例的元素
- 测试用例必须给出测试测试目标、测试对象、测试环境要求、输入数据和操作步骤,概括为 5W1H。
√ 测试目标: Why——为什么而测?功能、性能、可用性、容错性、兼容性、安全性等。
√ 测试对象: What——测什么?被测试的项目,如对象、函数、类、菜单、按钮、表格、接口、整个系统等。
√ 测试环境: Where——在哪里测?测试用例运行时所处的环境,包括系统的配置和设定等要求,也包括操作系统、浏览器、通讯协议等单机或网络环境。
√ 测试前提: When——什么时候可是测?测试用例运行时所处的前提或条件限制。
√ 输入数据: Which——那些数据?在操作时,系统所接受的各种可变化的数据,如数字、字符、文件等。
√ 操作步骤: How——如何测?执行软件和程序的先后次序步骤等。如打开对话框、点击按钮等。
二、为什么需要测试用例
-
测试用例是测试人员在测试过程中的*重要参考依据。
-
测试用例可以帮助实施有效的测试,所有被执行的测试都是有意义的,不要执行毫无意义的测试操作。
-
良好的测试用例不断地被重复使用,使得测试过程事半功倍。
√ 在软件产品的开发过程中,开发人员不断的推出新的版本,测试人员需要对原有功能进行多次的回归测试,即使在一个版本中,也要进行 2~3 次的回归测试。这些回归测试,就要求能重复使用测试用例。 -
测试用例是一个知识积累的过程。
-
测试用例是一个知识传递的过程,能保持一致、稳定的测试质量
-
从项目管理的角度来说,测试用例的通过率是检验代码质量保证效果最主要的指标之一。
-
测试用例也可以作为评估测试人员进度、工作量以及跟踪/管理测试的工作效率的主要因素,从而更加合理地做出测试安排或调整。
三、测试用例的写作说明
1.测试用例的模板/格式
2.测试用例的写作说明
2.1 用例编号/序号
按照公司的规定来,如果没有规定需要保证简单、唯一。(软件名_功能 _用例_编号)
2.2 用例说明
-
也称测试点、检查点、测试概述、用例概述、测试说明;
-
用一句话对测试用例进行概述;
-
可以总结测试目的;
-
可以用疑问句表示;
-
可以用“检查、验证、测试”等字眼(如验证 QQ 默认安装);
-
最好看到这句话就能知道如何测试;
-
尽量唯一(决策表可能会有重复的测试说明);
-
用例执行多轮时,越往后执行可能越快,如果用例写得好,直接看概述就行。
2.3 初始条件
-
也称预置条件、前提条件;
-
初始条件要是一个状态,而且是静态的,如管理员已登录后台;
-
初始条件是第一步操作步骤之前的状态,不能太远,不用从头写到尾
-
很多项目中不写预置条件。
2.4 操作步骤
-
若对数据要求高,需要把数据分离出来;
-
步骤要都有序号;
-
每一步用分号分开,最后用一个句号;
-
每一步必须换行;
-
参数前加冒号(如用户名:admin);
-
涉及按钮界面用【】、“”等成对符号间隔;
-
功能的详细用例步骤 4-6 步左右;
-
最后一步一定是个动作,不能写结果。
2.5 预期结果
-
是一个状态;
-
如果参考文档中有描述,原封不动的抄过来;如果文档中没有具体要求,则点要一致,可以有几个点,如 QQ 默认安装,应能启动、默认选项匹配等。
2.6 用例状态
-
通过、失败、阻塞、未执行、搁置、无效用例…
√ 初始条件达不到时,一般用例状态设置为阻塞。 -
看如何执行用例,执行完关心什么来定。
2.7 优先级
- 用例的执行顺序。(在写用例的时候最好不要写优先级,在评审时候再去考虑优先级,不然太耽搁时间了)
3.案例
4.测试用例的模板
说明: 用例模板很多,博主这里只演示了4种模板
4.1 模板1
4.2 模板2
4.3 模板3
4.4 模板4
5.测试用例的示例
博主这里给大家看一下电梯控制模拟系统的测试用例
6.测试用例实战
- 根据之前编写的学生管理系统测试需求分析中的测试点以及学生管理系统连接数据库功能拆分文档,结合模板4编写测试用例
- 编写连接数据库服务器全部测试用例,如下所示
四、测试用例的评审和管理
1.保证测试用例质量的方法
-
首先,要对用户需求、服务质量要求、产品特性有深刻且全面的理解
-
其次,采取正确、恰当的方法进行用例设计;
-
再者,按照测试用例的标准格式或规范的模板来书写测试用例;
-
最后,对测试用例的检查、评审,也是提高测试用例质量的主要且有效的手段。
2.测试用例的优先级
2.1 优先级的分类
2.2 如何设置测试用例的优先级
-
考虑成本、时间、人员等因素,兼顾测试的充分性和效率。
-
考虑用例的关联性。
-
考虑用例的干扰性。
3.测试用例评审要点
-
根据检查单或检查表(Check List)进行评审。
√ 用例“文字校对”:错别字、病句、语句不通顺、含义不清晰、语句有歧义、格式不一致、标点不一致、中英文混合等。
√ 用例质量:遗漏用例、冗余用例、不清晰用例、错误用例、不可测用例等。 -
确定用例的优先级。
-
规划服务器和客户机。
-
用例的分工执行与人员安排。
-
记录评审过程,记录测试环境规划。
4.测试用例的维护
4.1 原因
-
通常情况下,测试用例需要更新,可能有以下几种原因:
√ 先前的测试用例设计不全面或者不够准确。随着测试的深入和对产品规格说明书的深入研究,对某些功能、特性、逻辑等的理解越来越清楚、深刻 -
所发现的严重的软件缺陷没有被目前的测试用例所覆盖。
-
编写的测试用例不规范或者语句错误。
-
新的版本中有新功能的需求或者原有功能的增强而需要发生改动。
-
旧的测试用例已经不再适用,需要删除。
4.2 测试用例管理工具
-
Excel
-
Bugfree
-
ZenTao
-
ALM/QC
-
…等
五、用例设计与编写方法总结
说明: 以下测试是指测试的类型,而不是说测试的方法
1.通过测试
- 主要用于验证系统和它陈述的需求一致,确认软件至少能做什么,一般通过分析需求说明书来设计测试用例。
2.失败测试
- 纯粹为了破坏软件而设计和执行的测试案例,也称迫使出错测试。主要用于证明“一个系统不会做不需要它做的事情”。
3.随机测试
-
也称即兴测试(ad hoc testing),是指临时准备的、即兴的 Bug 搜索测试过程。
-
如果让一百万只猴子在一百万只键盘上敲一百万年,它们最终就可能写出莎士比亚话剧等巨著。
-
缺点
√ 无法度量随机测试的实际覆盖率。
√ 许多测试都是冗余的。
√ 测试数据因为是随机的,重复测试是不可能的。
4.应用群集效应
-
找到的软件缺陷越多,说明那里的软件缺陷越多,若在测试中发现大量的上边界条件缺陷,则在测试时应注重上边界。
-
程序员倾向于修复报告出来的问题,要保证除此之外可能存在的其他问题不会出现。
5.探索性测试
5.1 含义
-
是一种测试思维技术。
-
探索性测试是一种精致的、有思想的过程。
-
探索性测试强调测试设计和测试执行的同时性。
-
测试人员通过测试来不断学习被测系统,同时把学习到的关于软件系统的更多信息通过综合的整理和分析,创造出更多关于测试的主意。
-
测试设计,测试执行,测试日志的记录似乎是无关紧要的工作。
-
测试人员必须根据测试章程在规定的时间内完成。
5.2 适合场合
-
没有或只有少量的有价值的文档;
-
常用于在时间压力下;
-
为补充合适的、正式和形式化测试。
6.如何选择用例设计与编写方法
-
先使用大纲法拆分功能;
-
在使用场景法、决策表设计测试用例。
√ 如果程序的功能说明中含有输入条件的组合情况,则应在一开始就选用决策表法。 -
用等价类划分方法、边界值分析方法、错误猜测法补充测试用例。
-
执行测试时进行探索性测试或随机测试。
-
执行完测试用例后进行随机测试。
六丶ALM(测试管理工具)
说明: 在博主的之前的软件测试之测试计划与工具系列博客中给大家演示了禅道以及QC工具的安装及使用,现在给大家演示一下ALM工具的安装及使用
1.安装数据库sql server
- ALM测试管理工具可以管理需求丶用例丶缺陷以及软件版本控制,这个软件需要用到数据库,这里使用sql server,博主特意下载并安装了windows server 2008 R2服务器系统纯净版的来演示
- 因为准备的材料中的sql server 为iso镜像文件,所以在虚拟机中可以通过如下方式加载此镜像文件,除此之外还可以解压缩镜像文件进行安装也行
- 点击确定后,会弹出如下提示,运行即可
- 期间会提示安装.NET Framework博主这里忘记截图了,点击确定安装即可,安装完成后会出现sql server安装界面
- 温馨提示,有同学如果怕错误可以保存当前快照
- 点击左侧菜单栏安装选项,选择全部安装即可
- 紧接着安装完全点击确定即可
- 然后到产品密匙界面,这个密匙是镜像自带的不用我们输入,点击下一步即可
- 同意协议,点击下一步
- 安装支持文件
- 继续下一步即可
- 默认安装点击下一步
- 在功能模块中,如下选择自己所需的安装即可,当然全部安装也是没有问题的
- 安装完成,继续下一步
- 实例配置默认,点击下一步即可
- 磁盘空间要求下一步即可,到服务器配置如下,点击下一步
- 账户设置选择混合模式设置密码,然后点击添加当前用户,最后点击下一步
- 下一步下一步错误报告界面,点击下一步
- 点击安装,程序开始真正的安装,安装过程稍微比较长
- 安装完成点击关闭即可
2.安装ALM
- 在安装ALM之前,需要将sql server tcp/ip协议打开,不然无法访问数据库,在开始菜单找到配置工具,然后打开
- 找到tcp/ip协议右击启用
- 紧接着需要重启sql server让启用的tcp/ip协议生效
- 同理跟sql server安装一样,在虚拟机中加载镜像文件,然后会打开镜像文件夹,找到对应你计算机的位数,点击安装程序即可
- 到如下安装界面,下一步
- 中间步骤省略都是麻瓜似的步骤,直到安装界面,需要一段时间安装
- 安装完成后到如下页面
- 点击下一步,浏览镜像文件下的密匙文件即可,然后下一步
- 选择独立节点,然后下一步
- 安全性如下填写即可
- 应用服务器默认配置即可
- 到如下界面,直接下一步
- 不需要安装Mercury Tours 案例,直接下一步到邮件服务器也是不需要
- 配置数据库服务器,点击下一步,如果验证不通过不会到站点管理数据库架构页面
- 直接下一步即可
- 设置站点管理员密码
- 查看概要,点击下一步进行应用配置即可
- 应用配置完成启动jboss服务即可
- 启动Jboss服务完成后会弹出ALM的页面,此时需切断外网
- 点击进入站点管理,会弹出一个插件安装,一定要选择总是安装,不然以后老是会提示,造成问题
- 安装完成后,出现登录界面,输入之前配置时的站点用名密码即可
- 登录成功进入如下页面
- ALM跟QC一样都是属于HP公司的,那么前台的地址都是http://127.0.0.1:8080/qcbin/
- 浏览器返回到前台页面,点击ALM直接提示以下错误
-
解决方法: 安装光盘\ALM\Utilities\Sprinter\Sprinter\EN\prerequisites\vc2005_sp1_redist\vcredist_x86.exe,完成后重新打开ALM Platform,如果打开过程中出错,可关闭后重新打开
- 安装完成后强制刷新页面,加载插件后,提示如下信息,点击关闭即可
- 成功打开ALM
- 输入管理员用户名密码,点击身份验证提示如下信息,因为目前在后台是没有任何项目的
3.ALM的使用
3.1 创建域及项目
- 登录后台站点,创建一个域(项目或者团队名)
- 在测试团队域下创建一个项目
- 操作跟在QC一样只是QC是英文的,为当前项目添加管理员
- 最后点击创建即可
3.2 创建站点用户
- 选择站点用户,点击创建用户按钮
- 创建完成如下
3.3 添加用户到项目
- 回到站点项目,点击项目用户,进行添加即可
- 将测试经理与开发经理设置为管理员权限
3.4 创建组并赋予权限
- 点击右上角的注销按钮,回到初始页面,点击ALM进行前台登录
- 登录成功之后,点击上方菜单栏工具——自定义,选择组和权限,到如下页面
- 点击新建组,创建想要创建的组,而不用本身系统提供的
- 创建完成后,点击权限,查看组的权限,开发组的权限和测试组的权限是不一样的,可以根据实际情况进行添加或者修改
- 为测试组添加人员
- 最后记得点击保存按钮
- 注销切换到csy01账号进行登录,并查看权限是否OK
3.5 编写测试需求
- 点击需求,在Requirements下点击创建需求文件夹(也就是我们xmind拆分的功能点)
- 在需求文件夹下创建需求业务
3.6 将测试需求转换为测试用例
- 选中Requirements,点击需求下的转换测试即可
- 点击测试计划(测试用例),则可以看到转换的用例了
- 明显以上是不正常的,所以以后不能通过这种方式进行用例的编写了,现在删除用例,重新转换,只转换确定需求下的场景
- 回到测试计划中,查看如下
- 在设计步骤模块,点击新建步骤,如下
- 添加完成如下
3.6 安装用例导入插件
- 首先通过虚拟机加载office.iso镜像文件,进行安装
- 只安装需要的excel即可
- 点击驱动文件夹中的导入插件,进行安装
3.7 excel用例导入到ALM中
- 用例如下
- 文件—选项—信任中心—信任中心设置—宏设置—启用所有宏—开发人员宏设置下将复选框打勾
- 关闭并重新打开Excel—点击"加载项"菜单—Export to HP ALM,提示以下错误
- 解决方法:关闭excel,关闭ALM(把浏览器关闭即可);在地址栏输入:http://服务器的ip:端口/qcbin/start_a.jsp?common=true,然后重新加载客户端插件;打开excel重新导入即可
- 重新打开excel用例,按以下操作进行即可
- 到如下页面,选择用例tests即可
- 创建临时映像
- 到如下页面,跟之前QC一样,通过以下方式来对应excel表格中的字段名
- 这个存在乱码是很正常的,在添加过程中会有中问题是,匹配完成后,点击导出即可
- 回到前台,点击测试设计,刷新后,显示出导入的excel用例,对比步骤内容丶预期结果都是一致的