基于自动化用例的精准测试探索_第1页
基于自动化用例的精准测试探索_第2页
基于自动化用例的精准测试探索_第3页
基于自动化用例的精准测试探索_第4页
基于自动化用例的精准测试探索_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自动化用例的精准测试探索在当前web系统或app后端服务测试过程中,

黑盒测试占据了大部分的测试,即便是接口测试,也是基于场景的用例设计,这种测试方法完全依赖于测试人员的能力,经验和业务熟悉度,而互联网行业的一大特点就是人员流动性高,这使得线上质量经常是“靠天吃饭”。基于黑盒的测试使的项目测试在测试过程中存在以下几个问题:(1)黑盒测试受主观人为因素影响太大:黑盒测试完全依赖测试人员的个人能力,经验和业务熟悉度,受主观因素影响太大,不确定性太多,这是产生漏测的根本原因。(2)测试覆盖面无客观数据可衡量:测试对代码覆盖程度,质量高低,没有客观数据可衡量,完全靠人为主观介定。虽然我们可以拿到全量或增量代码覆盖率数据(增量覆盖率一般需要运行2次全量用例),但对增量代码具体路径是否有覆盖,只能靠人工分析全量覆率报告,且无法区分哪些是原有代码,哪些是diff代码,在代码量稍微大点的项目中,测试排期基本上不允许这种测试方式,从而把测试人员推向黑盒测试,由于没有代码分析支撑,黑盒测试覆盖率随着时间和用例增多,便会触达覆盖率的天花板,更多的是重复的无效测试。(3)自动化用例作用无发有效发挥:对于web/api或app后端服务系统,测试人员对除手工测试外,尝试最多的测试手段改进就是接口自动化建设,但自动化建设很少有公司在这个方向做的特别好,投放产出比(ROI)特别高的,其根本原因就是自动化的一个核心指标:稳定性太差,随着项目的迭代,自动化用例积累越来越多,从几百到几千,想要这些自动化用例以CI级别触发(代码提交一次即触发一次),用例全部通过稳定在80%以上,几乎都是不太可能做到的事情。自动化用例稳定性太差,不能产生收益不说,反而会成为QA的包袱,使他们把大量的时间花在自动化用例失败排查上面,疲于应付,又不能发现有效的bug,久而久之,便对自动化失去信任,甚至废弃。问题分析与思路产品线后端服务是基于java的SSH框架搭建的,模块数量多,模块间基于rpc分步式协议通信,模块间耦合多,各个投放系统业务逻辑都比较复杂,且RD和QA新人都比较多,传统黑盒测试只能通过人员堆砌和不断的加班加点来适应不断扩充的业务,这使得项目测试质量很难保持在一个较高水平,和业界面临问题一样,也无可避免存在背景中提到的3个问题。产品线的接口自动化测试用例随着迭代积累,用例数多达几千个,如果让这些自动化用例发挥它们的效用呢?对于背景1,2的问题,我们可以总结为:测试覆盖面是否可以很容易客观数据衡量,测试覆盖面是没有置信度,且在达到这个置信度的过程中有没有工具可以支持QA更快更有效达成?对于背景3中的问题,当自动化用例数到千级别的量级,若100%每次都让这些用例全部运行通过,几乎是不可能的事情,那我们能不能减少这些用例数量呢,每次只运行和代码变更相关的用例,将无关用例的筛选出去呢?通过对业界和公司其它产品线一些调研,我们发现有些团队也有在这些问题上做一些探索,即精准测试,但基本上都是聚焦在第3个问题上,即通过用例筛选来减少用例执行以提高升CI的稳定性,思路基本上相同,只是实现过程不各不相同。公司内部一些团队尝试也是基于不同的产品特点,如app和前端模板,实现过程不同,这里不再赘述。我们探索方向是,适用于后端服务模块(web或app后端服务,或api,不局限于实现语言),基于接口自动化的精准测试,并将这个概念做了扩展,不再局限于用例筛选,而是3个层面,即:(1)自动化用例筛选(2)测试影响面范围评估(3)增量代码覆盖率分析下面具体解释一下这3个层面的含义。我们方案/设想:基于自动化用例和覆盖率信息,获取单个自动化用例对应代码覆盖路径信息,并建立相应的映射库(知识库),做为数据源。基于获取的映射库信息及系统提供的附加能力,支持以下3个基本场景:(1)自动化用例筛选:在生成用例和代码覆盖路径映射库信息后,当RD提测时,可以根据代码diff计算出变更的方法列表(新增/修改/删除),用方法列表反查映射库,便可以筛选出与变更代码相关联自动化用例,与CI相结合,达到精简用例,减少执行时间,同时减少不必要的用例执行,进而提升CI稳定性,减少CI维护排查代价。(2)测试范围评估:与场景1相似,在RD提交代码代码后,以变更方法列表做为条件反查映射库,获取与之关联的自动化用例,根据用例URI聚合,并结合用例描述和FE代码注释,分析给出手工测试范围,一是可以减少测试回归范围,二是可以防止漏评导致的漏测(3)增量代码覆盖分析:新项目测试过程中,新增自动化用例对增量代码变更diff覆盖信息(生成映射库过程),可以和增量代码变更方法列表做为数据源,通过算法生成增量代码行和分支覆盖率报告,并具体标记哪个分支或行未覆盖,QA可以根据增量代码覆盖率分析报告,针对性进行用例设计补充,从而提升覆盖率,减少漏测。同时报告也使得对增量代码覆盖情况可量化(常见的增量覆盖率数据生成要运行2次全量用例集合,自动化稳定性很难保证,手动回归成本太大,基本不太可行)。另外,对未覆盖函数或分支进行提醒QA做相应的自动化用例补充,从面形成精准测试,双向反馈提升良性循环,更有的放矢,更有据可依,更自信任。方案方案背景介绍:(1)接口自动化用例:基于公司通知接口自动化框架平台书写,分为Http和Rpc两种接口类型(2)后端服务实现语言为Java,基于SSH+RPC分布式协议框架(3)覆盖率工具采用Jacoco开源框架(4)代码管理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论