sdk测试

1.1、了解业务流程,确定开放给开发者都有哪些接口

  • 列出所有安卓和ios 的调用接口

1.2、了解SDK用到的所有协议,每个协议中字段的意义和作用以及server端处理逻辑

  • 详细了解安卓sdk和ios sdk 采用的是什么协议及协议版本。

1.3、接口要校验输入参数各种输入情况是否能正确处理,返回值的正确性,是否有数据缓存到本地,检查是否有回调,如果有对于请求成功、请求失败(包括无网络、服务器返回非200错误代码)是否都有调用

  • 对于安卓和ios的采集字段,进行分析,包括每个字段的长度、特殊字符。数据缓存到本地后,对缓存的处理机制(何时使用缓存数据,缓存数据的有效期,缓存位置、缓存是否容易被清理)回掉函数的回掉情况。
    请求成功的流程、请求失败的处理机制。
    1.4、测试中对每个请求都应该抓包测试,查看请求的字段、参数值、返回值是否正确
  • 对每个接口发起的请求进行抓包测试,查看请求字段、参数值、返回值是否正确。

1.5、对于协议中必传字段,SDK中是否校验为空的情况

  • 对于协议中必传字段,sdk是否进行了为空的校验。

1.6、查看是否存在多发、少发请求的情况

  • 请求发送数量,是否有多发少发的情况,请求数据的大小,对服务端的压力

1.7、对于异步请求的结果在其他地方(A类中)会用到的情况,检查是否存在网络较慢情况下,未完成请求数据为空时A类就用到数据

  • 对于异步请求的结果,检查在网络较慢或者极端的网络条件下,未完成请求,数据为空时,调用数据的地方是否有相应的处理机制。

SDK更新

  • 对于新增接口,需要确定新增的接口对应的协议和相应字段的意义。以及新增接口对于其他模块或者接口的影响。
  • 新增的接口进行抓包,确定发送的请求参数、返回值与协议一致并且不影响。
  • sdk更新时,对于有用户数据的情况,需要考虑旧sdk没有数据,更新新sdk后,新sdk是否可用;旧sdk有数据时,更新sdk后,数据是否存在以及对旧数据的处理机制。

现状:

从开发提供demo转变为测试编写demo,从功能级别对sdk进行测试,可以更好的理解sdk的使用方式,但是本质上没有进行更深入的测试。

  • 建议
    1 测试需要结合一些单元测试框架,从方法层面,对sdk进行更深入的解剖测试。同时尽量实现自动化测试。
    基本从底部->上层->模拟业务方调用的顺序进行测试。利用分层测试的策略。
    要更多的思考业务场景,尽可能的模拟业务的使用场景,构造复杂的条件(比如多线程、弱网、网络切换)
    2 开发进行单元测试,提高代码覆盖率。

js测试,目前暂未想到更好的办法, 需要集体讨论下更好的测试方法。

推荐阅读更多精彩内容