1.首先,我们来了解SDK是什么?
官方一些的回答,客户端SDK(英文全程:Software Development Kit),它是为第三方开发者提供的软件工具包。软件开发工具包,一般是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
现实工作环境中,SDK更多的是(Second Development Kit)二次开发工具包,这类SDK其实就是把要单独接入的应用的功能从应用中剥离出来,可以提供给所有其它应用使用的公共组件,还能在此基础上进行重构和迭代,降低工作的复杂度、节约了成本。
2.SDK和API不一样吗?为什么?
SDK是一种开发集成工具环境,而API简而言之就是数据接口。我们可以在SDK环境下调用API的数据。所以SDK包含了API的定义,API(Application Programming Interface,应用程序接口)是一种桥梁,是一种数据交互的规范,而SDK可以包含该功能和规范。但是SDK不单单包含API,还可以包含其它应用性的功能,因为它是一个软件工具包。
通俗而言,API就是在前端和后端之间架起了一座交流的桥梁,想要通过桥梁还得有协定的通关密码。前端请求的数据通过桥梁也就是接口传递给后端,后端将处理完的数据再通过桥梁(接口)回馈给前端。
而SDK是集合了某一类软件的相关文档、范例和工具的集合,当某个产品想实现某功能时,找到SDK直接嵌入应用即可使用,就不需要重复开发了。
3.那SDK测试什么呢?
客户端SDK的测试,就是对提供给开发者的工具包里面的小小应用进行的测试。借鉴应用的测试内容,SDK的测试内容就涵盖了:SDK接口和文档的测试、SDK日志的测试、DEMO或解决方案的测试、SDK附带输出的测试(比如一些UI Kit)等内容。
4.SDK测试类型的分布又有那些呢?
根据设计需求和开发平台应用场合的不同,测试类型也不同,今天着重讲功能性的测试,测试内容包括:
接口参数测试,对于相应的接口文档进行请求和参数的验证,并能在接口协议的要求下有正确的返回。
应用场景的测试,不同的SDK针对的开发功能和作用不同,首先要进行设计需求的功能验证测试,保证功能都正确实现了,并且有正确的返回。
还要考虑数据的缓存、存储和调用,要求成功、或失败的处理结果与预期一致。并且还要求具有容错的处理,能将一些异常抓取住,将bug拦在自己门内。
要做好功能测试就要做足充分的需要测试准备,首先熟悉业务流程,结合API文档和开发指南,理清接口的使用场景及其调用方式。其次熟悉SDK协议,理解协议字段的涵义,及服务器的处理逻辑。再者熟悉接口或协议的返回码,分析对应场景。最后了解开发的细节,弄懂设计实现的逻辑。