测试用例入门(一)-如何编写用例标题、前置条件、测试步骤和预期结果?
测试用例一直是作为一个测试工程师必备的技能。就像游泳运动员要会游泳、老婆饼要有饼、鱼香肉丝要有肉丝一样,测试要会写测试用例。
目录
- 一、含义与优点
- 1、什么是测试用例
- 2、为什么要写测试用例
- 三、核心组成部分:用例标题,前置条件,测试步骤和预期结果
- 1、用例标题:用简洁、概况性的语言体现此条用例的关注点和出发点。
- 2、前置条件:执行当前用例所要满足的条件或需要准备的相关操作
- 3、测试步骤:验证用例测试点所需要执行的操作。
- 4、预期结果:完成操作步骤后程序的表现,这些表现也是用例检查点。
- 五、书写要求中最重要的一点
- 六、示例:注册弹框-手机号码输入框测试用例
- 附录:【测试用例入门系列目录】
一、含义与优点
1、什么是测试用例
百度百科里给的解释是:
测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。
换句话说测试用例其实是测试方案、方法、策略的书面化体现,
所以当我们在讨论测试用例的设计方法时,其实是在讨论测试方案、方法、策略的设计方法。
这意味着即使平时可能因为种种原因,导致工作中没有编写测试用例,但其实只要还有在从事软件测试的工作,就已经在进行用例设计。
2、为什么要写测试用例
测试用例的优点可太多了,在《软件测试》这本书中,对测试用例的描述是“对鹅是个好东西,对鸭也是个好东西”
具体有什么好处可以从以下几个方面体现:
1、想出测试方案之后,只是把它放在脑子里,有被忘掉的风险,好记性不如烂笔头,所以把它写入用例吧
2、一个项目,可能存在多个测试人员,写测试用例可以便于测试项目小组成员审查和使用
3、需求文案内不会包含所有情况下的表现,而代码可能不会记录对应的业务逻辑,可以说测试用例可以很好的解决这两个问题,特别是大型的、持续迭代版本的项目每个版本,对每种情况的记录就尤为重要。
(每次对功能由疑问的时候,往往都是在测试用例里找到答案。产品需求文案经常不及时更新,程序代码经常没有写备注。还是自己的测试用例靠谱啊)
4、测试工作存在一定的重复性,往往需要多次执行相同的测试,这个时候有测试用例就非常方便啦。
5、测试工作量的体现,测试用例能将测试的工作量直观的展现出来。
6、跟踪、记录测试工作。多少个用例通过、多少个用例失败、多少个用例被忽略,如果没有测试用例,就没有办法回答这些问题。
三、核心组成部分:用例标题,前置条件,测试步骤和预期结果
1、用例标题:用简洁、概况性的语言体现此条用例的关注点和出发点。
- 用例标题可以让使用用例的人或是评审用例的人快速了解此条用例的意图。也因为用例标题是测试点的概况,可以快速判断出用例内覆盖的测试点是否有遗漏。所以测试标题在多人合作的大型项目尤为重要。
那么测试用例标题该如何编写?
- 用例标题可以是测试点,也可以是此条用例结果的提取。下面提供三种测试标题的示例供参考:
1. 功能点,例如:网络正常时点击购买按钮弹出支付弹框
2. 功能-流程,例如:会员购买页面-成功购买流程
3. 某种状态或条件-结果,例如:无网状态-点击购买-提示无网
- 这三种标题的编写方式,也可以与模块名结合。将模块名和测试标题合在一起表示的是在“测试标题”情况下测试“模块名”,例如:
- 标题定下之后,也就定下了这条用例的中心点,接下来的前置条件,测试步骤和预期结果都将围绕这个中心点展开。
2、前置条件:执行当前用例所要满足的条件或需要准备的相关操作
- 前置条件可以是准备测试数据、角色的权限、或者是进入某个页面、展示某个弹框,但前置条件首先要满足下面两个原则:
1.前置条件本身一定是成立的
2.在这个前置条件下,后续的用例步骤一定能成立
而对于一条用例来说,前置条件有很多选择,如何制定前置条件,才能达到最好的效果?
首先要明确,并不是所有的用例都需要前置条件。 前置条件应该在测试点或测试标题确认之后,再判断此条用例是否需要前期准备。
这里提供一种确定前置条件的方法:
在确认测试点之后,先列出所有需要达到这个测试点的步骤和预期,然后仅留下证明此条测试点的关键性步骤和预期,在这之前的步骤和预期总结为前置条件。
前置条件主要的使用场景有下面几种:
- 让用例的执行者明确待测项目处于什么状态。 例如:会员成功购买流程的前提条件是用户已登录账号。
- 控制变量。 例如:登录弹框在手机号码为空的时候,点击登录会提示“请填写手机号”,那么这条用例的前置条件就是除了手机号码未填写,其他输入框已填写。
- 需要准备的数据,或已进入的页面、展示某个弹框。例如:测试列表分页的情况,当前页面最大显示10条数据时展示下一页按钮,那么想要测试下一页按钮,前置条件就是准备11条数据。或是要测试登录弹框内的某个控件,那么前置条件就是登录弹框已展示。
- 用例与用例之间关联性,有时一个用例能够执行的先决条件是另一个用例成功执行。那么后置用例的前置条件就可以使用另一个用例的预期结果。
最后确定好前置条件的内容后,将条件归纳总结为一个简洁的结果。
3、测试步骤:验证用例测试点所需要执行的操作。
测试步骤比较好理解,就是该如何执行用例。对于操作步骤有以下几点要求:
用例的步骤是线性的,先做什么后做什么。
需要清晰、准确的描述操作步骤,不能出现假设性的词语。如:进入页面,这个页面的名称,或点击按钮这个按钮的名称或位置都应该准确描述。
正如上文所说,操作步骤需要围绕着测试标题展开,如果有多余的步骤建议归纳到前置条件里。
操作步骤不应该出现“和”、“或”、“且”等这样的连词,如果有这种情况,应该拆分成多个步骤,或者拆分成单独的用例。
测试步骤内不能出现预期结果的内容。(分清什么是预期,什么是步骤,也是写好测试用例的关键点)
4、预期结果:完成操作步骤后程序的表现,这些表现也是用例检查点。
- 预期结果与学生时代写作文时的景物描写类似,以前的作文是“通过对景物的描写表现作者的情感”,而预期结果是“通过对检查点的描写验证用例的测试点”。比如:验证购买按钮样式的预期结果就是——购买按钮展示在页面右下角、按钮形状为椭圆形,文案为“购买”。
预期结果的编写要求:
- 同测试步骤一样,预期的测试点也要围绕着测试标题或此条用例的测试点描述。
- 尽量不要有多余的检查点,更不要遗漏测试点
- 预期结果中不能含有测试步骤(分清预期和步骤这很重要)
- 每条用例都需要有至少一个预期结果
- 检查点不仅仅只是界面上的表现,也可以是数据库的数据、保存下来的文件、或是其他可以验证测试点的表现。
五、书写要求中最重要的一点
测试用例的编写要做到精确且准确:
- 精确就好比1加1等于2
- 准确就好比1加1每次都等于2
因为每个人看待问题的方式不同,可能有些情况部分人看来是有问题的,部分人看来是没有问题的。
所以测试用例中,所有操作、数据、状态等等都需要有明确的定义,哪些情况是可接受的、哪些是不可接受的。
六、示例:注册弹框-手机号码输入框测试用例
- 以下面需求中的手机号输入框为例,简单列几条测试用例示例:
- 以下测试用例只能做格式参考,作为手机号输入框测试用例来说并不完整
用例标题 | 前置条件 | 测试步骤 | 预期结果 |
---|---|---|---|
手机号输入框默认占位字符为“请输入手机号” | 注册弹框已展示,且手机号输入框未输入数据 | 查看手机号码输入框 | 显示默认展示字符“请输入手机号” |
手机号输入框只能输入数字 | 注册弹框已展示,且手机号输入框未输入数据 | 步骤1:在手机号输入框输入数字 | 预期1:可正常输入 |
- | - | 步骤2:在手机号输入框输入非数字 | 预期:不可输入 |
手机号输入框只能输入11位字符 | 注册弹框已展示 | 步骤1:在手机号输入框输入11位 | 预期1:可正常输入 |
- | - | 步骤2:在手机号输入框输入12位字符 | 预期:超过11位时不可再输入字符 |
- 思维导图的形式:
附录:【测试用例入门系列目录】
测试用例入门(一)-如何编写用例标题、前置条件、测试步骤和预期结果?
测试用例入门(二)-使用等价类划分法编写测试用例
测试用例入门(三)-使用边界值分析法编写测试用例
测试用例入门(四)-使用流程分析法、状态分析法编写测试用例
测试用例入门(五)-如何进行需求分析
测试用例入门(六) - 根据测试类型与颗粒度归纳测试点
测试用例入门(一)-如何编写用例标题、前置条件、测试步骤和预期结果?相关推荐
- 测试用例入门(三)-使用边界值分析法编写测试用例
在<软件测试>一书中是这样描述边界值分析法的作用:如果在悬崖峭壁边可以自信.安全的行走而不掉下去,平地就不在话下了. 本篇文章中的演示代码均由Python编写 目录 一.边界值分析法概述 ...
- 黑盒测试用例的设计与编写
测试用例的基本知识 什么是测试用例? 测试时所使用的案例,用于指导测试的执行 测试用例的定义是为了特定的目的而设计的一组有测试输入.执行条件.预期结果的案例(文档)测试用例的构成要素?用例编号--用例 ...
- 软件测试 | 测试用例——如何写好一个用例
测试用例(Test Case)是为某个测试目标而编制的一组测试输入.执行步骤以及预期结果的集合,以便测试某 个程序的路径或验证软件是否满足某个特定需求,那么怎么写好一个用例呢? 1.什么叫测试用例 测 ...
- 测试用例编号_怎样编写测试用例更完整,更能提升工作效率?来试试这套方法!...
首先,我们需要知道测试用例是什么,测试用例(testcase)是为了某个特殊目标而变质的一组测试输入.执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求. 测试用例的编写是要结合需求 ...
- c语言n个测试用例0为结束,编写测试用例 - osc_4l0h8in9的个人空间 - OSCHINA - 中文开源技术交流社区...
软件测试用例: 软件测试用例就是指导你执行测试,帮助你证明软件功能或发现软件缺陷的一种说明. 可以总结为:每一个测试点的数据设计的步骤设计. 微信红包用例? 用例编号:HB_001 功能模块:发送红包 ...
- 软件测试用例的设计和编写
目录 一.为什么要写测试用例 二.软件测试文档 三.测试用例的常用方法 总结 重点:配套学习资料和视频教学 一.为什么要写测试用例 写测试用例可以让测试的需求覆盖更加全面,让测试工作进行得条理有序,且 ...
- 软件测试用例怎么设计和编写?你知道吗?
目录 一.为什么要写测试用例 二.软件测试文档 三.测试用例的常用方法 1.等价类 2.边界值 3.判定表 4.正交实验法 5.流程分析法 6.状态迁移法 7.因果图 8.输入域覆盖法 9.输出域覆盖 ...
- 测试用例的特性以及编写测试用例的方法
测试用例的特性以及编写测试用例的方法 测试用例的定义: 什么是测试用例? 测试用例的特征: 编写测试用例的好处: 测试用例的作用: 测试用例的4个特性 测试用例通常包括以下几个组成元素: 编写测试用例 ...
- allure报告---动态显示模块名和用例标题
一.allure报告动态参数化展示模块名和用例标题 使用@pytest.mark.parametrize 参数化完成数据驱动时,如果标题写死或者使用别名的方式 这样在报告中的可读性也不高 如何更美观的 ...
最新文章
- 2018 东北地区大学生程序设计竞赛(ABEHIK)
- Presenting the Permanent Generation
- QT——QT4.8.5安装与配置
- iOS大型项目之模块化管理
- Ps 初学者教程,如何在照片中创建纹身合成?
- MergeSort(C++)
- 特斯拉舍命狂奔:史上最强自动驾驶芯片发布背后,一场蓄意已久的进攻
- matlab串联矩阵如何表示,MATLAB串联矩阵
- 鼠标右键菜单打开慢的解决方式
- Derivation of Sparse Bayesian Learning
- 【A40I-LVDS】
- Ruoyi框架学习--Vue前端配置文件详解
- 互联网日报 | 雷军新年首场直播带货金额破1.88亿;京东正式上线“京喜拼拼”;三峡电站创造新世界纪录...
- 股票配对交易策略-最小距离法
- 幼儿园监控_透明装饰_安全工地_放心食堂_多媒体教室基于视频流媒体能力解决方案
- ue4蓝图和ai的区别_UE4 AI教程
- Ubuntu 16.04中安装OpenCV 2.4.11
- kotlin 异常错误汇总
- 华兴数控g71外圆循环编程_华兴数控G71指令怎么编
- PHP Web应用开发 -用PHP实现简单的个人博客网站
热门文章
- 台式计算机如何拆硬盘,机械硬盘怎么拆开?台式机3.5英寸机械硬盘拆卸方法图文教程...
- ug后处理如何加密_UG后处理修改方法
- IC圈的世界杯 | 论芯片设计的胜利十一人
- 使用python将罗马字转换为对应的阿拉伯数字
- Ubuntu 16.04 小键盘数字键盘开机自动启动
- [ECE]模拟试题-7
- 职能与职位的区别_使安全职能与战略,目标和使命保持一致
- 13、Horizon App Volumes 安装配置
- 算法导论 — 比较排序算法对比实验
- 短信接口抓包_[实战] 实现抢票小工具amp;短信通知提醒