卷麻了,00后测试用例写的比我还好,简直无地自容...........

经常看到无论是刚入职场的新人,还是工作了一段时间的老人,都会对编写测试用例感到困扰?例如:

 如何编写测试用例?

作为一个测试新人,刚开始接触测试,对于怎么写测试用例很是头疼,无法接触需求,只能站在用户角度去做测试,但是这样情况会导致不能全方位测试APP......

如何写出高效的软件测试用例?

从事软件测试大半年,基本上都是靠着对软件产品的大致了解来进行测试工作,很难对产品 进行一个全面细致的测试。现在想学习一下怎么写测试方案和测试用例,有哪些相关书籍可以参考?

固然,编写一份好的测试用例需要:充分的需求分析能力 + 理论及经验加持。 但这并不意味着,没测试经验、分析能力弱就不能写好用例,还是有方法可循的。作为混迹测试职场 9 年的老人,给大家分享一些用例编写的心得,接下来我会从以下几个方面展开来讲:

  1. 测试用例概念、作用、内容等介绍
  2. 如何编写测试用例?
  3. 微信发送朋友圈案例分享

​​ 一、测试用例介绍

测试用例是为项目需求而编制的一组包含测试输入、执行条件以及预期结果的文档,以便测试某个程序是否满足客户需求。

1、为什么要写测试用例?

  1. 是测试工作的指导,是软件测试质量稳定的根本保障,评估测试结果的基准。
  2. 有一份用例来指导测试执行,可以在测试人员疲累的时候起到一个牵引作用。
  3. 编写用例的过程中,通过熟悉需求,对系统架构或业务有更深入理解
  4. 可避免测试背锅

2、测试用例模板:每家公司模板可能会有差异性,一般大致包含以下内容

  • 用例编号:唯一性,一般规则:产品名_测试阶段(it st uat)_测试项_数字
  • 测试项目:对应一个功能或子功能模块
  • 测试标题:一句话总结当前测试的用意和目的
  • 重要级别:高/中/低
  • 预置条件:需要满足一些前提条件,否则用例无法执行
  • 测试输入:需要加工的输入信息,跟步骤结合起来一定要具有指导性意义
  • 操作步骤:明确给出每个步骤的描述,执行人员可以根据该步骤完成执行工作
  • 预期结果:根据预期输出比对实际结果,来判断被测对象是否符合需求
  • 实际结果:通过测试执行后的实际结果,写用例时为空。

3、测试用例编写形式

  1. 通过 Excel 编写,上述给出的模板就是该种形式 ,适用于项目开发时间比较充分的情况下
  2. 通过 Xmind 梳理测试点,适用于项目开发时间紧急情况下
  3. 项目管理平台例如禅道上编写,不常用

二、如何编写测试用例

大体思路分为三步:

第 1 步:依据需求梳理功能及功能点

第 2 步:通过测试理论方法及经验,梳理测试点

第 3 步:挖掘隐性需求,覆盖非功能测试层面

举例: 微信朋友圈动态发送

第 1 步,依据需求梳理功能及功能点

简而言之,就是把你能看得到的功能及功能点梳理出来。公司一般都有产品需求资料,例如需求规格说明书文档、原型图、UI 设计图;当没有任何需求资料情况下,可以通过操作软件来熟悉业务。像发送朋友圈,我们可以先功能模块—> 再子功能—> 再到功能需求细节来梳理,注意一些不明确的需求细节需要及时跟产品确认。大致梳理如下:

第 2 步:通过测试理论方法及经验,梳理测试点

这一步非常重要,依据需求梳理完功能点后,接下来我们需要针对每个功能点拆分整理具体的测试点,这时候我们需要设想用户操作的所有情况,包含到正常及异常场景。

我们需要同时具备测试理论方法和测试经验,才能较好地设计出一份全面可靠的测试用例。常见的测试用例设计方法包括:等价类划分、边界值分析、判定表、因果图、错误推测法、场景法、正交试验法、状态迁移法等。测试经验需要多个项目测试的积累及沉淀。对于测试新人来说,测试经验可能趋于 0,这个时候可以先借鉴一些前人的经验。对于此,我曾经整理过一份资料,很多测试新人用过资料后都觉得对测试用例有了豁然开朗的感觉,知道怎么去写用例了。

