当前位置: 首页 > news >正文

如何有效地管理测试用例

刚在51testing上看到一个人发帖,说自己写测试用例没有很好的思路,对于一些复杂的功能点,有没有比较好的测试覆盖方法,比如高级查询等等,非要列出来那么详细的测试用例吗?~~~~看完之后,我就忍不住发言了,作为一个测试人员,设计测试用例那是本职工作,如果我们连写用例的基本耐心都丢弃了,还谈什么测试。那开发总不能说因为写代码很麻烦,而不写吧。很多事情没有捷径,必须要做的事情,那是没有办法去逃避,不然我们就失去了工作的意义了。

  其实说来,也是由于最近对于测试用例的设计,让我产生了一些反思。如何设计测试用例,如何评审测试用例,最后如何管理测试用例,这都是我们测试工作中必须要去改进的问题。在之前的公司,由于团队工作任务繁忙,我们没有太多的时间去管理和优化测试用例,也因此对用例方面少了太多的思考,而且虽然有对于用例的评审,但一直以来,我认为是做得不够好的,毕竟每次评审下来,感觉效果没有预期的那么好,主要还是没有足够的时间去管理,所以无法引起重视。不过,现在我想我需要花大量的时间来管理用例了,而且要保证有序的进行,最后输出让团队中各个成员都认为满意而且高效的测试用例。对于用例管理的根本问题,我个人认为是分类上,例,就是需如何有效的维护和优化用要前期明确的分类规划,根据分类的优先级一步一步地来完成就可以了,到最后,我们也可以有效把控的测试覆盖度。

  当前,我们大致可以把测试用例分称三个方面,分别是功能、UI和业务流程,从这三个角度来进行设计。

  1、从功能的角度,能是每个项目测试的重点,通常在测试人员得到需求文档的时候,我们就开始设计测试用例,那么这个时候需求文档上列出都是功能以及部分一些业务逻辑等,所以在测试用例的第一阶段就是完成功能的用例设计不过这里,肯定会让很多人疑惑,其实功能、业务还有UI,都是有关联的,而且很多时候无法分解的。这里后面我会举个例子说明哈,但绝非都是可以分类,只是谈谈如何分解的方法,最重要的就是不要遗漏就行。

  2、从UI的角度,UI通常是指界面测试,这个应该不难理解,但要想与功能点进行分解,也不是那么容易区分的,所以我们来直观的说明哈。界面测试,注重样式,外观、整洁、摆放以及易用性,还包括用户体验等。

  3、从业务的角度,这个相对来说,还比较好理解,业务通常是指一连串的动作所连接起来的流程,这个流程必须有行为和目标,或者说方向。业务通常是一个项目或者产品设计的核心,当下,越来越多的应用业务流程都是非常复杂,所以对于业务的用例设计,就是考验一个测试人员的业务水平如何。

  下面通过一个证券交易平台上的买入和撤单业务,进行具体说明:

  业务说明:买入业务包括股票代码、当前价格、买入价格,买入股票数量、确定买入按钮和取消按钮;

  撤单业务包括选择撤单的未成交业务、撤单成功、撤单失败以及取消撤单按钮;

  以上只是大致列举了一部分。

  功能点:买入按钮、取消按钮、选择撤单、撤单按钮和取消撤单按钮等

  UI界面测试:股票代码、当前价格、买入价格、买入股票数量,所有的文本框;买入成功/失败的提示框;撤单成功/失败的提示框;撤单成功/失败的业务状态等

  业务测试:买入业务,从输入买入表单的数据,到提交表单,到最后买入的表单显示的位置,以及买入提交但未成交,可以撤单,完成撤单的业务,到撤单成功或者失败等,这一连串的工作组合就是一个业务流程。

  其实这里就存在一个争议性的问题,对于买入和撤单,既可以作为功能点,也可以作为一个业务逻辑来设计,但从本质上来讲,功能点注重单独的操作,而业务流重的在是一个流程,还需要具体业务去甄别。功能点的设计更主要对这个买入和撤单的按钮本身进行用例设计;而业务则是需要从买入和撤单之前的输入到最后输出这样一个过程来设计。

  以上也只是大概的一个简单的说明,具体的操作还得根据自己的实际流程来执行,毕竟测试用例的管理是一个长期的积累和沉淀的过程,好的方法都是总结出来的。对于测试来说,用例是基础,对于回归测试、自动化、性能等等都是根本,管理好测试用例,也就是提高测试的工作质量。


本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章:

  • 【多线程】将大批量数据插入多张表,怎么知道多张表都插成功了
  • 微软发布Asp.Net Core 1.1的第一个预览版本
  • IP地址和子网划分学习笔记之《子网掩码详解》
  • 物联网发展势头强劲 智能化融合成新趋势
  • JS笔记四:作用域、变量(函数)提升
  • 物联网的致命弱点是什么?
  • Tomcat中startup.bat启动无效
  • 《编译与反编译技术实战》——1.3 语法分析生成器YACC
  • 《微信公众平台应用开发实战(第2版)》一第1章 微信公众平台介绍
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 用JS获取地址栏参数的方法
  • QA 应该更新的测试工具
  • 智慧社区APP引领2016生活服务新趋势
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • 苹果希望政府提供iPhone解锁技术愿望落空?
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Create React App 使用
  • extract-text-webpack-plugin用法
  • iOS | NSProxy
  • Javascript基础之Array数组API
  • Java精华积累:初学者都应该搞懂的问题
  • JS函数式编程 数组部分风格 ES6版
  • Nodejs和JavaWeb协助开发
  • PHP变量
  • React+TypeScript入门
  • Redis学习笔记 - pipline(流水线、管道)
  • v-if和v-for连用出现的问题
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 阿里云应用高可用服务公测发布
  • 从0到1:PostCSS 插件开发最佳实践
  • 从tcpdump抓包看TCP/IP协议
  • 汉诺塔算法
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 类orAPI - 收藏集 - 掘金
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 码农张的Bug人生 - 初来乍到
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #微信小程序(布局、渲染层基础知识)
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (NSDate) 时间 (time )比较
  • (rabbitmq的高级特性)消息可靠性
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (三分钟)速览传统边缘检测算子
  • (十一)手动添加用户和文件的特殊权限
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET 5种线程安全集合
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net 中viewstate的原理和使用