我是怎样在项目内落地自动化测试体系的

作者/分享人:雲裳
以dev身份加入ThoughtWorks,因兴趣转型QA。 过去一年以QA身份服务于澳洲某大型电信公司,主导项目小组的质量分析保证工作,对角色转型和敏捷实践有着独特的见解。

一个QA的终极梦想大概就是解放双手,把所有能自动化的东西都自动化吧。然而现实很“骨感”,尽管我们在很多场合都听到过持续集成和自动化测试,实际想做起来依旧困难。需要投入大量精力和维护成本,团队的接受程度,制定合适粒度的自动化测试用例,甚至代码技术能力等等这些都是摆在眼前的难题。几个月前我们刚刚起了一个全新的项目,而我有幸借此机会尝试去落地一套自动化测试体系甚至持续集成交付的过程。希望借此机会和你分享,本场Chat内容包括:

1)案例项目的背景及痛点
2)结合测试金字塔分享如何实施各个级别自动化

  • 如何实施functional 层级的测试自动化
  • 如何实施API层级的自动化
  • 如何实施单元测试级别的自动化

3)在实施过程中碰到的困难和挑战
4)探讨实现了自动化测试之后还可以做什么

实录提要:

  • 单元测试为什么还需要内存数据库?
  • 在实际推进中,85%覆盖率这个目标是否容易达到?
  • 比较关注接口层,是否可以详细介绍下接口层自动化开发与测试的分工?
  • QA 是如何引导单元测试,需要参与到写单元测试吗?需要了解代码吗?
  • UI 自动化用例为了后续版本的快速回归?
  • 使用哪种接口功能测试框架,它较其他框架有什么优点或缺点?
  • 自动化用例如何维护?
  • 单元测试覆盖率的 85% 是一个通用的指标吗?
已有238人预订
预订达标
文章出炉
交流日期
     
