智能化测试技术探索与实践——AAAS/IEEE Fellow、北京大学讲席教授谢涛阿里行

简介: 近期谢涛教授将围绕如何通过AI的方式提升端到端功能自动化测试的能力和价值与淘系技术部技术质量团队开展访问研究,共同探索手工探索式测试、Monkey等方式,成本和范围无法保障;目前端到端功能自动化测试工具“逐步执行、单点验证”为主的传统模式成本高、难以快速应用和推广等难题。本次淘系技术部邀请到谢涛教授就“软件质量的下一个五年:智能化测试技术探索与实践”为主题,面向阿里经济体技术同学进行分享。

智能化测试技术探索与实践——AAAS_IEEE Fellow、北京大学讲席教授谢涛阿里行.png
作者|金晖(定源)
编辑|橙子君
出品|阿里巴巴新零售淘系技术

谢涛教授简介

谢涛教授长期从事软件工程的研究,在软件测试、软件解析学、软件安全、智能软件工程、教育软件工程等方面做出了很多开创性的工作及突出的研究成果,因此先后当选美国计算机协会杰出科学家(ACM Distinguished Scientist),电气电子工程师学会会士(IEEE Fellow)和美国科学促进会会士(AAAS Fellow)。

谢涛教授对软件工程界做出杰出贡献和服务,获2020年度IEEE计算机协会软件工程技术委员会杰出服务奖(为其年度四大奖项之一)。

他于2007年与微软合作研发自动测试数据产生工具Pex,他设计和实现的Fitnex路径搜索技术集成到Pex里,成为其三大核心技术之一。自2015起,Pex被微软发布为Visual Studio企业版的IntelliTest主打功能,使广大Visual Studio用户受益。基于Pex,他还设计了一款新颖的编程教育游戏Coding Duels,拥有几百万的注册用户,并被微软研究院主办的编程之美大赛和Imagine Cup大赛采用作为其主要竞赛形式之一。

他于2010年与微软亚洲研究院合作,开创全新领域-软件解析学(Software Analytics),引领软件工程研究者在该领域开展研究。

他于2017年与复旦大学合作,研发应对产业界广泛采用微服务架构后所遇到的开发和运维挑战的解决方案,并自主研发了第一个中大型规模的开源微服务系统TrainTicket,赋能学术界和产业界联合开展微服务相关的技术攻关。

近期谢涛教授将围绕如何通过AI的方式提升端到端功能自动化测试的能力和价值与淘系技术部技术质量团队开展访问研究,共同探索手工探索式测试、Monkey等方式,成本和范围无法保障;目前端到端功能自动化测试工具“逐步执行、单点验证”为主的传统模式成本高、难以快速应用和推广等难题。

本次淘系技术部邀请到谢涛教授就“软件质量的下一个五年:智能化测试技术探索与实践”为主题,面向阿里经济体技术同学进行分享。

智能探索,极测we来

image.png

淘系技术质量掌门人崔婧(青灵),首先介绍了淘系技术质量(极测)团队的发展历程:淘系从服务化—平台化—智能化的质量体系演进。

image.png

以及淘系在智能化测试的诸多实践和探索模式变化:

image.png

最后对淘系智能化测试未来探索做了展望:

image.png

智能化软件质量创新:机会与挑战

在崔婧(青灵)的隆重介绍下,谢涛教授登场,从软件质量的全流程出发,分享了研发测试流程各个环节的智能化创新成果。

image.png

谢涛教授首先介绍了智能测试的分层:

image.png

并重点从测试用例执行、测试数据生成、测试预言生成三个方面介绍了智能化测试层次的实践:

首先是测试用例执行的智能化:

image.png

image.png

Thummalapenta, Sinha, Singhania, Chandra. Automating Test Automation. ICSE 2012.

其次在测试数据生成、测试预言生成方面:

介绍了智能编程机器人在研发、测试代码编写中提供的诸多智能化能力以及实践效果。

image.png

与微软合作研发自动测试数据产生工具Pex,其中的Fitnex路径搜索技术,在测试数据生成领域的智能化实践:

image.png

介绍了自然语言测试、持续学习能力、带参数的测试用例等更多智能化测试实战分享:

image.png
image.png

UEE测试新模式 - 极测机器人RXT端到端测试

最后,本次谢涛老师访问学者在淘系技术质量合作方代表金晖(定源),分享了淘系在UEE端到端智能化测试新模式下的探索和实践:

image.png

image.png

UEE自动化测试包括两大核心能力:

  • 用户交互体验评测:通过IoT(如摄像头、传感器)等外部设备采集并将真实用户感受数字化,来获取最接近真实用户体感的性能及用户体验指标;
  • 多设备端到端功能自动化:通过机械手实现同时多设备的跨终端的自动化操作执行;通过AI算法实现IoT设备的调度控制、场景理解、测试步骤执行、体验指标计算、异常处理等能力。

image.png

通过RXT机器人测试平台来开展UEE自动化测试:

image.png

▐ UEE自动化和UI自动化的差异

