SDK升级怎么测

一、前言

测试最怕接什么需求呢?反正我包括现在所在的团队里,我们最怕的就是技术优化类需求,既无业务需求点,影响范围也难以评估,这一类技术优化中,sdk升级或更换占大部分。正好有次面试,对方二面项目负责人就问我一个SDK怎么测的问题,当时觉得回答的很优秀,哈哈哈哈哈,记录下来

二、测试导图的构想

在这里插入图片描述

1、相关业务测试

在这里插入图片描述

1.1 理清楚这个sdk是做什么的,以及收费的标准?
测试主流程是否正常,此次升级或替换是否会增大费用成本
比如:
高德地图,用来定位,某些地方是免费使用
声网 或 即构,用于直播间的推拉流,按直播间推拉流及录制收费
广点通 ,用于广告投放,按广告曝光及点击率对方还要给你付费
友盟,用于收集app异常并上报数据
…等等

1.2 SDK在哪些业务上调用?
了解sdk调用业务及位置,覆盖测试,避免漏测 或 满APP内乱测,导致测试时间成本增加

2、权限的获取

在这里插入图片描述

2.1 是否有app内无需获取的权限;是否获取权限位置有变化
在对app监管如此严格的情况下,每种sdk获取权限都需要列出并特意说明,如果有说明以外 的权限获取,app很可能会被下架的
还有一个容易被遗忘的点:获取权限的位置,比如SDK在动态模块因为,但打开app即获取权限,这类也是不OK的

3、机型系统的适配

在这里插入图片描述

3.1 有无机型闪退,系统闪退
每家系统都有自己的兼容范围,有些要求是安卓4-最高,鸿蒙系统1-最高,ios端是从ios10-最高,但有些SDK的兼容是从安卓5开始,或ios 11开始,这就会导致使用此SDK,app会在特定机型或系统上闪退

4、SDK冲突

4.1 相冲突的SDK在app内同时引入,此类问题难以发现及推断
比如:广点通SDK 与 声网SDK冲突导致进入直播间缓慢

5、对包体积的影响

在这里插入图片描述

5.1 完美的SDK肯定是小而精的,测试方法:了解SDK大小,分支包与上个发版分支包对比
在现在app越来越多的情况下,同类app竞争也越来越激烈,包体积也相应的要卷起来了,还有一类经常做的技术优化-app瘦身,也是在优化包体积,所以这种情况下,SDK包体积过大,当然是不会被选中的

6、sdk对app覆盖安装是否有影响

6.1 覆盖安装app,是否有SDK升级引起的版本不兼容、闪退、数据丢失、权限重新获取等问题

文档参考:

sdk的通俗理解:https://blog.csdn.net/weixin_48520816/article/details/125384667
常用sdk总结:https://blog.csdn.net/weixin_48520816/article/details/125393632

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java SDK 提供了 `ChaincodeDeploymentSpec` 类来描述合约的部署信息。在升级合约时,需要修改合约代码并重新打包成 jar 包,然后使用新的代码部署新版本的合约。 以下是升级合约的基本步骤: 1. 修改合约代码,生成新的 jar 包。 2. 创建 `ChaincodeDeploymentSpec` 对象,设置新版本合约的名称、路径、语言类型、背书策略等信息。 3. 调用 `Channel` 对象的 `sendUpgradeProposal` 方法向节点发送升级合约的建议,并等待节点响应。 4. 如果节点响应成功,则调用 `Channel` 对象的 `sendTransaction` 方法提交交易,并等待交易确认。 以下是升级合约的示例代码: ``` // 创建新版本合约的部署规范 ChaincodeDeploymentSpec spec = ChaincodeDeploymentSpec.newBuilder() .setChaincodeName("mycc") .setChaincodePath("C:\\codeSource\\agriculture\\sdk\\chaincode") .setChaincodeVersion("2.0") .setChaincodeLanguage(Type.JAVA) .setProposalWaitTime(60000) .setTransientMap(transientMap) .setEndorsementPolicyFile("C:\\codeSource\\agriculture\\sdk\\chaincode\\src\\basicInfo\\chaincodeendorsementpolicy.yaml") .build(); // 向节点发送升级合约的建议 TransactionProposalRequest request = client.newTransactionProposalRequest(); request.setChaincodeUpgradeSpec(spec); request.setProposalWaitTime(60000); Collection<ProposalResponse> responses = channel.sendUpgradeProposal(request); // 提交交易并等待确认 channel.sendTransaction(responses); ``` 需要注意,升级合约时需要保证新版本的合约与旧版本的合约兼容,否则可能会导致节点无法正常运行。在部署新版本合约之前,建议先进行充分的测试和验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值