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

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

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

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

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

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

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

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

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

测试的线上化

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

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

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

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

技术的智能化

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

EE8CC8FA_F2A7_4a5c_B240_47824787975B

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

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

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

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

结束语

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

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-04-29
本文作者:公直
本文来自:“InfoQ”,了解相关信息可以关注“InfoQ

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2天前
|
测试技术 数据安全/隐私保护
深入理解与应用软件测试中的边界值分析法
【4月更文挑战第23天】在软件测试的诸多技术中,边界值分析法因其简洁性和高效性而备受青睐。本文旨在探讨边界值分析法的核心原理及其在实际测试场景中的应用。通过对边界条件进行系统的识别、分类和测试,该方法能够有效地发现软件缺陷。我们将详细讨论如何确定边界值,设计测试用例,以及如何处理复杂数据类型的边界情况。此外,文章还将展示通过案例研究来验证边界值分析法在提升测试覆盖率和发现潜在错误方面的实际效益。
|
21天前
|
存储 消息中间件 监控
【Flume】Flume在大数据分析领域的应用
【4月更文挑战第4天】【Flume】Flume在大数据分析领域的应用
|
1月前
|
SQL 安全 测试技术
【软件设计师备考 专题 】测试要求说明书的编写和应用
【软件设计师备考 专题 】测试要求说明书的编写和应用
58 0
|
1月前
|
数据采集 分布式计算 大数据
Java语言在大数据处理中的应用
传统的大数据处理往往依赖于庞大的数据中心和高性能的服务器,然而随着大数据时代的到来,Java作为一种强大的编程语言正在被广泛应用于大数据处理领域。本文将探讨Java语言在大数据处理中的优势和应用,以及其在分布式计算、数据处理和系统集成等方面的重要作用。
|
1天前
|
Java 测试技术 持续交付
深入理解与应用Selenium WebDriver进行自动化测试
【4月更文挑战第25天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加速市场发布的关键步骤。Selenium WebDriver作为业界广泛采用的自动化测试工具之一,提供了一种灵活且高效的方式来模拟用户与Web应用程序交互。本文将探讨Selenium WebDriver的核心概念、架构以及实际应用中的技巧和最佳实践。通过深入分析其工作原理及常见问题解决方案,旨在帮助测试工程师提升测试效率,确保测试结果的准确性和可靠性。
|
2天前
|
人工智能 监控 数据处理
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
18 0
|
23天前
|
NoSQL 大数据 数据挖掘
现代数据库技术与大数据应用
随着信息时代的到来,数据量呈指数级增长,对数据库技术提出了前所未有的挑战。本文将介绍现代数据库技术在处理大数据应用中的重要性,并探讨了一些流行的数据库解决方案及其在实际应用中的优势。
|
27天前
|
Web App开发 Java 测试技术
深入理解与应用软件自动化测试工具Selenium
随着软件开发的快速发展,软件测试在保证产品质量方面发挥着越来越重要的作用。其中,自动化测试以其效率高、成本低的特点受到了广大开发者的欢迎。本文主要介绍了自动化测试工具Selenium的基本概念、原理以及在实际开发中的应用,旨在帮助读者更好地理解和使用Selenium进行高效的自动化测试。
22 4
|
28天前
|
机器学习/深度学习 人工智能 数据可视化
基于Python的数据可视化技术在大数据分析中的应用
传统的大数据分析往往注重数据处理和计算,然而数据可视化作为一种重要的技术手段,在大数据分析中扮演着至关重要的角色。本文将介绍如何利用Python语言中丰富的数据可视化工具,结合大数据分析,实现更直观、高效的数据展示与分析。
|
1月前
|
设计模式 敏捷开发 监控
深入理解与应用软件自动化测试框架
在快速迭代的软件开发过程中,自动化测试已成为确保产品质量和加快交付速度的关键因素。本文将详细探讨自动化测试框架的核心原理、设计模式及其在实际项目中的应用。我们将分析几种流行的自动化测试工具,如Selenium、Appium和JUnit,并讨论它们如何集成以形成强大的测试解决方案。文章还将展示通过自定义框架来满足特定测试需求的实例,以及如何通过持续集成和持续部署(CI/CD)流程优化测试实践。