这份资料分享如下:

注:这份资料我们可以用在任何的软件产品的分析上面,从本质上来说,任何一款基于用户角度操作的软件产品,操作功能无外乎都是对数据做增删改查,所以当需要对软件产品进行分析编写测试用例时,我们可以依据当前功能是增删改查的哪一个操作,用上面梳理的测试点来套用编写用例。按增删改查操作来梳理,分为:

  1. 表单测试:涉及到数据提交的页面,包含新增或删改数据页面
  2. 搜索测试:为数据查询的页面
  3. 删除测试:为数据删除的页面
  4. cookies、session 等测试:用户操作角度,补充测试
  5. 数据库测试:页面添加、修改、删除、查询业务相关操作,就是对数据库数据的增改删查

通过测试理论方法和测试经验,我们可以得出微信朋友圈的测试点:

编写为 Excel 文档用例,可为:

728 x 291 1254 x 502

第 3 步:挖掘隐性需求,覆盖非功能测试层面

除了以上这些功能层面的,对于微信移动端产品,还需要考虑到一些特性方面的测试,包括非功能测试层面,如:

三、总结

编写用例虽然不是那么简单的事,但是通过以上,是不是发现还是有方法可循的?不会写的先模仿着来写,日积月累,通过项目中测试思维的长期训练,工作中出现 bug 的经验总结,相信某一天你会发现编写测试用例也没有那么难!

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/291953.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring中基于注解的IOC配置项目举例详解

