大数据应用的测试发展之路(三)

2020 年 4 月 29 日

大数据应用的测试发展之路(三)

在前面的文章中,我们介绍了大数据应用在测试领域的六大问题以及解决方法。本文,我们将和大家大数据应用测试的未来发展趋势。


后端服务测试的工具服务化


未来的大数据应用测试是什么样的呢?首先,我们认为后端服务类型的测试不再需要专职的测试人员,开发工程师在使用合理的测试工具的情况下可以更加高效地完成测试任务。专职的测试团队,未来会更多地专注于偏前端与用户交互层面的产品质量把控,跟产品经理一样,需要从用户的角度思考用户在使用产品过程中可能遇到的质量问题,产品的交付与交互的验证是产品测试的重点。


多数服务端的测试工作都是可以自动化完成的,且很多 service 级别的验证也只有通过自动化这种方式才能验证。相较于测试同学,开发同学在 API 级别的自动化代码开发方面能力会更强,而且如果是开发同学自己做测试,可以减少与开发同学之间的大量往返沟通的成本,而这个成本在整个发布环节中占比很大。


另外,算法工程师在业务算法逻辑的理解上更加清晰,算法策略与逻辑的细节是他们设计实现的。所以,我们更希望后端的测试工作由工程或者算法工程师独立完成,在这种新的生产关系模式下,测试同学更加专注于测试工具的研发,包括自动化测试框架、测试环境部署工具、测试数据构造与生成、发布冒烟测试工具、持续集成与部署等。


这种模式也是 Google 一直在使用的测试模式,我们今年在这个方向尝试了转型,在质量变化和效率提升方面这两方面效果还不错。这里需要强调的一点是,虽然测试团队在这个方向上做了转型,但后端测试还是需要继续做,只是测试任务的执行主体变成了开发工程师,大量后端测试的技术和方向还会继续存在。后端服务类测试团队转型,除了效能工具之外,线上稳定性的建设也是一个非常好的方向。


测试的线上化


TIP(Test In Production)概念是十年前由微软的工程师提出。


我们之所以认为 TIP 是未来测试的方向,主要是基于以下三点考虑:


首先,由于线下测试环境与真实线上环境总是存在一些差异,导致测试结论也会有所偏差。目前大家使用最多的是性能测试或容量测试,由于后端服务的拓扑非常复杂,且许多模块都有可扩展性,不同的数据对性能测试的结果也有很大的影响,测试环境与生产环境的不同会给测试结果带来的巨大差异。另外,目前的生产集群都是异地多活,在夜里或者流量低谷的时候,单个集群就可以承担起所有流量请求,剩下的集群可以很方便地用来压测,这也给我们在线上做性能测试带来了可能性。


其次,许多真实的演练测试只能在线上系统进行,在线下测试环境是无法做到的,例如安全攻防、故障注入与演练等。


最后,从质量的最终结果看,不管是发布前的线下测试,还是发布后的线上稳定性建设,其目的都是为了减少系统故障的发生,如果把这两部分融合在一起,针对最终的线上故障去做目标优化工作,可以最大程度地节约和利用人力资源。因此,我们认为线下测试与线上稳定性的融合必将是一个历史趋势,这一领域统称为技术风险的防控。


技术的智能化


测试的第三个发展趋势是技术的智能化,见图 3。



图 3 测试技术的智能化发展


类似于自动驾驶的分级,智能化测试也有不同的成熟度模型:人工测试、自动化、辅助智能测试、高度智能测试。机器智能是一个工具,在测试的不同阶段都有其应用的场景,测试数据和用例设计阶段、测试用例回归执行阶段、测试结果的检验阶段、线上的指标异常检测等诸多技术风险领域都可以用到不同的算法和模型。


智能化测试是发展到一定阶段的产物,前提条件就是数字化,自动化测试是比较简单一种数字化。如果没有做到数字化或者自动化,其实是没有智能分析与优化的诉求的。


