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

如何保障研发质量不踩坑?阿里技术专家教你几招

为什么80%的码农都做不了架构师?>>>   hot3.png

摘要: 面对自动化测试成本高、测试不稳定、测试无法严控发布质量等常见研发过程中的测试问题时,企业如何避免?如何保障研发质量?阿里巴巴研发效能事业部-研发协同平台高级技术专家李帅(花名焦霸),通过阿里巴巴实践经验总结,为大家支招,并提供详细可落地的解决方案。

点此查看原文:http://click.aliyun.com/m/40558/

导读:面对自动化测试成本高、测试不稳定、测试无法严控发布质量等常见研发过程中的测试问题时,企业如何避免?如何保障研发质量?阿里巴巴研发效能事业部-研发协同平台高级技术专家李帅(花名焦霸),通过阿里巴巴实践经验总结,为大家支招,并提供详细可落地的解决方案。

 

直播回顾:https://yq.aliyun.com/webinar/play/370

 

研发过程中常见的测试问题

 

自动化测试成本高

 

在持续集成持续交付这样的过程中,自动化测试往往是非常重要的一环,但是在互联网高速迭代的研发模式下,往往没有时间和精力去投入,开发的时间都不够,更别说测试了。即使开始有自动化测试,后期也很难有毅力继续去维护。

 

积累的问题太多

 

自动化测试开始的晚,往往是在应用稳定了之后,我们才有精力去投入到自动化测试,这样造成的局面是积累的历史问题一大堆。对于测试用例失败还会去解决,但对于覆盖率低,代码不规范等等这样的问题,通常都是无力修复和解决的,但这些问题又和研发质量息息相关。

 

测试不稳定

 

这是一个老大难的问题了。测试环境不稳定,通常会导致测试本身不稳定,测试失败无法复现,因为它可能是由多种原因导致的。通常会有很多非代码原因的失败频现,这样会干扰我们整个测试执行过程。那整个的研发团队呢,就会对自动化测试丧失信心,通常他们发现一个测试失败了,结果不是因为代码原因,他们就会很沮丧。另外,多人共享一套测试环境,调试是非常不方便的。

 

测试无法严控发布质量

 

测试和发布,在一些初创团队,或者使用开源系统搭建起来的系统里面,往往只有两套或者多套系统,那么存在的问题是测试和发布通常是不能自动关联的,要么能关联,但是无法管控,这都是常见的问题。

 

 

阿里巴巴实践经验和解决方案

 

面对上述问题,阿里巴巴是如何解决的呢?经过这些年的积累,阿里巴巴总结了一些实践经验和解决方法,在这里分享给大家。

 

用例录制

 

面对自动化成本高的问题,阿里目前是通过用例录制的方式解决。首先,通过录制能够去降低开发成本;其次,录制一定是用例级别录制,这样可以降低测试的维护成本。另外,要包含多维度录制手段,包括WebUI录制,移动端录制,流量录制等,通过录制的方式解决自动化测试时用例撰写成本高的问题。

 

基线测试

 

面对积累的问题太多,在阿里内部,我们提出一个测试理念叫做基线测试,什么是基线测试呢?实际上它是把目前线上的版本视为基线,每次发布过程都基于当前的基线进行测试,发布成功之后会更新这个基线。那如何进行这个基线测试呢?首先我们会取基线和发布版本diff为增量,基于这个增量,进行增量代码扫描,增量测试覆盖率,增量的测试用例的测试,所有的数据产生的问题、缺陷数据等等都是以增量部分进行的,这样有利于我们整个质量管控推进。

 

我们首先要求团队,新的代码不能存在问题,比如覆盖率一定要达标,代码扫描不能有问题,我们用例部分的缺陷是优先修复的,这样有利于保证新的部分是经过验证的。同时在新的部分比较稳定的情况下,我们可以将旧的问题先搁置起来,有精力有时间的情况下再去修复。

 

云测试

 

面对测试不稳定这个问题的时候,在阿里内部已经打造了一套云测试系统。它包含了测试引擎,以及背后的资源调度。通常是使用ECS或者Docker为每次测试运行,提供一套唯一的测试环境,这样的好处是整个测试过程都是有动态隔离的环境去执行的,保证了测试的稳定性。另外,我们测试执行完之后,往往有一些调试的需求,这时候我们就会保留几个小时用于调试。

 

流程管控

 

第四个问题是测试无法严控发布质量。在阿里内部有一套一站式的研发协同平台,从需求、代码、发布、测试、度量全链路打通,自然而然所有环节都是管控在一起的,云效就是以这套系统打造的。同时,我们在发布环节,就通过发布流水线和测试服务这两个功能,严控质量红线。

 

860349d5addafbad7894d4ef62f2f42a70ba86db

 

云效体验

 

云效,一站式企业协同研发云,源于阿里巴巴多年先进的管理理念和工程实践,提供从“需求->开发->测试->发布->运维->运营”端到端的协同服务和研发工具支撑。支持公有云、专有云和混合云的协同研发,助力企业产品快速创新迭代和研发效能升级。

 

最近云效公有云上线三个功能,一个是测试服务,包含了单元测试、接口测试和安全扫描这三个测试服务;第二个是测试集合,是跟流水线紧密结合的功能;第三个是测试报表功能,测试报表会把我们以往的测试记录都记录下来,大家可以经过一些搜索条件进行简单的搜索筛选。

 

32d3ce5f655b4b207b0ceeab266ad2dbc9626e18

 

 

作者介绍:李帅(花名焦霸):阿里巴巴研发效能事业部-研发协同平台高级技术专家。2010年入职阿里巴巴,一直从事自动化测试工具、研发协同平台相关产品开发和架构设计工作,目前负责阿里巴巴研发协同平台测试域及效能度量域相关工作。

转载于:https://my.oschina.net/yunqi/blog/1609555

相关文章:

  • 小型公司案例 -- 局域网故障排查
  • Future 模式简介
  • 【24】线程池
  • 内存优化问题
  • NPM测试模块之rewire教程
  • 解决PHP编译cURL的reinstall the libcurl问题
  • 关于selenium webdriver chromedriver下载的问题
  • php多进程实现
  • hihoCoder 1513 小Hi的烦恼
  • 生鲜电商大乱斗,谁生在了终点线?
  • 华为实验作业:冗余链路、虚拟路由冗余协议 2018/1/23
  • Mac上的远程控制软件——TeamViewer
  • openlayers3 自定义鹰眼缩略图
  • Java基础1(String StringBuilder StringBuffer 三者区别)
  • java调用webservice接口 几种方法
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 2018一半小结一波
  • co模块的前端实现
  • Django 博客开发教程 8 - 博客文章详情页
  • Java的Interrupt与线程中断
  • Java-详解HashMap
  • JAVA之继承和多态
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Mysql优化
  • node 版本过低
  • socket.io+express实现聊天室的思考(三)
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 排序算法之--选择排序
  • ​力扣解法汇总946-验证栈序列
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (js)循环条件满足时终止循环
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (接口自动化)Python3操作MySQL数据库
  • (南京观海微电子)——COF介绍
  • (三分钟)速览传统边缘检测算子
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (一)Linux+Windows下安装ffmpeg
  • (转)ABI是什么
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • ***测试-HTTP方法
  • .NET Core中Emit的使用
  • .NET Core中的去虚
  • .net framework4与其client profile版本的区别
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET Reactor简单使用教程
  • .net 按比例显示图片的缩略图
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .Net 应用中使用dot trace进行性能诊断
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...