基于强化学习的质量AI在淘系互动业务的实践之路

简介: AI人工智能的概念由来已久,因为alphago在围棋领域击败李世石掀起了全世界范围内的AI热潮,最近又随着DeepMind破解蛋白质折叠难题这一诺奖级成果再次让我们发现AI已经进化到了如此强大的程度。与AI在学术界的关注度相反,工业界中AI的应用则显得悄无声息。但是深入到各行各业中却会发现,从人脸识别到物流路径规划,从服务器数据传输到数据安全,AI已经无处不在。作为软件行业的重要组成部分,质量保障的技术体系经历了脚本CI时代/大数据测试时代,也正在向智能化时代演进。质量保障工作最主要的价值和目标,是全面找到业务的风险点,并围绕这些风险点构建解决方案。遗漏的风险也许就是毁灭拜占庭帝国的凯尔卡

背景&挑战



互联网电商中,迭代速度在竞争中能决定业务的生死。迭代速度和慢工出细活打磨用户体验看上去非常矛盾,在互动这种强用户体验的产品线矛盾更加突出。用户的游戏化体验是由一条条的用户行为路径的顺畅度和产品提供给用户的获得感来决定的,那我们就找到一个很好的切入点,如何用AI将用户行为路径全面模拟出来?

在解决这个问题之前,我们先来看看互动的业务场景。第一类是手淘上现有的三个典型互动产品,金币庄园,淘宝人生和芭芭农场。第二类是大促互动的产品,也就是大家都接触过的盖楼/养猫这样的大促互动。


image.png


这些互动产品的共同特点是极度追求用户的体验效果,不断在玩法上求新求变,没有那次大促大家会玩到不变的互动。同时电商场景下对迭代速度的要求也不断趋向极致,2个月需要完成一款其他游戏公司需要半年才能完成的作品。


image.png


在这种情况下,互动需要解决如下三个问题:


  • 环境:互动的测试环境数据构造除了基础的部署环境意外,还有大量的用户状态数据、规则配置数据和权益数据,可能构造一个拉100人在盖楼获胜的场景用例需要一整天而测试执行只需要1分钟。如何构造一个高频易用的环境?
  • 用例生成:互动的特色决定了大部分的功能都是新功能,是没有线上流量可以参考的,这种情况下大数据测试方案会陷入没有数据输入的困境。如何解决新功能的更全面的用例生成?
  • 资损:互动有大量的权益发放,基于现有基于对账的事后资损防控方案,在互动这样的巨量场景下只能说是亡羊补牢。如何提供事前更全面的资损风险识别方案?



构建基于强化学习的质量AI


这个时候再回过头来看互动产品的特色,无论是做任务升级领红包,还是拉人盖楼pk领红包,都是由一条条用户的行为节点构成的行为路径来构成,如果我们能把互动的产品按照一个个的行为节点解构成一个有向图,那互动的用例生成也就抽象成了如何构建一个有向图和求解有向图中的路径集的问题?环境问题是AI执行的前置条件,而风险包括资损风险和架构风险的探测则是AI的用武之地。


image.png

Turing

test

o

?rry


有了思路,我们再来一步步看如何让AI真正在业务中落地。


▐  高频易用的环境


现有测试环境的解决方案更多基于如何降低系统部署对于分布式系统的影响来解决,包括监控应用的部署/构造隔离的分布式系统的镜像环境/从变更管控角度管控部署的时间段等等,主要解决不同代码部署情况下的环境问题。对于互动这样迭代速度极致求快的业务,这些方案都还是成本太高。


互动的解决思路是不改变部署结构的情况下,通过数据隔离的方式来解决。


image.pngimage.gif


互动环境的的目标是隔离稳定和高频易用。


  • 隔离稳定:通过测试账号和影子数据库来实现流量隔离;通过系统架构改造,将互动所有的配置数据读取的方式进行收口,实现配置隔离,只有指定的账号能读取指定的配置。这样可以实现一套部署结构,同时允许正常的业务逻辑运行和测试流量执行,且互不影响
  • 高频易用:由于没有代码和部署解构的变化,环境的准备变成了测试数据包括配置数据的准备,理论上可以做到随备随用。


有了这样的稳定的环境,AI的落地才有了前提条件。


▐  基于强化学习AI的用例生成


既然互动的业务场景抽象成了基于行为节点的有向图构建,已经有了很多针对有向图的算法解决方案。这个时候深入业务的特点和诉求看看要解决的核心问题,再来选取合适的解决方案。


  • 新功能无输入或者少输入:互动的玩法大部分是新功能,能提供的没有大规模可以调用的线上请求数据或者日志数据,只有代码和代码相关的一些接口定义。
  • 要全面:盖楼这样的玩法的用户量级决定了遗漏的风险真的会摧毁整个产品的体验。生成的用例需要更全面,能否发现人难以发现的问题是一个很重要的衡量标准。
  • 自动化:智能化的前提一定是充分的自动化。从给定的输入到训练,从训练到用例生成,从用例生成到用例执行需要完成全自动化。