另外,一些简单算法的使用可能会有不错的效果,比较复杂的深度学习甚至强化学习算法的效果反而一般。出现这种情况的原因可能有两个,一个是特征提取和建模比较困难,二是测试运行的样本与反馈的缺失。


运用最新的算法技术去优化不同的测试阶段的效率问题,是未来测试的一个方向。但我们同时判断,完全的高度智能测试与无人驾驶一样,目前还不成熟,主要原因不在于算法与模型,而是测试数据的不足。


结束语


阿里巴巴的搜索推荐与广告系统的质量建设之路,经过近 10 年的不断发展,在许多测试同学的不断努力付出之下,才能在如此众多的细分领域方向上有所建树,本文所介绍的方法也都浓缩在我们内部的工具之中,后面我们的想法还是逐渐开源,回馈社区。限于篇幅,本文的内容又较多,很多技术细节这里并没有办法细细展开。如果想了解更多,欢迎大家加入我们的团队或者开源社区,一起在以上的几个方向做更加深入的研究与建设。


相关阅读:


大数据应用的测试发展之路(一)


大数据算法应用的测试发展之路(二)


2020 年 4 月 29 日 08:432133

评论

发布
暂无评论
发现更多内容

解Bug之路-记一次对端机器宕机后的tcp行为

无毁的湖光

Linux TCP socket MQ Java 分布式

从基础到实践,一文带你看懂HashMap

华为云开发者社区

Java hashmap

可以秒杀全场的SpringCloud微服务电商实战项目,文档贼全

Java架构之路

Java 程序员 编程语言 架构师 项目实战

九、给小白看的第二篇Python基础教程

刘润森

Python

第7周的总结

Vincent

极客时间 极客大学

超越色彩的魅力:读《黑白适界》

北风

艺术 摄影 黑白 摄影征文 画册

云图说 | 华为云应用服务网格,让你的应用治理智能化、可视化

华为云开发者社区

网络I

看动画学算法之:排序-count排序

程序那些事

动画 看动画学算法 看动画学数据结构 count排序

记一次"截图"功能的项目调研过程!

云流

编程开发 程序员代码 项目实战 架构师技能

网站审核提不了款维护的解决方法有哪些?

丛林里的余光

网站平台

一夜爆火,只因阿里内部作为参考的SpringBoot巅峰之作git开源

小Q

Java 架构 面试 微服务 springboot

译文|简明指南:Apache Pulsar 的分层存储

Apache Pulsar

开源 云原生 存储分离 Apache Pulsar 消息中间件

oeasy 教您玩转 linux 010400 总结 summary

o

是的,我去封闭开发了

lockdown56

生活,随想 工作哲学 摄影 摄影征文

腾讯这份Java面试核心,开源半天就收到Git近10W点赞

小Q

Java 分布式 算法 JVM 多线程

Spring知识点总结!已整理成142页离线文档(源码笔记+思维导图)

Java架构之路

Java spring 程序员 面试 编程语言

学习编程

InfoQ_34a83d636158

架构师训练营第二周作业

邓昀垚

响应式编程到底是什么?

博文视点Broadview

Java 响应式 响应式编程 reactor 并发

Java多线程知识点总结(思维导图+源码笔记),已整理成PDF版文档

Java架构之路

Java 程序员 面试 编程语言 多线程

一分钟带你认识深度学习中的知识蒸馏

华为云开发者社区

学习

Redis 发布订阅,小功能大用处,真没那么废材!

楼下小黑哥

Java redis spring

微前端qiankun从搭建到部署的实践

fengxianqi

前端框架 微前端 微应用

第6周作业

方堃

Android Native crash处理案例分享

阿里云金融线TAM SRE专家服务团队

android

快速了解前端开发HTML的正确姿势

华为云开发者社区

CSS html

第7周作业

Vincent

极客时间 极客大学

anyRTC无人机图传方案

anyRTC开发者

WebRTC 语音 直播 RTC 安卓

高难度对话读书笔记—情绪篇2

wo是一棵草

架构师第一期作业(第二周)

Cheer

课程作业

第2周

Geek_fabd84

大数据应用的测试发展之路(三)-InfoQ