通过脱离被测APP本身的一些限制实现真正的端到端测试。并进一步屏蔽被测APP在不同平台(Android/iOS/PC/IoT)之间自动化操作层面的差异、避免软件层进行性能体验度量的干扰和差异、以及增加了多设备间交互式自动化的能力。

  • 测试范围的差异:基于高速摄像头的外部视角+机器视觉算法的识别处理,UEE测试同时包含了端到端功能自动化+用户体验评测的能力。
  • 精度的差异:高速摄像头摆脱了手机录屏软件对被测APP的性能干扰和帧率限制,将用户体验指标精度提升至10ms。同时可以统一衡量标准,以外部摄像头作为统一的标准来衡量不同手机机型、不同终端设备的性能指标,减少软件层面造成的衡量标准差异。
  • 支持多设备跨终端的操作:基于机械手封装的执行引擎RXT,可以同时操作多部手机。将以外部用户的模式操作被测手机和APP,并可以同时操作多个设备。且用一套DSL脚本支持,屏蔽底层设备和操作系统的差异(Android/iOS/PC Touch/IoT系统等)。

▐ 未来展望

和谢涛教授团队一起在智能探索测试、智能验证、新一代智能化移动实验室等方向打造更加智能的测试机器人。

屏幕快照 2020-08-24 下午4.18.14.png

淘系技术质量团队

负责保障整个手淘、天猫主战的业务质量,这里有丰富业务场景和技术挑战,我们以技术驱动,将持续建设及完善整个淘系稳定性、提升用户体验。
如果您有兴趣可讲简历发至:dingyuan.jh@alibaba-inc.com,期待您的加入!

关注「淘系技术」微信公众号,一个有温度有内容的技术社区~

image.png

相关文章
|
7天前
|
敏捷开发 机器人 Java
自动化测试之美:从理论到实践
【9月更文挑战第28天】在软件开发的海洋中,自动化测试是一艘航向高效、精确和快速交付的船。它不仅减轻了手动测试的负担,还提升了软件质量的保障。本文将带你了解自动化测试的核心概念、流行的工具以及如何将这些理论应用到实践中去。我们将通过实际代码示例,探索自动化测试的魅力所在。
111 70
|
7天前
|
测试技术
探索软件测试的奥秘:从基础理论到实践应用
【9月更文挑战第28天】在数字化时代,软件已成为我们生活中不可或缺的一部分。然而,随着软件复杂性的增加,确保其质量和可靠性变得日益重要。本文将带你深入了解软件测试的核心概念、方法论以及如何在实际工作中运用这些知识来提升软件质量。无论你是软件测试新手还是希望深化理解,这篇文章都将为你提供宝贵的洞见和实用技巧。
|
2天前
|
测试技术 开发者
软件测试的艺术:从理论到实践
【9月更文挑战第33天】在软件开发的舞台上,测试是不可或缺的角色。它不仅仅是一个过程,更是一种确保产品质量的艺术。本文将带你走进软件测试的世界,探索它的基本原则、类型、方法以及如何将这些理论应用到实际工作中。我们将一起学习如何设计有效的测试案例,执行测试计划,并分析测试结果。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和实用的技巧,帮助你提升测试技能,确保软件质量。让我们一起踏上这段旅程,发现软件测试的魅力所在。
12 4
|
1天前
|
敏捷开发 Java 测试技术
探索软件测试的奥秘:从理论到实践
【9月更文挑战第34天】在软件开发的世界中,测试是确保质量的关键一环。本文将带你走进软件测试的世界,从基础概念出发,逐步深入到测试策略和自动化工具的应用。我们将通过实际代码示例,展示如何有效地执行测试,并讨论测试在敏捷开发中的重要性。无论你是测试新手还是希望提升技能的开发者,这篇文章都将为你提供宝贵的知识和启发。
|
6天前
|
Devops jenkins 测试技术
DevOps实践:持续集成与自动化测试的融合之道
【9月更文挑战第29天】在软件开发的快节奏竞赛中,DevOps如同一位智慧的舵手,引领着船只驶向效率与质量的彼岸。本文将揭开DevOps的神秘面纱,探索其核心理念如何通过持续集成(CI)和自动化测试的实践,实现软件开发流程的优化与加速。我们将一同见证代码从构思到部署的旅程,以及这一过程中的关键技术和工具如何协同工作,确保软件质量和交付速度的双重提升。
|
9天前
|
敏捷开发 监控 测试技术
提升软件质量的利器:自动化测试的实践与反思
在软件开发的生命周期中,测试作为保障产品质量的重要环节,其重要性不言而喻。随着敏捷开发和持续集成等实践的普及,传统的手动测试方式已逐渐无法满足快速迭代的需求。因此,自动化测试作为一种提高测试效率和准确性的有效手段,正受到越来越多开发者的青睐。本文将深入探讨自动化测试的价值、实施步骤以及在实践中可能遇到的问题和解决方案,帮助读者更好地理解和应用自动化测试。
13 2
|
8天前
|
小程序 测试技术 程序员
『软件工程12』软件工程实践方法——软件测试
该文章详细阐述了软件测试的重要性和基本原则,并按测试阶段顺序介绍了单元测试、集成测试、确认测试以及系统测试的具体内容和实施步骤。
『软件工程12』软件工程实践方法——软件测试
|
23天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
106 7
Jmeter实现WebSocket协议的接口测试方法
|
23天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
101 3
快速上手|HTTP 接口功能自动化测试
|
23天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
31 5
下一篇
无影云桌面