客户端SDK测试是什么?如何测?

客户端SDK测试是什么?如何测?(附真实项目经历) 去年有在跟进一个SDK项目,主要负责iOS端的SDK测试,研发过程曲折,延期上线,测试工作量巨大。收获挺大的,在此跟大家做一些总结分享下,望你我所遇,皆有收获。 阅读详情

01 是什么

客户端SDK是为第三方开发者提供的软件开发工具包,包括SDK接口、开发文档和Demo示例等。SDK和应用之间是什么关系呢?以云信即时消息服务为例,如下图所示,应用客户端通过调用云信SDK接口,进行消息等数据查询存储等操作,或通过协议与云信服务器间进行通信。图片
在这里插入图片描述

02 测什么

1. 客户端SDK测试的对象

客户端SDK测试,就是对提供给开发者的工具包里面的内容进行测试

因此测试的主要内容有:

SDK接口和文档

SDK接口是测试的主要对象,也是核心的内容

SDK日志

对开发者来说,SDK接口里面的具体实现是透明的,当上层调用时遇到问题,只能依赖SDK打印的日志来定位分析。所以SDK日志是否完备,是否有助于解决问题,对应用开发者和SDK提供方来说都很重要

Demo或行业解决方案

Demo是SDK提供方用来示例如何调用接口实现具体的功能,也可以作为开发者直观感受SDK接入效果。行业解决方案类似Demo,但是,比Demo更加像一个产品,具有比较完整和典型的行业应用场景。可以让行业开发者比较明确知道,接入这个SDK做出来的产品效果如何

其他周边

比如UIkit等,可能只是在SDK开发中的附带输出,但对有的开发者来说能极大降低接入成本

2. 客户端SDK接口测试类型

客户端SDK根据需求和开发平台不同,可能需要选择不同的测试类型对SDK接口进行测试

常见的测试类型有:

功能测试

保证SDK接口功能正确性和完备性。客户端SDK接口测试跟服务端接口测试类似,包括场景覆盖和接口参数覆盖

主要测试各种参数组合下的返回值,考虑数据是否缓存与存储,是否有回调,对于请求成功或失败都能按预期进行处理

性能测试

保证SDK接口满足特定的性能需求,比如资源占用、移动设备耗电量等。在云信IM登录的场景,登录时可能收到大量同步数据包和离线消息包,那么对这些数据包的解析以及本地储存的性能就要进行保证,否则可能出现登录响应很慢甚至卡住的问题,所以测试时就需要考虑这个场景的性能

兼容性测试

保证SDK兼容特定的设备平台,并与其他软件兼容。兼容设备平台的工作量通常是比较大的,先根据产品需求和市场现状对需要适配的设备平台做分析,再根据需要覆盖的机型、系统版本、分辨率等进行优先覆盖排序

移动端SDK兼容性测试需要考虑下对模拟器的支持,因为很多开发者可能就是先在模拟器上开发。客户端SDK覆盖多平台设备的,还要考虑多端消息数据包的互通

稳定性测试

考察业务场景在一定压力下,持续运行一段时间,接口功能和设备资源占用有无异常。比如云信实时音视频通话场景中,要保证多人长时间通话且不断有人进出时的接口功能和设备资源占用无异常

网络相关测试

保证在不同网络类型,不同网络环境下,SDK接口都能较好的处理。在涉及到多媒体资源或音视频通信,弱网下测试的需求较多,并且弱网下的处理通常需要反复优化和对比,不仅是新老版本效果对比,还包括竞品的效果对比测试

安全性测试

对隐私数据保护,访问权限的控制,用户服务鉴权等,SDK接口的安全性问题也是比较突出。安全性很多是在架构设计和开发设计中就考虑进去,但是最好还是有专门的安全性测试

03 功能怎么测

上述诸多测试类型中,功能测试先行。在进行客户端SDK测试前,需要全面的了解测试对象的细节:

了解业务流程,结合API接口文档和开发指南,理顺接口的使用场景和调用关系;

了解SDK协议,理解协议中字段的意义以及服务器端的处理逻辑;

了解各接口或协议返回码,分析对应的场景;

了解开发实现细节,可以绘制成图,便于测试分析和分层验证。

对客户端SDK进行测试,可以采用的分层测试方式由上至下依次有:基于Demo和解决方案->基于接口调用->基于代码。

1、基于Demo和解决方案的测试

大多客户端SDK在提测时,都会有对应的Demo或者解决方案提交给测试,因此可以覆盖到该Demo或解决方案对应的接口或业务场景。而且测试人员可以比较直观的看到界面表现,上手快,所以在客户端SDK测试中比较常用,也是比较有效的。

但这种测试方式的缺点也很多,Demo对接口和业务场景覆盖比较有限,对接口的输入输出参数不能全覆盖,发现问题时定位复杂度增加。精心设计的Demo以及多解决方案的形式或许可以最大程度满足测试需要,但是需要较大的Demo开发测试投入,也使得问题暴露的时间大大滞后。基于Demo和解决方案的测试,可以是手工的也可以是UI层自动化测试。

2、基于接口调用的自动化测试

基于接口调用的测试,包括对单个接口的测试,也包括业务场景的覆盖。这种测试方式直接有效,需要一定开发基础

目前,我所在项目组的同事也有一些实践,以云信iOS SDK测试为例,最小回归测试对应接口也已经自动化,测试工程基本结构如下:

