高手测试,如何最小成本实现测试公共资源管理

前言

高仿真用户行为模拟可以使业务质量保障更加充分,优秀的程序设计也绝不会忽略功能在不同软硬件设备上的适配表现。所以,测试通常会引入兼容性测试、网络模拟测试、虚拟机测试等。这样不可避免的,会用到大量公共测试资源,如 机器设备(手机/主机等)、特征账号、虚拟资产......团队越庞大,资源越多,资源管理的难度就会越高,面临的异常问题也会越多。

伽利略曾提出一个“规模法则”,表达了如下观点:世间万事万物,都不能按照简单的线性关系放大。一个常见的例子就是,一颗树的长大,随着它越长越高,所关系到的体积和树干的承重力都是呈超线性关系增长的。团队里资源管理也是一样的,随着业务扩张,资源量增加,面临的问题和考验也是呈超线性关系增长的。

一些团队在规模较小的时候,使用手动管理的方式进行资源管理,但随着业务扩张,资源量达到一定程度的时候,手动进行资源管理就越发步履维艰。

为什么要做资源管理?

1.公共资源是流动的:公共的特征是服务于整个团队或者整个业务,必然有流动性。按需流动,数据和资源在流动的过程中也可能被改变。

 如:一个线上仿真直播账号,在需要验证该场景的情况,账号会被用来开关播。账号是流动的,行为产生的流量和数据时刻被改变着的。

2.公共资源流动轨迹无痕:在每一次流动的过程中,如果没有手段加以控制和干扰,流动的过程就是无痕的,轨迹不可追溯。

如:一个物理设备,没有记录和规则约束,在一个群体中来回流动,其过程轨迹是无法追溯的。

3.公共资源本身的资产属性:一些资源本身具有资产属性,常见的有虚拟货币、账号中的虚拟权益、某平台的数字货币等。

如:某平台账号的现金余额、某兑换码对应的付费虚拟业务权限、某平台可用于打赏的虚拟货币、一个无限经费的电话卡。

4.公共资源具备的舆论属性:部分资源本身具备的舆论引导力量。

如:一个千万粉大V账号、一个创新活动绑定的虚拟荣誉、一个可全平台发放通告的权限账号。

5.公共资源的商业化风险:部分资源捆绑的创新商业玩法。

如:一个大型创新活动的测试账号上,留下了多个活动玩法分享和发布痕迹。

6.公共资源的密保属性:部分资源包含的密保信息。

如:一个抽奖平台的,具备绿色通道权限的账号(该场景为绿色通道用户不知情的前提下)。(不鼓励、不支持暗箱操作的行为)

上述的特性和案例都表明,在不被规则约束的情况下,这些公共资源的不当使用都有可能引发不同程度的事件。所以,公共资源的使用需要进行规范的约束和管理。

哪些资源应该被管理?

命中上述任意一点特征的资源都应该被管理起来,上面特征的每一种突发状况都有概率造成极其严重的后果。

试想一下,一个创新玩法如果被提前泄漏,商业化活动有可能功亏一篑、一个测试账号成为百万大v,平台的公信力将会直线下降、一个虚拟货币账号错误的打赏大额礼物给了素人主播,平台将会遭受资损、一批物理设备在不断的流动中遗失,团队需要筹集资金弥补空缺......

物理测试机、免流卡、虚拟测试账号、iap沙盒账号、特权权益兑换码等都应该被管理起来。

资源管理系统的设计和演进

笔者分享一下针对公共资源管理所做的实践和演进。

资源的管理首先要解决的是资源流动无痕、资产权限控制以及敏感数据回收的问题。这些问题可以通过制定规则和条款来解决,但依赖条款的约束并不是上策。百密一疏,难以从根本上解决问题。且耗费大量的时间在规章制度的培养和监控上。

不如用管理系统来解决这些问题!v1.0诞生了。

v1.0:审批流水线管理系统

管理系统将虚拟资源和物理资源按照不同的诉求类型做划分,存储在数据库中,并由指定管理员对资源使用做审批和分发。

借用和审批流程流水线化,记录持久化到数据库中。第一个无痕的问题解决了~

图1:审批流细节流程图

那资产权限控制和敏感数据回收怎么办?

如果使用资产行为和发送敏感数据只能在灰度环境进行。这样就有效地和真实数据做隔离了,无需约束和回收。

如果是线上仿真行为怎么办呢?

可以给公共资源打标测试属性,数据回收、统计、展示,都通过白名单和开关控制,既不影响线上用户,又不影响仿真测验。

(上述方法,需要依赖服务基础框架的支持,基础服务框架涉密,不做详细介绍)

好像问题都得到了解决,但是又碰到了新的问题。

问题1:分发的管理员分发虚拟资源过于随机,由此造成不便。

比如:胡萝卜功能的配置比较复杂,已经给 1 账号配置好了。但是 1 账号被借给了不需要胡萝卜功能的狐狸。需要胡萝卜功能的兔子,只能借用 2 账号,重新配置胡萝卜功能。狐狸不想要1账号的胡萝卜功能,它把这个功能配置删除了......后来,兔子每次都要花时间配置胡萝卜功能。

问题2:虚拟账号资源的密码就是钥匙,只要拥有1次,就可以拥有无数次。

比如:乌龟像管理员借走了1账号,用完归还,账号密码没有立刻改掉。翌日,小猫也向管理员借走了1账号。乌龟比较懒惰,它直接又自己使用了1账号,并且引发了资损。熊老大追究责任,发现记录上是小猫在使用,小猫百口莫辩。
 

v2.0:更完备自由的管理系统

如果功能域隔离和资源数据更新足够安全,是不是可以做到用户自由选择资源呢?

或许可以!

为了解决上述新的问题,2.0诞生。

1.在原有的数据记录基础上增加了域划分的概念,兔子拥有萝卜和草地,狐狸享受森林和野鸡。

2.虚拟资源的安全性需要得到保障:使用到期自动归还的策略,job机器人自动更改密码和相关信息、自动检查安全属性和使用状态。

3.权限管理也更加自由,可以指定兔老大管理兔子的诉求,也可以让兔子们自己审批,自给自足。

图2:系统资源类型划分、域划分及权限划分细节

图3:自审批流

(权限检查、密码更新等操作,需要依赖服务基础框架的支持)

到这里,资源管理基本规范起来了。我们再来看开头的几个问题:

  • 资源流动过程中数据变化的问题 -> 如无需仿真,灰度的数据隔离可以完美避开这个问题;

  • 借用过程无痕的问题 ->系统的使用流的流转,可以详细的记录每一次使用记录;

  • 资源的资产属性 -> 资源打标和使用,通过开关控制,资产的使用完全和真实用户隔离,不会造成资损;

  • 舆论属性和商业风险 -> 资源的灰度和特殊名单开关的控制,完全隔离真实数据和虚拟数据,无需清理,线上真实用户不可见。可以避免不必要的隐患。

  • 密保属性 -> 定期权限检查,密码实时更换,确保一次使用对应一个密钥。

系统的使用和人为的约束是相辅相成的,系统可以尽最大的可能,保障资产安全,使每次资源借用捆绑到对应使用人。

 

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值