前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SDK测试实践小结

SDK测试实践小结

作者头像
用户5521279
发布2020-06-19 16:02:22
3.1K0
发布2020-06-19 16:02:22
举报
文章被收录于专栏:搜狗测试搜狗测试

前言

小编最近参与了两个SDK测试项目,一个是与外部企业APP对接的SDK测试,对于要接入APP完全不了解,只针对SDK demo的功能和调用进行测试;另一个是与公司内部产品APP对接的SDK测试项目,是针对SDK与APP源码集成后进行测试,通过这两个项目,小编对SDK测试工作有了更深入认识,在此对SDK测试内容和测试方法进行总结分享给大家。

SDK简介

SDK(Software Development Kit)是为第三方开发者提供的软件开发工具包,包括SDK接口、开发文档和Demo示例等。移动端APP通过调用SDK接口来实现特定的业务功能。如地图APP通过调用导航引擎SDK来实现导航信息更新功能;录音助手APP通过调用语音SDK来实现音频解码转写的功能。

SDK测试内容

SDK测试,是对SDK提供的功能和接口进行测试,测试需要关注哪些内容呢?根据项目经验,大概整理如下几个方面: 1)功能测试 SDK测试首先需要对SDK内部模块以及接口实现的业务层面功能进行测试。如录音SDK需要对手机录音、音频转写、音频分享等业务要求的功能进行测试。 2)接口测试 SDK需要保证SDK接口功能正确性和完备性。SDK接口测试跟服务端接口测试类似,包括场景覆盖和接口参数覆盖。主要测试各种参数组合下的返回值,考虑数据是否缓存与存储,是否有回调,对于请求成功或失败都能按预期进行处理。 3)性能测试 SDK性能测试主要包括内存占用、内存泄漏情况、CPU占用、接口响应速度、流量消耗等方面进行测试。 4)兼容性测试 SDK需要兼容不同的设备平台,并与其他APP兼容。测试时,需要提前确认SDK适配的平台设备、机型系统、分辨率等兼容性的要求,然后针对要求进行测试,iOS移动端主要对与机型系统相关性较大的功能以及UI适配等方面进行测试。 5)稳定性测试 稳定性测试需要测试SDK的功能在一定压力下,持续运行一段时间,接口功能和设备资源占用有无异常。比如手机录音功能,测试手机录音持续录音10个小时,录音功能正常,内存、CPU等占用正常,不会被系统杀掉。 6)网络相关测试 网络测试,需要保证在不同网络类型,不同网络环境下,SDK接口都能较好的处理。 7)安全性测试/隐私数据加密测试 接口的安全性,需要对接口的请求和返回数据加密性的要求进行测试; 8)访问权限的测试 SDK需要访问系统或者APP的某些权限,需要对权限相关进行测试,如SDK需要访问系统麦克风权限、地理位置权限、网络权限、登录权限等。在权限允许和拒绝时,响应符合需求预期。

SDK测试方法

对SDK进行测试,通常需要根据不同的情况采用不同方法进行测试,具体分以下几种情况: 1)基于集成SDK的完整APP进行测试 iOS端SDK集成方式,目前常见的有两种: 1)CocoaPods 方式:在主APP代码中Podfile 文件中添加SDK对应的pod分支;打开终端,切换到项目目录;执行 pod install 或 pod update。 如地图的导航引擎、搜索引擎通常采用这种方式。 2)源码方式:从GitHub获取SDK的源代码;将 SDK 源代码导入 App 项目,并选中 Copy items if needed项目设置 "Build Phase" -> "Link Binary With Libraries" 中添加相应的依赖库。 测试时拿到手的是SDK集成后的整个APP,无论是源码集成还是CocoaPods集成, SDK测试的功能入口和输出及UI界面都是完整的,这种测试方法是最直观的,测试覆盖也最全面。 2)基于demo的测试 如果测试的对象是SDK demo,而非集成后的完整APP,那就需要特定的方法。SDK demo相对于完整APP来说一般都比较简陋,只提供触发调用SDK接口的操作入口和特定的响应输出(如页面跳转或者日志输出),测试时只需要对SDK接口的输入和输出的功能实现逻辑层面进行测试。 例如项目集成的SDK需要实现的某个接口功能是:用户触发文件传输操作时,能够调用SDK的文件传输方法,并在传输完成时进行回调;那么需要提测时SDK demo中提供的功能:添加操作入口如按钮“文件传输”,并在代码中添加回调信号如回调时输出toast “文件传输完成”。 测试时需要检查在SDK demo中点击“文件传输”按钮时,SDK是否能正确调用文件传输接口,文件传输过程是否正常,文件传输完成时,是否正常回调。 这种测试方法有部分测试场景覆盖不全的风险,如某些异常操作场景难以覆盖到,而且开发测试demo也需要一定成本。 3)基于代码的单元测试 这种方法提测时一般只提供SDK源代码和SDK接口说明文档,测试时针对各个接口方法进行编写测试代码进行单元测试。 小编在项目中遇到的是基于SDK demo和代码结合的测试,SDK demo端只提供简单的操作入口,利用修改代码来制造不同的场景作为输入,检查代码回调是否符合预期。这种测试方法可以创造更多的输入场景,但是操作起来比较复杂,且不够直观,只能保证功能逻辑层面的正确性,无法直观看到SDK回调后APP端的响应。 以上是小编根据最近的项目经验,对SDK测试内容和测试方法进行了总结,如果大家有其他更好的方法或建议,欢迎留言补充~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • SDK简介
  • SDK测试内容
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档