如何进行SDK的测试

一、sdk是什么

SDK,全称:software development kit。客户端SDK是为第三方开发者提供的软件开发工具包,包括SDK接口、接入文档、以及demo等。

可以在任何第三方应用中集成,使用方便。

二、开发需要提供给测试人员什么

1.提供如下内容:
   1). SDK包
   2). 相关文档,如:使用文档,接口说明
   3). 示例程序(demo)

2.一般来说,SDK包分为两种类型:
   1). *.jar:不带UI界面的SDK,只包含class文件和清单文件,不包含资源文件。如图片等所有res中的文件。
   2). *.aar:带UI界面的SDK,包含所有资源,class以及res资源文件全部包含,比如一些用于APP开发者方便开发分享界面的组件,会提供一些默认的UI界面(一般也会提供让用户自定义UI的功能)。

三、sdk测什么

 1、客户端SDK测试的对象

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

1) SDK接口和文档

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

2)SDK日志打印

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

3) 程序示例:demo

  demo是SDK提供方用来展示如何调用接口实现具体的功能,也可以作为开发者直观感受SDK接入的效果。

2、客户端SDK接口测试的类型

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

1) 功能测试

   需要保证SDK接口功能的正确性和完整性。客户端SDK接口测试和服务端接口测试类似,包括路径覆盖、场景覆盖、以及接口参数(入参/出参)覆盖。主要测试各种参数组合下的返回响应值,考虑数据是否缓存(一键登录的双卡双待手机出现过)与存储,是否有回调(电信一键登录出现的一个bug就是:网络请求中的系统方法没有给出回调导致的),对于请求成功或失败是否都能按预期进行处理。具体测试用例可根据需求设计,例如初始化接口

2) 兼容性测试

     确保SDK兼容特定的设备平台,并与其他软件兼容,没有闪退崩溃现象。兼容测试的工作量通常是比较大的,可根据产品需求和市场现状对需要适配的设备机型做分析,覆盖的机型、系统版本、分辨率等进行优先覆盖排序。如果有客户端SDK覆盖多平台设备的,还要考虑多端消息数据包的互通。

3) 性能测试

    保证SDK接口满足特定的性能需要,比如CPU占用、内存使用率、移动设备耗电量等。例如客户端登录的场景,登录时后台可能收到大量同步数据包的请求,那么对这些数据包的解析验证以及本地储存的性能就要进行保证,否则可能出现登录响应很慢甚至卡住的问题,所以测试时就需要考虑这个场景的性能。

4) 稳定性测试

    确保业务场景在一定压力下,持续运行一定时间,接口功能和设备资源占用有无异常。可用monkey来进行测试。

5) 单元测试

   单元测试,是为了测试某一个类的某一个方法是否能正常工作,而写的测试代码。以我们登录模块为例,使用的单测框架有:Mockito、powermock等。使用jacoco进行代码覆盖率统计。

6) 有关网络的测试(例如网络切换、sim卡)

    保证在不同网络类型,不同网络环境下,SDK接口都能较好的处理。sim卡的切换,sim卡欠费,sim卡损坏等。

7) 接口测试

    接口要验证输入参数各种输入情况是否能正确处理,返回响应值的正确性。见上面功能测试。

8) 安全性测试

     有的sdk还需要进行安全性测试,对隐私数据的保护,访问权限的控制,SDK接口的安全性问题也是如此。

 

posted on 2020-06-09 11:13  晓呆  阅读(19643)  评论(0编辑  收藏  举报

导航