腾讯TMQ在线沙龙回顾|测试左移实践

测试左移实践

活动时间:2017年6月28日 QQ群视频交流

活动主题:TMQ在线沙龙第二十三期分享

本次分享的主题是:测试左移实践

共有214位测试小伙伴报名参加活动,在线观看视频人数 54人!

想知道活动分享了啥吗,

请往下看吧!

活动嘉宾

嘉宾简介

陈诚,腾讯手机管家专项测试工程师,目前主要负责手机管家的测试分析、接口测试、工具建设等。在安卓客户端、H5等领域有丰富的测试经验。

分享主题

1、测试左移的概念

2、测试左移方案:testng自动化方案和本地Mock方案

3、测试左移案例:手机管家7.0测试左移实践

问答环节

1、UI自动化测试能否左移?

答:测试左移是希望将测试执行在所有部分开发完成前介入,而UI自动化的前提是UI已经开发完成,我们认为此时产品手工测试可测性已经具备,再谈测试左移会起不到尽早测试提前发现bug的目的。

2、这种mock是mock平台的测试,不是针对代码的白盒mock吧?

答:明白你所以mock平台的意思,实际上无论是mock对象,数据,还是插件,他们的区别是看待mock的角度不同。我们使用测试插件来mock业务插件,如你所说,是平台的mock;在测试插件中,我们mock难以构造的测试环境和测试数据,也是以对代码理深入理解为前提,即代码白盒为前提的。这里单独开发一个测试插件的目的就是为了避免出现问题3的情况。

3、将接入主界面改为mock的插件这种接入方式会对原代码入侵么?

答:这个问题很好,我们在做mock测试的时候必须考虑到对原有开发代码的修改,即问题中说的“入侵”。现在的方法为从测试插件过来的数据源接入主界面,修改点为插件ID,只需要修改一个变量。如果我们直接在主界面代码中插桩,动态mock数据,需要增加大量代码,对开发代码的修改是更严重的。所以测试插件的诞生就是为了和开发代码解耦,达到减少“入侵”的目的。

4、测试左移列举的几个方法,按照软件生命周期应该怎么使用?

答:我们将测试思维延生到产品研发流程的各个阶段:

1、在需求阶段,可以对需求分析,测试建模,使得需求质量维持在高水准,测试能抓住测试重点;

2、在技术评审和开发阶段,通过技术实现的分析梳理可以“测试左移”的部分,比如能否开展单元测试,接口测试,mock测试和其他辅助测试完成的测试方案;

3、产品开发完成提测前,可以展开小组全员的冒烟测试,各个角色(开发,设计,产品,测试)均参与,一起体验,保证提测质量。

5、单元测试发现的问题多么,感觉这个成本好高?

答:首先我们要明白单元测试的目的,发现bug只是一方面的收益。因为发现bug越多并不能代表产品质量就高,做单元测试的主要目的我认为是衡量代码健康度,每一次开发提交代码后,单元测试通过,我们可以认为产品质量是有最基础的保证,增加团队成员对产品质量的信心。当然UT的成本高是必然的,所以这里涉及到谁来做UT和哪些模块需要做UT的划分,分清主次找准重点来做。

6、请问NLP怎么用?

答:讲清楚怎么用NLP做需求建模和分析不是一件简单的事情,如果有需要可以TMQ这边开课专门介绍,这里推荐一篇原始文献《NLP For Testers - The Meta Model》里面介绍了详细的NLP方法。

7、写测试代码都是基于接口文档和需求文档么,需要看项目源代码不呢?

答:在测试左移方案中,我们在手机管家7.0实践中,是在出了接口文档后就已经开始写测试代码,因为接口文档中已经将接口逻辑、参数和返回值明确定义,没有必要等到接口开发完成才动手编写测试代码。好处在于接口开发完成我们可以马上接入测试,这也是测试左移的价值所在。

8、对于业务比较多的,单元测试mock数据的成本也会很大,有很多的服务和数据都得mock,这种要怎么开展单元测试呢?

