当前位置:网站首页>一份高质量的测试用例如何养成?
一份高质量的测试用例如何养成?
2022-07-31 03:02:00 【软件测试呀】
测试一个新功能时,最重要的一个步骤就是编写测试用例,测试用例写好了,那么后面的测试工作基本就非常顺利了,那么怎样提高测试用例的质量呢?
充分理解需求
拿到测试需求后,不应该拿到什么就是什么,需求上怎么写就怎么做,要有自己的见解。
举个例子来说,某个网站年终大促,要搞个优惠活动,有两种优惠方式:
第一种是店铺自己发的优惠,两件8折、3件7折;
另一种是平台提供的优惠,满100-10、200-30。
测试人员A拿到这个需求后,发现非常简单,迅速的就将测试用例编写完了,如下:
乍一看是没有问题的,所有情况也都考虑到了,但是仔细研究的话会发现,其中漏掉了好多场景。
测试人员B拿到这个需求后,发现有好多不明确的地方。
比如说,两种优惠同时满足的时候,优先使用哪种优惠,优惠可不可以叠加使用,店铺发放的优惠只针对当前店铺吗,一个账号每种优惠是不是只能使用一次等等。
带着这些问题,测试人员B就会与需求人员去沟通,等需求了解透彻之后,开始编写测试用例,对上面的补充用例如下:
所以说提高测试用例质量的一条重要途径就是挖掘潜在需求,只有将需求了解透彻之后,才能提高测试用例的覆盖率。
参照其他同类型网站和功能
如果一个新功能,你之前没有接触和了解过,完全没有头绪的话,不妨借鉴一下同类型的网站上的类似需求,通过实践来帮助自己理解这个需求。
虚心求教
编写完测试用例后,让老员工来指导一下,是否有需要改进的地方,毕竟老员工的工作经验丰富,对容易出现bug的地方比较敏感,看有没有漏掉的地方。
而且老员工一般对项目都已经非常熟悉了,通过跟他们沟通之后,可能自己也会发现一些不容易想到的点。
站在使用者角度看问题
功能的最终使用者是客户,我们要站在客户的角度来测试。
比如说我们做了一个搜索产品的功能,作为测试人员我们会考虑:支持模糊搜索,可以搜索产品名、产品编码,可以按照产品颜色搜索等等。
那么如果站在用户的角度,他们最关心的是什么呢?是搜索的速度、使用起来方便等等。
所以站在客户的角度看问题能让我们收获更高的满意度。
测试用例步骤清晰
测试用例步骤一定要清晰,让不懂测试的人看了也能执行。
我们在写测试用例时,一定要将所有信息都描述清楚。
比如说上面的最后一条用例,执行这条用例的条件是:该用户已经参与过优惠活动。这个一定要写清楚,不然容易造成测试用例错误的执行结果。
那么,一份高质量测试用例的形成,会包含哪些因素和步骤呢?
测试用例是测试设计的一个产出物,它直接体现测试设计的思想,一份漂亮的测试用例不仅仅是设计思路的优秀体现,更是便于流转和执行,具有可读性、传递性。
首先,我们要一份测试用例例模板,模板可以将测试用例的结构形式固定化、标准化,对编写者启引导作用,保证一份测试用例数据完整。
其次,测试用例的目标、可读、简洁是从各个属性所填的内容散发出来的。
1、用例编号
用例编号就是测试用例文档中一个代号,需全局唯一,我们可以通过代号快速找到测试用例。
用例编号的书写,建议是项目名_模块名_001,我们可以通过编号快速知道一个项目有多少用例,项目中一个模块有多少用例。
2、用例标题
目的:概述测试用例的主要内容,明确用例意图
在做用例评审时,通过浏览一个模块的用例标题,能快速判断有没有遗漏功能;通过浏览一个功能用例标题,能快速判断出有没有遗漏正常或异常case。
一个测试用例的好坏,一半体现在测试用例标题上。
一个好用例的标题,书写方式有三种:
一:一句完整的话(不超过30个汉字)
二:功能简报形式例:电影详情页-返回例:栏目-发布例:电影-添加
三:按条件/状态例:发起转码-无源媒体文件例:发起转码-有源媒体文件例:鉴权-已订购产品已过期例:鉴权-已订购产品未过期例:鉴权-未订购产品
3、预置条件
预置条件-测试用例能执行的前提条件。可以是到达某一状态,也可以是一些配置。
书写要求:一个简洁的结果。
用户已成功登陆自动审核的开关已关不需要写是怎么登陆的/如何将开关关掉的。
4、测试步骤
测试步骤是指如何执行用例,先做什么后做什么,是有顺序的概念在的。步骤和用例的目标需要是一致的,任意一个偏离目标整个case就是无意义的。
书写要求:可执行的操作,功能用例步骤不大于7,流程用例步骤随业务而定-这里不做限制。
(1) 采集电影check1 预处理电影check2 审核电影check3 发布电影[check4]
5、预期结果
预期结果是和测试步骤一一对应的,有几个检查点,就需要有几个结果。预期结果需要是可检查的,可从三个方面进行校验:
一:界面(结果会直接显示在界面上的)二:数据库(有些数据只会存于数据库中)三:磁盘(文件数据需具体到磁盘上看是否存在,数据是否正确)
书写要求:和测试步骤中check点一一对应,检查点>=1个
6、测试数据
测试数据:测试时使用到的数据。
书写要求:可用电影。
不用写到实际数据,在测试添加电影功能时,不需要写具体电影、导演、演员、宣传图片。
具体的数据-可以在数据准备时做好,如符合规格的图片(海报、图标、剧照),符合码率的媒体文件(正片和预览片)。
最后,测试用例整体是有逻辑的-需要有用例设计的魂。
编写测试用例的两个途径
1)先有用例设计,从整个产品/项目出发,先确定测试范围、测试目标,再细化范围到具体对象->具体功能,确定设计用例技术和测试方法,再来编写用例。
- 测试执行后-通过Bug反推 修改补充用例。
两者相结合才会产出一份高质量且有效的测试用例,理论->实践->理论过程。
附上编写测试用例常见问题
1、用例标题意图不明确2、用例中引用其他用例3、用例中包含过多的细节4、用例中出现笼统的词反复、多次确定反复的具体次数确定一个反复的范围长时间确定长时间的具体时间确定一个长时间的范围大量确定具体的数据量从需求/规格中中参照值5、用例中步骤不可执行6、用例中期望结果不可验证
最后就是用例的预期结果,一定要将所有涉及到的结果都列出来,不然执行测试的时候容易将要验证的点漏掉。
希望对大家能有所帮助。
最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。
自学推荐B站视频:
零基础转行软件测试:自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!
自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享
边栏推荐
- 观察者模式
- Discussion on Service Commitment of Class Objects under Multithreading
- Mysql 45讲学习笔记(二十五)MYSQL保证高可用
- Difference between CMOS and TTL?
- Software accumulation -- Screenshot software ScreenToGif
- Project (5) - Small target detection tph-yolov5
- 10 权限介绍
- [Android] Room - Alternative to SQLite
- 全流程调度——MySQL与Sqoop
- CorelDRAW2022 streamlined Asia Pacific new features in detail
猜你喜欢
JS 函数 this上下文 运行时点语法 圆括号 数组 IIFE 定时器 延时器 self.备份上下文 call apply
SQL注入 Less54(限制次数的SQL注入+union注入)
TCP详解(一)
加密公司向盗窃的黑客提供报价:保留一点,把剩下的归还
【C语言】三子棋(经典解法+一览图)
【异常】The field file exceeds its maximum permitted size of 1048576 bytes.
4. Sensitive word filtering (prefix tree)
【Android】Room —— SQLite的替代品
Moxa NPort 设备缺陷可能使关键基础设施遭受破坏性攻击
Ambiguous method call.both
随机推荐
19. Support Vector Machines - Intuitive Understanding of Optimization Objectives and Large Spacing
Graphical lower_bound & upper_bound
SQALE 是什么
4. Sensitive word filtering (prefix tree)
软件积累 -- 截图软件ScreenToGif
什么是分布式锁?实现分布式锁的三种方式
选好冒烟测试用例,为进入QA的制品包把好第一道关
YOLOV5学习笔记(二)——环境安装+运行+训练
10. Redis implements likes (Set) and obtains the total number of likes
Software accumulation -- Screenshot software ScreenToGif
学习DAVID数据库(1)
Is interprofessional examination difficult?Low success rate of "going ashore"?Please accept this practical guide!
CentOS7下mysql5.7.37的安装【完美方案】
【C语言】表达式求值的一般方法
什么是系统?
TCP详解(三)
Difference between CMOS and TTL?
TCP/IP四层模型
JS function this context runtime syntax parentheses array IIFE timer delay self.backup context call apply
f.grid_sample