Dev for Dev 专栏全称为 Developer for Developer,该专栏是声网与 RTC 开发者社区共同发起的开发者互动创新实践活动。透过工程师视角的技术分享、交流碰撞、项目共建等多种形式,汇聚开发者的力量,挖掘和传递最具价值的技术内容和项目,全面释放技术的创造力。

本文为专栏系列内容,作者为声网音视频实验室工程师孙勇男。

什么是测试自动化框架

测试自动化框架是为自动化测试用例或者脚本提供执行环境而搭建的基础设施。自动化测试框架为用户提供了各种好处,可帮助他们有效地开发、执行和报告自动化测试用例。自动化测试框架更像是专门为自动化测试而创建的一套系统。用一种非常简单的语言,也可以说框架是各种编码标准、测试过程、工作实践、项目层次结构、模块化、报告机制、测试数据注入等支持自动化测试的功能的极大融合。

自动化测试框架的类型

现在我们对自动化框架有了基本的了解,让我们看一下现在流行的各种类型的测试自动化框架。这些框架可能基于对不同关键因素(例如驱动类型、可重用性、易于维护等)进行自动化的支持而彼此不同。

● 基于模块的自动化测试框架

● 仓库架构自动化测试框架

● 数据驱动自动化测试框架

● 关键字驱动自动化测试框架

● 黑盒混合自动化测试框架

● 行为驱动自动化测试框架

为什么选用黑盒混合自动化测试框架测试 SDK

所谓黑盒,即提供给业务测试人员无需考虑程序内部结构和内部特性的情况下,在程序接口输入测试的参数并选择输出项,通过程序内部混合测试框架得到相应的结果,使用者只需关心输入与输出。

场景设计初衷

"自动化是为了更好的解放双手,追求更高的效率"

与互联网软件(app、web)的测试有所不同的是,简单来说实时视频SDK测试几乎不需要点点点,基本是通过自研自动化工具完成端与端间经过自定义网络损伤后的视频通信,并采集端上 SDK log 作为测试产出数据,客观测试数据即客观测试结果。围绕并以此通过结合实际业务需求,去离"Code based automation",根据业务测试以平台化、模块化来提供解决方案,从而提供更多的测试维度、减少重复体力劳动和效率瓶颈问题。

01 解决方案架构简述

基础建设方案

● 采用 CI 集群+测试工具及自动化测试框架 +数据平台化

支撑 daily、发版测试、开发自测的测试工作

● 具体模块功能简述

落地机房实景

● 多套测试节点支撑整个视频客观发版业务线

02 基于自动化测试维度的思考简述

逐步完善自动化闭环

通常我们在做自动化测试过程中通常先完成“执行测试”这一步骤,然而这只是相对自动化的一部分,我个人理解的自动化闭环优点不局限于"输入便捷性灵、测试覆盖性全、测试避障性强、输出聚合性高",更多的站在整个链路逐步突破测试精准性和效率瓶颈。

下面是我们在测试避障性和输出聚合性模块中的举例:

举例1 时段网络波动影响

在生活中使用聊天软件视频时,往往会因为网络突发波动造成突然的卡顿或者或者画面模糊,波动幅度和时间都具有不确定性,对于实时视频 SDK 的测试也会遇到这样的问题,虽然我们尽力保证网络环境的稳定,但是在长时间的测试过程中也经常会遇到诸如此类问题,影响我们的测试数据。

如何在测试过程中降低因网络波动造成的数据误差?

● 利用漏斗式重跑筛选方式,简要结构如图所示

即循环求值保证在设定误差内有效降低因为网络波动影响 SDK 版本测试数据。

举例2 版本数据波动影响力采据

在完成自动化测试后对于测试版本间或者与 release 版本各项体验指标数据上,一般是通过报告间数字的差异,但随着体验指标的增加,往往我们更迫切需要多个版本精确到端到端上某个指标上的差异性感知质量可视化。

● 后台管理系统-客观报告模块

支持多版本报告对比的case、devices、体验指标等求值动态视图

目前这种客观报告的视图形式虽然暂时满足了我们对自动化报告指标数据上的取证对比需求,但是在数据的梳理和合成功能还需要更加切入业务的理解。

03 总结

相对不同业务的框架并没有什么官方的标准,而是紧贴实际业务需求,搭配适用性高的主流框架或者自研框架集成到整个测试架构来提供解决方案。操作者可能为开发可能为测试,大家技术线有所不同,作为相对"黑盒"使用者暂不需要知道他的原理构造,仅需清楚了解能为自己在最短时间解决工作上的问题即是黑盒测试框架的价值。