文章目录 Spring中基于注解的IOC配置项目举例详解1、创建如下结构的Spring项目pom.xmldao层service层application.xmllog4j.properties 2、用于创建对象的常用注解2.1、Controller或Controller("user")声明bean,且id"user"2.2、Service或用Service("u…

数据挖掘总结(考试版)

数据挖掘总结: 第一章: 数据挖掘KDD步骤: 数据清理: (消除噪声和删除不一致的数据)数据集成(多种数据源可以组合在一起)数据选择(从数据库中提取与分析任务相关的数据)数据变换(数…

【基础python】条件语句 | 循环

条件语句 if elif else python中和绝大数语言类似,具有能够判断语句顺序的语法 if elif else 分别对应C的 if else if else if 条件为真进入语句 ,反之则不进入 如果if 为假,存在else 则会进入else 如果if 为假 ,存在…

(Java企业 / 公司项目)Nacos的怎么搭建多环境配置?(含相关面试题)(二)

上一篇讲了一个单体服务中配置,传统的Nacos配置但是在微服务架构当中肯定都是多环境下配置,比如生产环境,dev测试环境等等。 第一种方式模拟开始: 首先展示在生产环境中nacos如何配置,在模块下新建一个配置文件&…

三段式电流保护与自动重合闸MATLAB仿真模型

微❤关注“电气仔推送”获得资料(专享优惠) 前加速、后加速的区别: 前加速是保护装置不判别是永久性故障还是瞬时故障,直接跳闸,然后经重合闸装置来纠正;后加速是保护装置是先判别故障类型有选择性跳闸 …

AI:112-基于卷积神经网络的美食图片识别与菜谱推荐

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

华为与银联深化合作 /阿里巴巴集团首席执行官兼任淘天集团首席执行官 |魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件🔥,更新AIGC的最新动态,生成相应的魔法简报,节省阅读时间👻 🔥资讯预览 华为与银联深化合作,推动银联服务全面“鸿蒙化” 阿里巴巴集团首…

即时设计:一键查看设计稿与页面差异,让设计师的工作更便捷高效

设计稿走查 在设计工作中,对设计稿和实际页面进行对比是必不可少的环节。然而,传统的对比方式往往耗时耗力,无法精确测量差异。为了解决这个问题,我们推出了一款强大的工具,它可以通过图片对比,轻松查看设…

vue3+vant4 移动端软键盘弹出 收起导致项目样式布局错乱解决方案,亲测有效!!

问题描述 最近在做vue3 H5的移动端项目 我用的是vue3vant4,然后在使用过程中发现 小米14手机在点击密码输入框软键盘弹出 时会导致项目布局整体向上移动 导致页面布局错乱。 原因分析: 在移动端软键盘弹出收起时,导致项目样式布局错乱的原因…

rtsp解析视频流

这里先说一下 播放rtsp 视频流,尽量让后端转换一下其他格式的流进行播放。因为rtsp的流需要flash支持,现在很多浏览器不支持flash。 先说一下这里我没有用video-player插件,因为它需要用flash ,在一个是我下载flash后,还是无法播放…

C++多态性——(4)纯虚函数与抽象类

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 我们不能选择命运,但我们可…

【Python机器学习】k近邻——k近邻分类

k-NN算法最简单的版本是只考虑一个最近邻,也就是想要预测的数据点最近的训练数据点,预测结果就是这个训练数据点的已知输出。 除了仅考虑最近邻,还可以考虑任意(k个)邻居,这也是k近邻算法名字的由来。在考…

Python正则表达式急速入门~正则居然这么容易掌握!

正则表达式在程序开发中会经常用到,比如数据(格式)验证、替换字符内容以及提取字符串内容等等情况都会用到,但是目前许多开发人员对于正则表达式只是处于了解或者是基本会用的阶段。一旦遇到大批量使用正则表达式的情况&#xff0…

Linux基础知识点-(七-线程)

目录 一、线程和进程 1.1 线程的基本概念 1.2 线程的优缺点 二、创建线程 2.1 pthread_create() - 创建线程函数 三、线程属性 四、线程退出 4.1 pthread_exit() 4.2 pthread_join() 4.3 pthread_detach() 一、线程和进程 1.1 线程的基本概念 在很多Linux的书籍基…

搜维尔科技:深入研究工作场所人体工程学中的动作捕捉

创造安全舒适的工作环境对于员工的健康和组织的整体成功至关重要。这就是为什么我们很高兴举办有关“在工作场所人体工程学中利用动作捕捉技术”的网络研讨会。 通过利用动作捕捉的力量,组织可以彻底改变工作场所人体工程学的方法。它使您能够根据客观的运动数据进行…

C++面向对象高级编程(侯捷)笔记2

侯捷C面向对象高级编程 本文是学习笔记,仅供个人学习使用,如有侵权,请联系删除。 如果你对C面向对象的组合、继承和委托不了解,对什么是拷贝构造、什么是拷贝赋值和析构不清楚,对类设计中的Adapter、pImpl、Template…

使用定时器setInterval,在Moment.js 时间格式化插件基础上完成当前时间持续动态变化

1、引入插件 npm install moment --save 2、js配置&#xff1a;当前需要使用的文件中直接引入 import moment from moment; 3、代码实现&#xff1a;定义一个变量进行回显 3.1、dom部分 <span> {{ timeData }} </span> 3.2、js代码 <script> import mo…

直播获奖(live)CSP2020

描述 NOI2130 即将举行。 为了增加观赏性&#xff0c;CCF 决定逐一评出每个选手的成绩&#xff0c;并直播即时的获奖分数线。 本次竞赛的获奖率为w&#xff0c;即当前排名前w 的选手的最低成绩就是即时的分数线。 更具体地&#xff0c;若当前已评出了 p 个选手的成绩&#…

GROUP_CONCAT报错解决

有如下表 其中awardee和awardee_unit都是保存的json类型的字符串, awardee是多个人员id, awardee_unit是部门的全路径 查询时要注意转换 需要将name拼接起来合并成一行,直接 GROUP_CONCAT 会报错 百度的大部分答案是修改数据库配置去掉严格模式,如果不方便修改数据库可以这样…

力扣刷题-二叉树-最大二叉树

654.最大二叉树 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下&#xff1a; 二叉树的根是数组中的最大元素。 左子树是通过数组中最大值左边部分构造出的最大二叉树。 右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构建最大…