2021年5月29-31日,由极客邦科技旗下 InfoQ 中国主办的综合性技术盛会 QCon 全球软件开发大会于北京召开。大会设置了包括“人工智能驱动业务实践”、“云原生技术应用”、“大数据实时计算与分析”、“音视频体验提升实战”、“低代码实践与应用”、“弹性工程及运维体系”等在内的 35 个技术专题,邀请业界顶级的技术专家,面向技术团队负责人、架构师、工程总监、开发人员分享技术创新和实践。
图1:2021Qcon·北京站
在音视频服务解决方案专场中,全球互联网通信云领先厂商融云作为受邀嘉宾,重点解析了融云音视频SDK的自动化测试链路探索与实践,让开发者了解了SDK 打包集成测试过程中的难点痛点,以及多样性 SDK 自动化交互测试设计思路。
测试的终极目标是保证SDK质量
融云自2014年创立以来,专注于通信云赛道,以提供SDK/API的方式,为数百种应用场景赋予通信云能力。为了不断满足开发者对产品功能的需求,成立7年来,融云的SDK接口数量从279个增长到597个,服务端的API接口数量从36个增长到107个,并且适配Android、iOS、Web、Flutter、小程序、桌面版等全平台。
同时,融云还将众多的SDK集合成不同类型的Demo,方便开发者调用,覆盖了直播模式SealLive、即时通讯SealTalk、融云课堂SealClass、实时音视频SealRTC、语音聊天室SealMic、视频会议SealMeeting等众多场景。这些场景化的Demo和SDK已累计服务超过 30万款App,SDK触达50亿用户。
伴随着SDK数量增长,和场景Demo的多样化,开发者最关心的是融云如何保障终端SDK的质量。会上,融云自动化测试架构师陈沛杰发表了《融云 SDK 交付质量保障探索及应用》的主题演讲,从实战经验出发,为开发者答疑解惑。
图2:融云自动化测试架构师陈沛杰发表演讲
目前,衡量音视频质量的指标众多,分为直接与音视频相关的和与网络相关的两大类。其中,直接与音视频相关的包括视频连通率、卡顿、清晰度、花屏、黑屏、首帧时间,以及音频啸叫抑制、回声抵消、噪声抑制等;而在网络传输中,弱网、丢包、延时、抖动和网络自适应调整,也会影响终端SDK质量。此外,CPU、内存、IO、流量、发热等性能指标,与安全、兼容相关的静态代码扫描、安全工具分析,以及版本兼容、设备碎片化等,也都是影响终端SDK质量的因素。
因此,为交付有质量保证的SDK,融云的做法就是两个字:测试。只有通过测试,才能掌握这些指标,进而针对薄弱环节加以优化,确保SDK稳定性。在测试环节,融云通过工具化、脚本化的方式,实现Demo业务测试的自动化,通过对业务测试、专项测试、SDK 接口测试的快速迭代,来跟进和掌握相关指标数据。
基于业务的专项自动化测试实践
融云对Demo业务自动化测试的思考基于两个维度:一个是如何实现业务自动化测试,保证终端 SDK 产品多样性以及多端交互的稳定性?另一个是音视频专项测试是如何进行的?
在业务自动化测试实践方面,融云通过对终端业务自动化测试工具的选型,制定出科学的终端业务自动化测试流程。
图3:终端业务自动化测试流程
通过这一流程,首先可以实现在大量的 Android 、Web、iOS 、Win、Mac 之间任意自由组合,进行多端交互、交叉测试。其次,利用插件重点关注连通率、稳定性、画面检测(黑屏、绿屏等)、性能数据、弱网和抓包数据等重要质量指标。第三,完整保存了终端过程数据。例如:日志、真实终端渲染后音频、视频画面录制等。
在音视频专项测试的实践方面,测试需要实现端到端的整体覆盖,包括采集、预处理、编码,到网络传输,再进行解码、后处理和渲染的整个传输过程。
图4:音视频专项测试实践
要完成这一过程,陈沛杰以音视频抗丢包自动化测试为例,介绍了主要步骤:
通过业务UI自动化平台链接到网损仪路由;
由接口调用网损仪的相关参数传输至终端设备,录制终端画面后,上传至平台。
第三, 自动或人工分析,完成音视频抗丢包自动化测试。
此外,融云还可通过传统手工+测试工具结合的方式,进行自动化测试,完成端到端的延时测试,以及通过工具实现性能数据统计等。
通过这些测试,最终可以掌握诸如CPU 占用率、内存占用值、耗电量、流量、FPS、卡顿等相关性能指标,以及视频、声音延迟;视频、声音质量;啸叫距离、啸叫抑制和音频、视频通话抗丢包的测试数据。
融云SDK接口自动化测试探索
所谓SDK接口自动化测试,就是要验证SDK 接口字段校验覆盖率、SDK 接口复杂调用的可测试性以及系统版本及设备碎片化覆盖率。目前,普遍使用的SDK接口测试方案有三种:SDK单元测试、UI自动化方法和注册广播方法。
图5:SDK接口测试方案
在实践中,融云认为SDK自动化测试工具应具备以下能力:
第一,大部分 SDK 接口做到脱离 UI 可以快速迭代;
第二,可以对 SDK 接口字段进行自由组合逻辑校验;
第三,可以范围性的开展 SDK 打包集成测试。
基于此,融云对SDK自动化测试工具进行了两次探索与迭代,第一版采用的是终端设备微服务模式,SDK 接口绑定 URL 地址;第二版则通过 URL 动态反射接口,实现了参数动态反射序列化。
最后,陈沛杰强调:自动化测试要尽可能在短的测试周期内达到更高的覆盖率,并且自动化测试尽量不以流程为中心,应适应场景快速变化的需要。
图 6:开发者聆听演讲
结语
通过测试和优化,目前,融云音频最大抗丢包可达80%,视频最大抗丢包40%;语音延迟小于120 ms,视频延迟小于 200 ms,语音直播延迟小于350 ms,视频直播延迟小于350 ms,可保障端到端之间延迟无感知的实时互动。从陈沛杰的分享中也能够看出,融云之所以拥有卓越的音视频能力,源于融云对于各项技术的严苛要求和不懈探索。过硬的指标,过硬的质量,永远是融云追求的方向。
好文章,需要你的鼓励
串流技术正打破传统游戏边界,让"即点即玩"的畅快体验触手可及,不仅重塑了玩家的游戏方式,更将引领整个产业迈向云端加速迈进。
高通宣布收购越南 AI 研究公司 VinAI 的生成式 AI 部门,金额未披露。这标志着高通持续扩张 AI 工具领域。VinAI 由前 DeepMind 研究科学家 Hung Bui 创立,开发多种生成式 AI 技术。此次收购将增强高通在 AI 解决方案方面的能力,有望为多个行业和消费者带来创新。
GameForge AI 是一款基于人工智能的游戏开发平台,可帮助用户轻松创建自己的游戏世界。本文介绍了 GameForge AI 的功能和使用方法,包括创建角色、场景和任务等。虽然 AI 生成速度较慢,但平台对游戏设计师、桌游爱好者和学生等用户都很有吸引力。与其他 AI 创作工具相比,GameForge AI 更注重构建复杂的叙事驱动型世界。
Anthropic 推出面向高等教育的 Claude for Education 计划,与 OpenAI 的 ChatGPT Edu 计划形成竞争。该计划为学生、教职员工提供 AI 聊天机器人 Claude 的访问权限,并增加了一些新功能。新功能包括"学习模式",旨在培养学生的批判性思维能力。Anthropic 已与多所大学达成合作,希望通过这一计划扩大在教育领域的影响力。