孙勇男:实时视频 SDK 黑盒测试架构丨Dev for Dev 专栏的更多相关文章

  1. 迅为6818开发板-Cortex-A5架构丨支持4G全网通丨GPS丨WIFI丨另有丰富的扩展模块

    迅为6848开发板-S5P6818芯片采用Cortex-A53架构! Cortex-A53和其高端兄弟Cortex-A57一样都是64位架构,实目前ARM的主力,且二者的指令集是完全兼容的,可以组成新 ...

  2. 英特尔® 实感™ SDK 架构

    英特尔® 实感™ SDK在架构上完全不同于其前代系统 — 英特尔® 感知计算 SDK. 如果您使用英特尔感知计算 SDK 进行应用开发,会很快发现,全新的 SDK 可提供增强型编程模式,从而可通过几种 ...

  3. 环信ONE SDK架构介绍

    环信ONE SDK架构介绍 摘要 环信即时通讯SDK自2014年6月正式公布2.0版本号至今已走过一个年头.从主要的单聊功能,到群聊功能,再到聊天室的实现.SDK无论是功能.稳定性,还是易集成性都在一 ...

  4. 短视频 SDK 架构设计实践

    作者简介 孔维乐,七牛云客户端团队 Android 平台高级开发工程师,专注音视频,图形图像领域.OpenGL 专家,先后参与直播推流及连麦 SDK 的开发,主导短视频 SDK 的架构设计与实现, 对 ...

  5. 全球最低功耗蓝牙单芯片(DA14580)系统架构和应用开发框架分析

    DA14580是Dialog公司研制的蓝牙单芯片,号称全球功耗最低,是TI CC2541的四分之一,是运动手环等穿戴类电子产品的常用芯片.但是DA14580的开发门槛不低,适合有蓝牙开发经验的团队来开 ...

  6. 朱晔的互联网架构实践心得S2E4:小议微服务的各种玩法(古典、SOA、传统、K8S、ServiceMesh)

    十几年前就有一些公司开始践行服务拆分以及SOA,六年前有了微服务的概念,于是大家开始思考SOA和微服务的关系和区别.最近三年Spring Cloud的大火把微服务的实践推到了高潮,而近两年K8S在容器 ...

  7. [Android Pro] 开发一流Android SDK

    cp from : https://blog.csdn.net/dd864140130/article/details/53558011 本篇文章已授权微信公众号 guolin_blog (郭霖)独家 ...

  8. QQ视频直播架构及原理 流畅与低延迟之间做平衡 音画如何做同步?

    QQ视频直播架构及原理 - tianyu的专栏 - CSDN博客 https://blog.csdn.net/wishfly/article/details/53035342 作者:王宇(腾讯音视频高 ...

  9. ESP8266文档阅读2A-SDK-Espressif IoT SDK 使用手册v1.0.1.pdf

    2A-SDK-Espressif IoT SDK 使用手册v1.0.1.pdf 1.前言 本⽂文主要介绍基于ESP8266物联⺴⽹网模块的SDK相关使⽤用⽅方法,包括开发⼯工具使⽤用以及SDK软件包架 ...

  10. NDK编译不同架构的参数

    随着Android的蓬勃发展, CPU的架构也越来越多. 早期只支持ARMv5, 截至目前, 支持的架构已达三类七种: ARM(ARMv5,ARMv7 (从2010年起),ARMv8), x86(x8 ...

随机推荐

  1. 【STM32】TIM定时器

    TIM定时器(TIM3为例) 初始化: A:结构体TIM_HandleTypeDef的成员: 1.*Instance:类型为TIM_TypeDef,即对TIM的寄存器的映射,通过这个成员可以操作寄存器 ...

  2. STM32cubemx-HAL库串口断线问题

    STM32cubemx:version5.1 Chip: STM32F446RE IDE:Keil5 Q:小项目上写了个简单的通信包,波特率230400,数据量较大1600Byte/s,DMA的方式实 ...

  3. Django基础篇 03- Models的属性与字段

    1.models字段类型 AutoField():一个IntegerField,根据可用ID自动递增.如果没指定主键,就创建它自动设置为主键. IntegerField():一个整数: FloatFi ...

  4. oracle修改表中的列

    declare v_Count1 int := 0; v_Count2 int := 0; v_Count3 int := 0; v_Count4 int := 0; v_Count5 int := ...

  5. 关于pandas的一些用法

    pandas用法之前我总是把他想的无比复杂.其实也是比较简单的,这个东西在做数据统计的时候还是挺好用的. 然后这里列举几个比较好用的几段代码.偏向数据透视类型pivot的,导出方式是直接在IDE 生成 ...

  6. 使用idea从零编写SpringCloud项目-Hystrix

    ps:Hystrix和Fegin里面使用的Hystrix,有些许区别.我理解的是Fegin.Hystrix主要是用于消费方在调用服务方接口时的异常处理,返回兜底数据等,而Hystrix则是消费方自己本 ...

  7. Linux 中最常用 150 个命令汇总

  8. PHP如何在两个大文件中找出相同的记录?

    1.引言 给定a,b两个文件, 分别有x,y行数据, 其中(x, y均大于10亿), 机器内存限制100M,该如何找出其中相同的记录? 2.思路 处理该问题的困难主要是无法将这海量数据一次性读进内存中 ...

  9. Visual Studio 2022 离线包手动下载和清理

    下载离线vsvs_Professional.exe --layout e:\vs2022 --all --includeRecommended --includeOptional --lang zh- ...

  10. 归纳了一下AD的快捷键

    1:shift+s 键 切换单层显示 2:q     英寸和毫米 尺寸切换3:D+R进入布线规则设置.其中 Clearance 是设置最小安全线间距,覆铜时候间距的.比较常用4:CTRL+鼠标单击某个 ...