如何编写优秀的测试用例,建议收藏和转发
1、测试点与测试用例
测试点不等于测试用例,这是我们首先需要认识到的。
问题1:这些测试点在内容上有重复,存在冗余。
问题2:一些测试点的测试输入不明确,不知道测试时要测试哪些。
问题3:总是在搭相似的环境,做类似的操作。
问题4:测试点描述得太粗,不知道是不是测对了。
测试点是测试者在测试时需要关注的地方。虽然我们在分析测试点时,会使用各种测试方法,但这些方法在思路和操作上都是不同的,一些方法得到的测试点要细一些、具体一些,一些方法得到的测试点粗一些、泛一些是非常正常的。另外,谁也不能保证这些测试点之间不会重复或是相互包含。如果我们的测试就是按照这样一份粗细不一、深浅不明、关系不清的说明书来进行的,又怎么不会陷入既冗余又不足的困境中呢?
而测试用例是在测试点“加工”的基础上得到的。首先把测试点“去重”(去掉重复的内容)、“合并”(把太细的测试点合并起来)、“细化”(把太泛的测试点说清楚、说具体),然后再确定各个测试点的测试条件、测试数据和输出结果。如果说测试点还只是一些散乱的测试思路的集合,那么测试用例就是一份真正能够指导测试的测试说明书。
2、测试用例设计流程
1、创建测试用例模板
2、设计基础测试用例
3、测试用例评审(内审+外审)
4、补充测试用例
5、扩展(探索性等)
3、编写测试用例
1、首先确定一个标准的模板
一般包含以下几项(可根据公司需要做裁剪或添加):
用例编号 所属模块 用例标题 优先级 适用阶段 前置条件 测试数据 操作步骤 预期结果 执行结果 备注
2、测试用例标题要是一个完整易懂的句子
能够清晰表达测试用例的测试目的和关键测试要素,只有当测试用例标题是一个完整的句子时,读者才能完整地了解这个测试用例的意图。
用例标题要求一句话简单描述(在/当。。。时候/之后/页面,主语+谓语+宾语)
3、用条件而不是参数来描述测试用例标题
如果你有对比就会发现,使用条件来作为测试用例标题,和使用参数相比,前者更能突出设计这个测试用例的目标,也易于读者理解测试用例的设计意图,也更易于维护。可见,在描述测试用例标题时,更适合用条件,而不是参数。参数更适合在测试用例模板中的测试数据部分体现,不要把它们罗列在测试用例标题中。
4、如果一个用例中包含有多个参数,用例中应该是每个参数的取值
我们在写测试用例的时候,应该对涉及的每个参数给出确定的值。
5、不要在测试用例中引用别的测试用例
引用测试用例会给后期用例的修改、维护和移植带来麻烦。
我们会在测试用例中引用另外一个测试用例,在很大程度上是因为用例在执行中存在先后关系,即测试用例2一定会在测试用例1之后执行。这时我们可以考虑这样来编写测试用例:把测试用例1和测试用例2合并成一个大的测试用例。可以把测试用例1的主要内容放到测试用例2的预置条件中。
6、避免测试用例中包含过多的用户接口细节
用例执行者应该是专业人士,测试用例不必写得面面俱到。
7、明确测试步骤和预期结果的对应关系
一个测试用例通常会包含好几个测试步骤和多个预期结果。有时候不同的测试步骤可能会有相同的预期结果,为了描述简便,很多测试用例作者会省略相同的预期结果。另外,也不是所有的测试步骤都有预期结果,一般是重要、关键的测试步骤才会有预期结果。这时我们可以在测试用例中,增加简单的标记来明确测试步骤和预期结果之间的对应关系,让测试执行人员一目了然。
8、避免在测试步骤中使用笼统的词
我们在描述测试步骤时,需要尽量避免那些笼统的表述方式,如“反复”、“长时间”、“大量”等。因为这样描述,不同的测试执行者的理解会有所不同。比如“反复”,有人会认为执行两次就是反复了,有人可能会认为要执行至少10次,这样就会造成测试执行上的差异,很可能会达不到测试的效果。
例1:明确次数
问题:反复执行接口up/down的操作
解决方法1:在测试用例中确定反复的具体次数。
修改1:反复执行接口up/down操作100次。
解决方法2:也可以为测试用例确定一个反复的范围。
修改2:反复执行接口up/down操作至少100次。
解决方法3:如果反复多次执行某个操作多次后,会出现某种特定的效果(例如内存会升高到某个特别值),但是需要反复执行多少次这样的操作确并不确定,可以这样描述。
修改3:反复执行接口up/down操作,直至系统内存值达到最大值的45%。
例2:明确时间
问题:系统长时间转发HTTP业务
解决方法1:在测试用例中确定长时间的测试时长。
修改1:系统持续转发HTTP业务24小时。
解决方法2:也可以为测试用例确定一个长时间的测试时间范围。
修改2:系统持续转发HTTP业务至少24小时。
例3:明确数量
问题:大量用户同时连接服务器
解决方法1:需要确定大量的具体数量,如1000、2000。
修改1:2000个用户同时连接服务器。
解决方法2:可以以产品规格作为大量的参照值,如满规格、系统支持数的50%。
修改2:满规格用户同时连接服务器。
4、测试用例评估
测试过程评估分析的对象是测试用例、测试方法和测试投入。
为什么进行产品质量评估还需要对测试过程进行分析呢?试想对一个产品测试来说:
1、有充分完备的测试用例和没有测试用例进行随机测试相比,哪一种测试的结果更可靠?
2、使用了多种测试方法与测试方法单一相比,哪一种测试结果更有助于进行产品质量评估?
3、有经验的测试人员、充足的测试投入与没有经验的测试人员、测试投入不足相比,哪种测试情况更有利于测试目标的实现呢?
可见,对测试过程进行评估,对产品质量评估而言十分重要。不仅如此,如果我们能够在测试之前就对测试过程进行计划,还能帮助我们更好地进行测试,更好地完成产品的测试目标。
我们可以通过如下3个指标来对“测试用例”进行评估:
1、测试用例执行率
(1)测试阻塞 - 试用例因为产品开发(一般是指缺陷)、测试(如测试环境不具备)等原因,无法被执行的测试用例。
(2)未执行 - 可以执行,但是因为进度、人力或其他原因等还没有被执行的测试用例。
2、测试用例执行通过率
(1)首次执行通过率 - 测试用例首次执行通过率可以帮助我们评估开发版本的质量,测试用例首次执行通过率越高,说明开发的版本质量不错;相反,如果开发需要多次修复,最后才能使得测试用例执行通过,说明版本质量可能不高,产品在设计、编码方面可能存在一些问题,即便是修复bug,在修复时引入新bug的风险也会更大一些。
(2)累积通过率 - 测试用例累积执行通过率可以帮助我们评估产品在发布时的质量,一般说来,测试用例累积执行通过率越高,说明当前的版本质量可能已经达到了基本要求,可以考虑发布。
3、测试用例和非测试用例发现缺陷比
测试人员在按照测试用例执行测试的时候,也会抛开测试用例,自我发挥,做些随机测试。显然,随机测试也能发现缺陷,有时候甚至比测试用例更能发现产品缺陷,而且“突然一个灵感来了,然后去测试,并且真的发现了产品缺陷”的过程,会让人很有成就感。因此在团队中,我们往往会鼓励大家在执行测试用例的时候适当进行一些探索性测试,挖掘bug,找找感觉。
我们希望“通过测试用例发现的缺陷”和“探索性测试,也就是非测试用例发现的缺陷”的比值能够在一个合理的范围内。
5、跟踪测试用例执行情况
跟踪测试执行的目的有3个:
1、确保测试团队是按照测试策略来执行测试的。
2、实时关注缺陷,通过缺陷分析来确认测试策略是否合适,是否需要调整。
3、关注项目中的实时风险,基于风险来调整测试策略。
需要特别注意的是,按照优先级来执行测试用例,不是说我们一开始就只执行高优先级的测试用例,而不去执行中、低优先级的测试用例。
我们需要在测试刚开始的时候,对每个功能都执行一些基础性的测试用例,以确认这些功能基本可用,不会阻塞后续的测试。
配置测试→功能测试→功能交互→业务流程测试。
资源分享
下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】
如何编写优秀的测试用例,建议收藏和转发相关推荐
- JavaScript的代码编写注意事项,建议收藏!
在我们进行前端开发的过程中,需要遵循一定的代码编写规则,这样才能够让我们写出更合理的.易于阅读和维护的代码,那么你知道在JavaScript中有哪些需要注意的地方吗? 一.块级作用域let 取代 va ...
- 【松勤软件测试】作为一名软件测试工程师,如何编写优秀的测试用例
测试用例是测试的核心,如何设计出能发现问题,有效能覆盖需求,没有冗余的用例是每个测试工程师必须跨过的一道门槛.结合本人这么多年来在测试领域的经验总结,我们下面先探讨一下衡量和检验测试用例的标准?然后怎 ...
- 2016版excel_用Excel处理身份证信息的技巧,看这篇就够了,建议收藏
工作中,总免不了和身份证打交道.除了用Word表格,我们遇到最多的就是要用Excel来处理身份证信息了,比如: 在Excel中录入身份证信息 用Excel安全地处理csv文件中的身份证信息 判断性别 ...
- 作为一名软件测试工程师,需要具备哪些能力?(建议收藏/深度好文)
2020年,软件测试行业还值得入行吗? 行业的现状及前景 那么处于2020年,软件测试这个行业又将如何发展呢?我谈一下几点,如果你处在这个行业,一定能体会到我说的对不对. 1. 表面"衰落& ...
- 编写优秀Bug报告的艺术 ----转载自CSDN(imlogic的专栏)
(翻译)编写优秀Bug报告的艺术 ----------http://blog.csdn.net/imlogic/ 前言 在99年 ...
- 呕心沥血 JavaScript知识点梳理大全,超详细 建议收藏!!!
呕心沥血 JavaScript知识点梳理大全,超详细 建议收藏!!! ✴️大家好,我是王同学,爆肝三天三夜王同学把JavaScript 知识点梳理了一遍,文章没有一点套路,只有满满的干货 ✴️如果对你 ...
- ⭐程序员必备软件图鉴⭐(建议收藏)
⭐程序员必备软件图鉴⭐(建议收藏) 文章目录 ⭐程序员必备软件图鉴⭐(建议收藏) 前言: 一.系统处理类 无声的安全管家:火绒安全软件 压缩/解压神器:Band Zip 远程控制软件:向日葵 文件解锁 ...
- android view设置按钮颜色_建议收藏!最全 Android 常用开源库总结!
作者 | i小灰地址 | https://www.jianshu.com/p/3fde87405411 前言 收集了一些比较常见的开源库,特此记录(已收录350+).另外,本文将持续更新,大家有关 ...
- 2019最新Android常用开源库总结(持续更新,建议收藏)
热文导读| 点击标题阅读 如何才能成为优秀的架构师? 23种设计模式及案例整理分享(建议收藏) 程序员的35个坏习惯,你有几条? 作者:欢子-3824 来源:https://blog.csdn.n ...
最新文章
- Spring MVC中用@ResponseBody转json,对json进行处理方法汇总
- VTK:Kochanek样条用法实战
- List与逗号分隔的字符串相互转换
- Java LinkedList的实现原理详解
- adhoc包无法安装_iOS 5.1.1 设备不能安装AdHoc问题版本号
- 【Shell教程】二----Shell变量,通配符,转义符
- Linux架构之NFS共享存储1
- java 反射api_个人编程学习网 - Java-操作反射其他的API
- table id=datatable - Requested unknown parameter 'tname' for row 0, column 4. 解决
- http协议、cookie与session介绍
- Java工程师如何在Docker上进行开发
- NLP自然语言理解-中科院(宗成庆) P1~P4
- 电路设计_MOS管导通条件
- Protocol Buffer 简介
- java异常处理(Exception handing)机制
- 【源码】loess method扩展算法仿真
- 从xgboost, lightgbm 到catboost
- 基于51单片机简易智能家居
- 【原创】从头开始,使用安卓系统WebView做一个功能强大的Epub阅读器(五)
- MT4 CRM 系统开发(一)
热门文章
- Qt 错误qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
- Nature:真核核糖体可以像原核核糖体一样被修饰以应对抗生素
- android app 的后台代码,包括后台的Android美食APP项目开源代码
- git下载,上传代码到GitLab ; Untracked files (use “git add <file>...“ to include in what will be committed)
- 解决K8S中Pod无法正常Mount PVC的问题
- java 身份证号码校验工具类
- php表格所有边框实线,css表格怎么添加边框样式?css表格边框样式总结(附完整实例)...
- 如何在bat脚本中列出指定目录下的所有文件信息
- 外汇天眼:使用 MT4 进行交易的最佳方式
- iOS开发系列--数据存取