05月18日
06月01日
06月07日 20:30
查看文章评论/提问
爱萌99
非常棒,如果再把各个测试细化,单独来作为一个课题交流更有意思了,期待........
金飞: 泛泛而谈 其实还有很多路要走,真正有价值的是如何落地和落地后如何优化改进,甚至是和开发的配合,公司层面的支持!不过能指明一个方向也已经很不错了,至少思路是对的,比较像从开发转过来的测试!
王阳
qa是如何引导单元测试,需要参与到写单元测试吗?需要了解代码吗?可以给一个单元测试的task 或者具体再介绍如何引导
金飞: 我个人不推荐去触碰单元测试,因为我们不是Google,除非你对代码很熟悉,能够和开发PK
武可
单元测试为什么还需要内存数据库?
凌俣Linty™: 我也对这点有疑惑。如果是单纯的数据用例,flatfile应该也够了。还是说测试数据库的方法?
武可
在实际推进中,85%覆盖率这个目标是否容易达到? 如果build因为达不到这个指标失败了,应该由谁负责修正?
金飞: 拍脑袋定的,这个应该根据实际项目进行调整,例如每次都达不到85%,说明应该调整了,就像kpi 一样!谁发现谁推动谁修正,项目还没有跑稳定的时候先不要纠结责任问题!
MO
思路很清楚,细节能再讲讲就更好了,比较关注接口层,是否可以详细介绍下接口层自动化开发与测试的分工?其中碰到的困难点及如何解决的?谢谢
金飞: 推荐开发提供基础的接口脚本,例如JMeter脚本,完成基本的接口通路即可,也就是冒烟测试,测试在这个基础上进行完善,例如异常数据、参数检验、路径覆盖等!最后推荐开发和测试使用同一个工具,可以提高效率,测试可以直接复用!例如都用JMeter!
性能测试使用Jmeter有时候会因为本地硬件的问题无法达到预定并发数,这种情况如何解决?
金飞: 要么换硬件,要么使用分布式,JMeter本身也是支持分布式的!另外主要看你说的具体硬件问题是什么了,内存不够还是CPU不够?不过按照我的经验都不至于,因为现在的硬件不容易有这个限制,根据我的经验是网络带宽限制了并发数,仅供参考!
Adele
对于前端采用boostrap.js,后端spring,mybatis,spring-mvc,如何开始着手做自动化测试?谢谢。
金飞: 主要看你希望自动化测试想解决什么问题!和代码用什么框架不会有太大的关联,推荐从接口测试入手,一方面能够让你快速了解业务,另外一方面也可以让你熟悉数据层,等你熟悉后你就不会提这个问题了,因为你已经有思路了,推荐接口是因为他可以帮你解决回归测试难的问题,让自动化测试立竿见影!
叨叨
所在项目组没有强制要求开发进行单元测试,开发人员由于项目紧张时间原因也很少主动开展单元测试,此情况下想去推动单元测试的开展有哪些方法和建议呢?
金飞: 先把接口测试做好!如果你们的研发文化没有单元测试,建议先把研发总监说服了!算了还是给你推荐一个方法吧,首先说服一个研发进行单元测试,选择项目不是太紧张,周期比较长的,到了项目后期测试做一个深入的总结,用数据说话,说明本次项目开发效率高,产品Bug比其他项目少等等是因为做了单元测试,让这件事情成为一个标杆,甚至测试提出给这个项目组颁发一个红榜,内容中体现单元测试的价值,仅供参考!
叨叨
项目发布后再完成UI自动化用例 是不是表示 在项目发布前UI层的测试都是手工完成的?UI自动化用例为了后续版本的快速回归?另外,UI自动化中应用的设计模式能否举例讲解下呢?
金飞: 抛砖引玉而已 其实UI自动化使用设计模式有很多的坑,不推荐触碰!看别人玩玩就好了!
林从羽
项目由于前期极少单元测试,大家往上堆了七八个月代码,已经很难测试。赶进度时,有开发会有抵触,说我加测试更慢了,进度怎么办。你可以说加测试不一定是更慢了,因为节省了回归的成本,但是对方的观念不一定能够接受。这种情况,有无阻止代码库继续腐化的方法? 即便不赶进度,并且团队形成一定共识说新加代码必须加测试,但后写的测试则更多在测实现,非常脆弱,在功能不变,实现改变的情况下测试都会挂,维护成本高,有无办法?
艾伦
在单元测试一节中提到:“为开发人员提供单元测试的用例。”指的是QA提供用例,研发来执行。这一点,目前我所在的公司更多的是研发自己编写用例(研发自己编写用例,往往会出现懈怠的现象,导致用例性价比不高)。如果像文中所说的,那么从研发角度可以更专注于程序实现上。能否简单说下您的看法?
祁小彬
对于移动端测试,手工测试是必然的!而现在,自动化比例占20%的团队,如何来评估自动化的工作量呢?使得自动化能得到推行,以保证正常版本迭代和自动化!
Reid
文章提到 UI自动化使用:culumber+capybara框架, 接口性能使用:locust框架, 到没有明确提出接口功能测试使用那种框架, 想进一步问下,老师使用那种接口功能测试框架,它较其他框架有什么优点或缺点,
戴阳
自动化用例如何维护,如何设计一套数据、逻辑分层良好,好维护的自动化测试框架?用例管理有必要自己开发一个工具货平台吗?
爱萌99
1. 测试金字塔中的单元测试作为测试人员该如何推动呢 2. 无线测试中的接口测试怎么实现,因为无线测试有些接口都是没有返回值,只是启动一个事件 3. 自动化测试如何在项目中推广,让功能测试人员参与其中!目前遇到推广过程中测试人员比较排斥写自动化用例,他们就想用现成的 谢谢
你可能还喜欢
Service Mesh 在华为公有云的实践
田晓亮
从零开始,搭建 AI 音箱 Alexa 语音服务
Mike
Web 安全恩仇录:再谈逻辑漏洞
肖志华
编程和数学基础不佳如何入门人工智能?
赵宁|Neal
如何用 Vue 实现前端权限控制(路由权限 + 视图权限 + 请求权限)
雅X共赏
智能增长:如何用大数据和人工智能实现业务体量的增长
蒋凡
微信扫描登录