图片

基于接口调用的自动化测试,需要有产品的思路、开发的知识和测试的思维,做起来有难度。但是因为SDK接口通常比较稳定,所以一旦实现并投入使用,测试效率和质量的收益都很大,值得拥有。

3、基于代码的单元测试

单元测试是为开发代码质量保驾护航的一个重要环节,在测试左移推进的道路上,大家越来越意识到单元测试的重要价值。特别是在一些核心业务上,值得开发同学投入精力去做。

其他测试类型的展开,跟应用层测试类似,就不再重复了。


黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取~

1️⃣零基础入门
① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

需要详细路线图的,下面获取

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

2️⃣视频配套工具&国内外网安书籍、文档
① 工具

② 视频

image1

③ 书籍

image2

资源较为敏感,未展示全面,需要的下面获取

### 3️⃣Python面试集锦

① 面试资料

在这里插入图片描述在这里插入图片描述

② 简历模板

在这里插入图片描述

因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆

------ 🙇‍♂️ 本文转自网络,如有侵权,请联系删除 🙇‍♂️ ------

客户端SDK测试思路 本文来自网易云社区作者:万春艳是什么客户端SDK是为第三方开发者提供的软件开发工具包,包括SDK接口、开发文档和Demo示例等。SDK和应用之间是什么关系呢?以云信即时消息服务为例,如下图所示,应用客户端通过调用云信SDK接口,进行消息等数据查询存储等操作,或通过协议与云信服务器间进行通信。测什么1. 客户端SDK测试的对象客户端SDK测试,就是对提供给开发者的工具包里面的内容进行测试,因此测试的... 阅读详情

相关推荐

SDK测试

一、SDK是什么 客户端SDK(Software Development Kit)是为第三方开发者提供的软件工具包。 现实中开发的SDK更多的是Second Development Kit,这类SDK其实就是把每个应用接入相同功能都要做一遍的工作抽离出来,然后提供给别人使用的公共组件。 他最大的价值都是代码复用和降低工作的复杂度、理解成本。 二、SDK测什么 客户端SDK测试,就是对提供给开发者的...

阿桂的博客 2万+

SDK如何测试?

前言SDK(Software Development Kit)是开发者用来构建应用程序的重要工具。为了确保 SDK 的稳定性和可靠性,对其进行彻底的测试至关重要。本文将详细介绍如何测试 SDK,包括了解 SDK 功能和文档、环境准备、创建测试计划、编写和执行测试用例、接口测试、功能测试、兼容性测试、性能测试、安全测试、集成测试、回归测试、日志和调试、反馈和修复以及文档和培训。一、了解 SDK 功能和文档1. 阅读 SDK 文档详细阅读:仔细阅读 SDK 的官方文档,理解其提供的功能、API 接口和使用方法。

okcross0的博客 2799

SDK如何进行自动化测试?

本篇说明的SDK测试方案是针对数据服务的SDK功能覆盖,皆包含SDK的API、网络数据及缓存相关的逻辑测试,即非UI的纯数据逻辑的覆盖。 相对App的测试方案,市面上已经有非常多且成熟的UI级别的自动化测试框架,却鲜有针对SDK提供的自动化测试方案,原因是SDK属于为App提供服务的“插件”。一个App可接入一到多个SDK在内,而在项目中模块化是非常普遍的架构,所以SDK是针对细分功能提供服务的组件,有的提供数据服务、地图服务或节省开发成本的组件等等,这只能SDK开发者根据功能自行完成测试。 本篇说明的SDK测试方案是针对数据服务的SDK功能覆盖,皆包含SDK的API、网络数据及缓存相关的逻辑

一文带你读懂SDK测试

SDK,全称:software development kit, 软件开发工具包。

m0_70669463的博客 3741

MT6826SGT-STD-R绝对值编码器深度解析:精准控制+灵活编程

本文详细介绍MT品牌的高性能绝对值编码器——MT6826SGT-STD-R。:区别于传统增量式编码器,绝对值输出无需掉电归零,开机即获准确位置数据。的核心优势,结合应用场景与选型指南,为工程师提供一站式解决方案参考。MT6826SGT-STD-R是一款专为工业级精密控制设计的。该设备广泛应用于伺服系统、机器人关节校准、自动化产线等领域。:15bit分辨率实现细腻的位置反馈;:通过专用编写器可自定义多项关键参数;:优化电路设计,适应复杂电磁环境。

2501_93066786的博客 680

实验四 基于IDEA+SpringBoot+Maven+Thymeleaf的系统实现实验目的

通过这次实验,我学习了如何成功进行IDEA+SpringBoot+maven的系统实现,搭建好IDEA+SpringBoot+maven的系统环境,成功地安装并配置了maven的运行环境,学会了创建springboot的三种方式,并且能将之前的实验结合起来运用。pom.xml中引入thymeleaf依赖,在classpath:/templates/下新建HTML页面(可采用实验一创建的页面),新建controller进行测试,访问页面后返回success成功数据。同时掌握和thymeleaf的基本语法。

m0_73502929的博客 1380
上一篇: 2024数字安全十大技术趋势预测,不容忽视!
下一篇: 一文详解远程控制安全与远程控制软件(横测ToDesk\AnyDesk\向日葵)
大模型应用场景
博客等级 码龄5年 7675粉丝 1350原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值