用例结构优化心得

叶祖辉 叶祖辉     2022-08-31     325

关键词:

在大型项目的测试中通常都伴随着大量的测试用例。如何优化用例以提高编写的效率,如何组织用例以提高执行的效率经常困扰着我们;因此总结了一些在编写用例时的心得。

1.用例框架优化

一份好的用例设计需要有一个好的用例框架的支撑,因此用例结构优化的第一步就是优化用例框架

一般我们的用例框架是先以测试方法作为基础,第一层是测试类型,考虑系统所需要测试的测试类型。

如果用例偏重于场景法的话,那么第二层是场景考虑,此时暂不要去思考如何实现;如果用例偏重于模块测试的话,那么第二层是你划分的各个模块;如果用例设计偏重于逻辑路径的话,那么第二层是你每个路径主要实现的功能。

第三层是功能点,以场景为导向的考虑的是实现这个场景需要哪些功能模块支撑,每个模块做什么;以模块为导向的则考虑每个模块中主要实现的功能点;以路径为导向的则是考虑路径中的功能点的实现。

2.组件机制与模块功能的分离

不管是什么组件,总有它自己使用的机制,与它实现的功能点没有任何关系。最常见的是调度机制以及最基本的配置读取的机制。这些都可以剥离出来单独测一次就够了,不需要在每个模块中测一次,重复编写用例。

3.提取公共用例

在这个方法中,什么样的用例可以作为公共用例是最关键的。一般情况下可以作为公共用例的有两种类型:

第一种是测试方法在所有项目中通用,一般类似于翻页、导出、上传这些;测试方法统一,会因为设计的不同在每个项目中略有不同,但是在一个项目的各个地方的功能实现基本是一致的。此时一般会将用例设计写为一份,作为公共用例设计,但是测试用例会分散在各个模块中有多份以方便执行。

第二种是在一个项目中多个组件共同使用的方法,此时会将用例设计与用例都单独作为一份进行编写,执行时也只需要执行一遍就可以,不需要在每个组件中再单独都执行。

另外其实还会有一种比较不常见的公共用例,例如在报表系统中的ETL过程,虽然ETL过程是对数据进行抽取、转换、加载,是对不同的数据源进行处理,但实际在流程处理上是一致的,只会在需要进行数据进行有条件的转换时不一致。因此整一套流程实际就是一份公共用例。

第一种公共用例比较好分辨,第二种的话需要对逻辑设计有一定的认识,并且需要从开发那边获取信息,比如说开发把哪些部分封装成了公共调用方法;此时并不一定是一开始就规划了这部分作为公共用例,而是在写用例设计过程中发现大部分设计几乎相同,才会考虑开发是否会把此部分作为公共代码,能否作为公共代码以及与开发沟通他们准备如何实现。

4.条件细分,正向组合

如果涉及到的用例是由很多条件组合控制的话,尽量将用例设计中的各个条件细分到最小的粒度,而不是使用组合的方式展现。

当条件细分到最低粒度的时候很多的用例设计就有了共同的地方,此时就会出现很多可复用的测试用例设计,这样能够减少用例设计的工作量。

然后再在细分到最小粒度的用例设计基础上进行一定的组合优化,因为有些正向数据实际是由多个最小粒度的条件组合而成,不需要单独进行验证,所以组合后能够减少用例执行的时间。

5.场景分析剔除

对于状态控制很多的用例,需要进行一定的场景分析,对一些不存在的场景进行用例的删除。因为即使开发没有做对应的控制,要求开发修改的可能性也非常小,并且此类的修改没有意义。

6.用例设计粒度的控制

如果测试要求粒度特别细的状态下,用例量几乎是翻倍的。这是可以从路径覆盖的角度上分析,实际会发现有很多重复检查某一部分的用例量。此时需要我们做的是测试用例粒度的把控。在最正常的路径中做详细的测试,在其他路径中做粒度略粗的测试,一定要特别注意有没有特殊场景不能做粒度的放粗。

mysql索引优化实战(举例说明)---mysql详解(代码片段)