答:抓重点,分主次。并不是所有功能模块都需要接入UT。另外做单元测试也不是全部由测试同学来完成,开发也需要介入其中。参考题5。

9、用TestNG进行单测的粒度是什么?是只测接口还是更细?

答:我们使用PiTest主要是做接口测试,这里和通常意义的接口测试也有一定的区别,通常认为一个接口没有返回值是不可测的,但实际上我们可以通过UI(有UI的情况下)和数据变化来观察被测接口是否走到正常逻辑。对于UT的粒度参考8和5。

10、ppt里面的三个例子分别是通过什么方式集成到日常的监控中的?

答:这里应该是想问如何将接口测试建设成daily测试。通常使用Jenkins,Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,具体可以学习jenkins搭建和任务配置。这里要注意的是接口测试和日常监控的用例是不一样的:接口人测试的用例需要考虑到接口参数的异常边界等,还需要考虑具体业务场景下的正常参数;监控的用例通常是为了监控某个业务是否还持续工作,对接口参数是否鲁棒不过多关注。

原文发布于微信公众号 - 腾讯移动品质中心TMQ(gh_2052d3e8c27d)

原文发表时间:2017-07-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

高可用性的前生今世

题记:今天是2018年1月1日,这是一个特殊的日子,民间称为“三头”,意思是周头、月头、年头;我把它称为“3A”,指Kerberos协议的3A。无独有偶的是今年...

2247
来自专栏ytkah

微信公众平台数据接口开始内测

微信公众平台每天的数据量越来越庞大了,新年红包再次延迟逐显服务器压力,微信也慢慢开放一些接口给第三方平台,这不,今天微信公众平台数据接口开始公测了。微信公众平台...

4015
来自专栏Java架构师学习

浅析常用软件架构的三种架构模型

常用的软件架构模型可以归类为三种架构模型:3/N层架构、“框架+插件”架构、地域分布式架构。 一.三种架构模型 1.3/N层架构 这是经典的多层架构模型,对于稍...

4807
来自专栏视频咖

互动直播AVSDK1.8.4版上线了

请客户前往 https://console.qcloud.com/ilvb/avSdkDownload 下载

2222
来自专栏程序你好

为什么应该使用微服务(Microservices) ?

如今,微服务非常流行。几乎每个人都喜欢。不仅仅是Netflix、亚马逊或谷歌,似乎几乎每个人都采用了这种架构风格。虽然微服务已经存在了很长一段时间,也有很多关于...

4263
来自专栏程序人生 阅读快乐

R并行编程实战

《R并行编程实战》是一本构建大规模高效算法的综合性实用书籍,介绍各种并行技术,从R语言的并行版本lapply()的简单应用到基于Hadoop和ApacheSpa...

832
来自专栏Python自动化测试

对接口自动化测试的几点思考(一)

在自动化的测试体系中,目前应用的比较多,包含了UI自动化测试和接口自动化测试,在UI的自动化测试中使用最广泛的是Selenium框架,移动端是Ap...

1834
来自专栏CSDN技术头条

如何创建一条可靠的实时数据流

数据的生命周期一般包含“生成、传输、消费”三个阶段。在有些场景下,我们需要将数据的变化快速地反馈到在线服务中,因此出现了实时数据流的概念。如何衡量数据流是否“可...

2538
来自专栏Spark学习技巧

知乎数据埋点方案

从业务过程中采集埋点,是数据驱动型公司的必要条件。知乎的产品功能评审环节,不仅有 PRD (Product requirement document),还加入了...

1.3K2
来自专栏京东技术

京东物流性能测试理论梳理 ——性能测试的正确打开方式

京东全球年中购物节火热进行中,2018年6月1日0点到6月18日24点累计下单金额达1592亿元,出库订单金额同比增长超过37%!618期间,90%以上自营订单...

1922

扫码关注云+社区

领取腾讯云代金券