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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
性能测试 PTS,5000VUM额度
简介: 在前面的文章中,我们介绍了大数据应用在测试领域的六大问题以及解决方法。本文,我们将和大家大数据应用测试的未来发展趋势。

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

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

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

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

多数服务端的测试工作都是可以自动化完成的,且很多 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

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
7天前
|
敏捷开发 测试技术 持续交付
探索自动化测试在敏捷开发中的应用与挑战
本文深入探讨了自动化测试在现代软件开发流程,特别是敏捷开发环境中的重要作用和面临的挑战。通过分析自动化测试的基本原理、实施策略以及在实际项目中的应用案例,揭示了其在提高软件质量和加速产品交付方面的巨大潜力。同时,文章也指出了自动化测试实施过程中可能遇到的技术难题、成本考量及团队协作问题,并提出了相应的解决策略,为软件开发团队提供了有价值的参考和指导。
|
12天前
|
编解码 测试技术 开发工具
测试 iPhone 应用在不同屏幕尺寸和分辨率下的响应式效果
【10月更文挑战第23天】测试 iPhone 应用在不同屏幕尺寸和分辨率下的响应式效果是确保应用质量和用户体验的重要环节。通过手动测试、自动化测试、视觉效果评估、性能测试、用户体验测试等多种方法的综合运用,能够全面地发现应用在响应式效果方面存在的问题,并及时进行解决和优化。同时,持续的测试和优化也是不断提升应用质量和用户满意度的关键。
|
9天前
|
前端开发 数据管理 测试技术
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第27天】本文介绍了前端自动化测试中Jest和Cypress的实战应用与最佳实践。Jest适合React应用的单元测试和快照测试,Cypress则擅长端到端测试,模拟用户交互。通过结合使用这两种工具,可以有效提升代码质量和开发效率。最佳实践包括单元测试与集成测试结合、快照测试、并行执行、代码覆盖率分析、测试环境管理和测试数据管理。
22 2
|
10天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
16 1
|
10天前
|
前端开发 JavaScript 数据可视化
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第26天】前端自动化测试在现代软件开发中至关重要,Jest和Cypress分别是单元测试和端到端测试的流行工具。本文通过解答一系列问题,介绍Jest与Cypress的实战应用与最佳实践,帮助开发者提高测试效率和代码质量。
24 2
|
21天前
|
监控 测试技术 持续交付
掌握跨平台测试策略:确保应用的无缝体验
【10月更文挑战第14天】在多元化设备和操作系统的今天,跨平台测试策略成为确保应用质量和性能的关键。本文探讨了跨平台测试的重要性、核心优势及实施步骤,涵盖Web、移动和桌面应用的测试方法,帮助开发者提高应用的无缝体验。
|
7天前
|
NoSQL 测试技术 Go
自动化测试在 Go 开源库中的应用与实践
本文介绍了 Go 语言的自动化测试及其在 `go mongox` 库中的实践。Go 语言通过 `testing` 库和 `go test` 命令提供了简洁高效的测试框架,支持单元测试、集成测试和基准测试。`go mongox` 库通过单元测试和集成测试确保与 MongoDB 交互的正确性和稳定性,使用 Docker Compose 快速搭建测试环境。文章还探讨了表驱动测试、覆盖率检查和 Mock 工具的使用,强调了自动化测试在开源库中的重要性。
|
28天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
53 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
219 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
234 3
快速上手|HTTP 接口功能自动化测试
下一篇
无影云桌面