image.png

全链路有效用例

基于强化学习全自动脚本生成

账号,request,入参,返回

接入-配置接口

环境支持

成功

Request

激励函数

沉淀

探索策略

Agent1

Response

互动副本

状态优先

dfS/bfs

Agent2

接口a接口b

Agentn

失败

时间穿越

2i+1(8,a

pagerank

冒烟失败提交bug

特点:全路径用例覆盖,全自动脚本生成

image.gif


我们的解法是基于强化学习来构建用例生成的AI。


  • 新功能少输入:用户的行为节点分为两种,一种是无系统数据传输的比如页面的滑动等纯前端交互事件,另一种是有系统数据传输的如按钮点击,这一种我们定义为用户的有效行为。在系统实现上有效行为最后会变成对后端接口的调用。因此基于接口定义而不是基于请求数据来建立有向图模型能极大减少需要的输入。在互动的实践中,只需要配置好需要的接口和对应的入参类型即可。
  • 全面的用例生成:互动的接口调用我们认为是有先后顺序的,这是从接口的参数来体现的。因此有向图的路径构建问题,我们选用了强化学习来构建。这其中最关键的路径覆盖全面问题是一个十分复杂的问题,逻辑调用路径是代码接口调用路径和数据逻辑路径等众多因素的组合体。在互动的实践中,我们针对最急迫的冒烟用例覆盖问题,对探索策略也结合pagerank和dfs做了一些改进,同时对激励函数做了接口参数状态覆盖优先的优化。从最终的实践效果来看,发现了很多人容易遗漏的状态遗漏和动态概率计算问题。
  • 全面自动化:这里最重要要解决的工程问题是将算法跑出来的接口调用路径,转化成可以有最终用户使用的可重复执行的用例,这里不做赘述。


▐  体验还原


自动化生成出来的用例要最终在业务线产生世纪作用,提高易用性是关键。而提高易用性的关键是打通端到端,让生成出来的用例不只是数据,更要成为具像化的可交互的端上的效果。


image.png

互动前端编排模型体系:事件+UI+数据

加分2073包P

数据驱动事

00

Nction

件展现

procoss

process

PrOCeSs

Bclion

视觉还原

恭喜你

&cHon

麻越克特活卡镇包

图像断

Response

Englne

ccLIon

330.14元

言校验

共头柔

UI

DaTaCollection

Store

入拉包表日

特点:端到端仿真


受益于近几年前端的数据驱动架构演进的红利,我们可以方便地在工程上实现给定接口数据,即可在端上复现出对应的交互行为。结合图像断言等技术可以打通用例自动验证这个测试智能化的最后一公里。



质量AI解决业务问题



当我们在互动场景中解决了环境的问题和用例的自动化生成问题,在工程上也打通了端到端的体验还原,构建了基于强化学习的质量AI,需要真正解决业务中的问题才能业务真正带来价值。


▐  权益链路预跑


资损问题最近两年成为了业界的一个棘手问题,也出现了很多基于对账的资损问题发现的思路和产品。但是如前所述对于互动特别是盖楼这样量级和短周期的产品,事后的亡羊补牢虽然能减少损失但是损失的量级依然很大,互动需要能事前探测资损风险的方案。这样的方案难点主要有二:


  • 什么样的场景会发生资损难定位:资损场景虽然是业务逻辑场景的其中一个子集,如果业务逻辑场景本身都有遗漏,资损场景遗漏更加难以避免。现在的大数据测试方案对于回归类型可以解决,对于新功能新变更还是存在输入数据不够的问题。
  • 资损发生的方式难模拟:资损发生的方式花样繁多,代码逻辑错误/异常处理/并发处理/数据污染/配置错误等等情况层出不穷。

image.png

实时对账(数据,消息)

都喜你

脚本生成

环境生成

体验还原

前端视觉断言

330.14

image.png

实时对账(数据,消息)

都喜你

脚本生成

环境生成

体验还原

前端视觉断言

330.14


对于质量AI来说,问题1可以归纳用例如何生成更全,问题2可以归纳为环境准备问题。在实现了冒烟用例的AI化之后,互动通过对AI的迭代加入更多如代码路径覆盖/数据血缘分析/异常的执行环境注入等方式逐渐演进风险探测的准确率。目前互动已经实现了核心权益发放场景完全基于智能AI的权益链路预跑。


▐  容错探测


在分布式系统中,单点的故障不仅仅影响自身功能。因此每个系统在做好自身功能验证的事后,还需要考虑对关联系统和关联功能的容错能力,保障极端情况下的自身功能可用性和用户体验。


image.png


目前互动核心的功能故障点的容错探测都以实现AI化。



总体展望


质量保障整体上在整个研发体系中处于守门员的角色,在整个世界都在全力拥抱数字化的大背景下,系统的复杂度提升越来越快,业务对迭代效率的诉求也越来越强,传统的解决方案越来越难以满足时代的要求。


智能化给出了质量行业的另一个产品化的解决,未来的质量保障一定是通过研发更好的质量产品来保障业务的快速迭代,而根据各个业务定义的质量AI会是下一代质量产品的最佳选择。虽有曲折,必有改变。

相关文章
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的新篇章:利用AI提升软件质量
【8月更文挑战第27天】在软件开发的海洋中,自动化测试是确保航船不偏离航线的关键罗盘。随着人工智能(AI)技术的兴起,这艘航船正乘风破浪,以前所未有的速度前进。本文将探索如何通过AI技术优化自动化测试流程,不仅提高测试的效率和覆盖范围,而且增强测试用例的智能生成和结果分析能力。我们将从AI在自动化测试中的应用入手,深入探讨其对测试准确性和效率的影响,以及面临的挑战与未来的发展方向。
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试的未来:AI的崛起与质量保证的革新
在软件开发的世界中,测试一直是确保产品质量和用户满意度的关键步骤。随着人工智能技术的飞速发展,传统的软件测试方法正逐步被智能化工具所取代。本文将探讨AI如何重新定义软件测试流程、提升测试效率以及预测未来可能出现的挑战和机遇。
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI在文本生成中的应用与挑战自动化测试框架的搭建与实践
【8月更文挑战第27天】本文将深入探讨人工智能(AI)在文本生成领域的应用,包括其技术原理、实际应用案例以及面临的主要挑战。通过分析AI文本生成的工作原理和实际效果,我们将揭示这项技术如何改变内容创作、新闻撰写、对话系统等多个领域。同时,我们也将讨论AI文本生成带来的伦理和质量问题,以及如何平衡创新与风险,确保技术的健康发展。
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
赋能百业:多模态处理技术与大模型架构下的AI解决方案落地实践
【9月更文挑战第4天】赋能百业:多模态处理技术与大模型架构下的AI解决方案落地实践
赋能百业:多模态处理技术与大模型架构下的AI解决方案落地实践
|
2天前
|
人工智能 云栖大会
AI Infra的前沿技术与应用实践 | 2024云栖大会预告
AI Infra的前沿技术与应用实践 | 2024云栖大会
|
13天前
|
人工智能 自然语言处理 算法
揭秘AI写作助手:技术原理与应用实践
在数字化浪潮的推动下,人工智能(AI)正逐步渗透到我们工作和生活的方方面面。本文将深入探讨AI写作助手的技术原理及其在不同场景的应用实例,旨在揭示这项技术如何助力内容创作、提升效率和质量。通过分析其背后的算法、数据处理方式以及实际运用效果,读者可以获得对AI写作工具更全面的认识,并了解如何利用这些工具优化自身的写作流程。
|
16天前
|
人工智能 JSON 自然语言处理
你的Agent稳定吗?——基于大模型的AI工程实践思考
本文总结了作者在盒马智能客服的落地场景下的一些思考,从工程的角度阐述对Agent应用重要的稳定性因素和一些解法。
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
AI驱动的自动化测试:提升软件质量的未来之路
【9月更文挑战第3天】AI驱动的自动化测试是提升软件质量的未来之路。它借助AI技术的力量,实现了测试用例的智能生成、测试策略的优化、故障预测与定位等功能的自动化和智能化。随着技术的不断进步和应用场景的不断拓展,AI驱动的自动化测试将在未来发挥更加重要的作用,为软件开发和运维提供更加高效、准确和可靠的解决方案。
|
25天前
|
人工智能 分布式计算 数据处理
Big Data for AI实践:面向AI大模型开发和应用的大规模数据处理套件
文叙述的 Big Data for AI 最佳实践,基于阿里云人工智能平台PAI、MaxCompute自研分布式计算框架MaxFrame、Data-Juicer等产品和工具,实现了大模型数据采集、清洗、增强及合成大模型数据的全链路,解决企业级大模型开发应用场景的数据处理难题。
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI技术:从理论到实践
【8月更文挑战第31天】本文将深入浅出地介绍AI技术的基本原理,并通过实例演示如何将理论知识应用于实际编程中。我们将从基础的机器学习模型开始,逐步深入到深度学习和神经网络,最后通过一个具体的代码示例来展示AI技术的实际应用。无论你是AI技术的初学者还是有一定基础的开发者,都能在本文中找到有价值的信息。