文章目录案例用例表结构分析以下用例的索引使用情况case1case2case2.1case2.2case3case3.1case3.2case4case4.1case4.2case4.3case5case5.1case6case7case8注案例用例表结构CREATETABLE`test`(`id`int(11)NOTNULLAUTO_INCREMENT,` 查看详情

beta圆桌桌4

....今天进展添加好友更接近做完了。。2.存在问题需要数据结构和接口的支持,明天做3.明天安排好友,文件字迹打包4.心得体会一定完成,不完成打自己031602338许斌1.今天进展设计测试用例2.存在问题对新小组软件还不是熟悉3.明... 查看详情

用例图——远程网络教学系统

远程网络教学系统功能需求如下:●学生登录网站后,可以浏览课件、查找课件、下载课件、观看教学视频。●教师登录网站后,可以上传课件、上传教学视频、发布教学心得、查看教学心得、修改教学心得。●系统管理员负责... 查看详情

纹理优化的一些心得

1.godot引擎在内存管理方向上做的非常彻底直接.某一个资源引用计数为0的时候采取的是立刻删除的方式,根本没有做缓存,而现在在做的游戏会非常频繁的加载贴图.这就导致之前每次切换的时候都会感觉非常卡.当做了一个简单的... 查看详情

python提高效率(优化)的心得总结(代码片段)

转载自:python提高效率(优化)的心得总结作者:Capricorn.python用python也有小两年了,不是开发,所以代码应该没那么精湛。但是经常会写测试脚本和小工具。在积累了大量的库以后,开始把重点放在提高python效... 查看详情

DDD/Presenter 模式 VS 用例优化查询

】DDD/Presenter模式VS用例优化查询【英文标题】:DDD/PresenterpatternVSUsecaseoptimalquery【发布时间】:2014-01-1408:01:42【问题描述】:在这篇关于领域驱动设计的精彩book中,有一章专门介绍用户界面及其与领域对象的关系。让我感到困惑... 查看详情

mooc使用心得

...以加入班级、参加练习、参加比赛以及查看自己编写测试用例的分数如果运行提交不了记得重置项目(困惑了我很久)webide比较方便2、Junit编写代码经验总结在Eclipse中使用JUnit的步骤:①建立一个被JUnit测试的类②建立对应的JUnitTes... 查看详情

vmware11安装macosx10.11.5虚拟机以及优化心得

...一时间用VMWARE虚拟机装上了。然后各种卡顿这里分享一下优化mac虚拟机的心得。   1从Dock上移除Dashboard 每次点到这个必然卡机,毛玻璃效果虚拟显卡可吃不消,果断移出Dock。 2禁用各种华而不实的透明窗口和... 查看详情

hexo页面优化和音乐的心得(代码片段)

灵感  这两天在添加“留言”以及“关于”页面,准备先简单设计一下自已的页面。留言页面可以放置一些自已比较感兴趣的音乐、以及一些JS特效,再集成一个第三方的留言功能。关于页面可以放置一些简单的联... 查看详情

测试用例设计

...流程3、可以使用TestSuite来创建更加自动化的测试。测试用例的生成更加方便和灵活。2.3单元测试测试用例设计心得1、可以先阅读代码,结合代码静态分析插件,看哪里的复杂度高,重点测试那里2、在测试过程中,不能局限于黑... 查看详情

关于测试流程的指导心得

...以上的bug来着需求分析阶段。之前出现,需求分析写测试用例阶段,部分功能产品回复为看开发处理,应该记录并考虑相关各个场景出现的问题,并最后确认。二、研发计划中要给测试留出时间和准备资源。不能等最后提测了,... 查看详情

黑盒测试用例设计-用例结构

三、用例结构1.单条用例结构 2.说明(1)工作表名称:对应模块名称,如果要在已有模块上新增用例,请将工作表名称与原来的模块名称保持一致。不同的模块需要建立多个工作表。(2)第一行:各列的名称,必须按照指定的顺... 查看详情

jvm故障问题排查心得「内存优化技术」java虚拟机内存优化实战案例分析指南(代码片段)

问题总结内存多占1G左右,CPU利用率没有明显变化,但随着CMS收集抖动,最高达40%,CPUload平均高出1.0左右。几乎0停顿,相比于之前每隔5分钟应用停顿3-4s,调优后的应用几乎没有停顿时间,每次”stopthe... 查看详情

betayz5

...天安排完成全部接口的交互4.心得体会文档转化需要好好优化031602115黄家雄1.界面优化2.存在问题无3.明天安排界面优化4.心得体会继续努力031602130牛康文1.今天解决页面布局及跳转到提交成功2.今天困难模拟器错误github错误3.明日... 查看详情

数据结构第五章学习心得

...们的意义,基础题目都没有办法做。首先我想说的是储存结构:顺序结构通过结构体内简单的intparent将子结点与双亲结点连接起来 而特殊的连接规则则形成了一个完整的树但是我个人对这种结构类型的树比较难以理解 或... 查看详情

结对测试算法性能优化(用例设计层面)(代码片段)

在《结对测试算法性能优化(代码层面)》一文中,对原来算法代码进行了一些优化,对于笛卡尔积后千条数据,是能满足使用需要的。但在实际业务中,会碰到百万数据。比如某接口共18个参数,每个参数均可为空,其中8个只... 查看详情

源码研究方法心得

...消耗时间。从这里可以看出项目的测试质量。2先把源码结构以及构建脚本,readme等基本的结构看完,了解构建和使用过程。这步重在看工程结构和使用基本文档。3通过JavaDoc把所有的包看完,了解每个包的作用,包的数量看出源... 查看详情

测试用例优化设计

测试用例错误处理错误id=login-form-tips   错误id=login-form-tips修改错误模块输入错误密码结果 输入错误账号结果   增加测试报告接口:  测试报告py结果:    在主程序中导入loginfo ... 查看详情