Android SDK 测试(一)、(二)

本文原文链接:未必平凡博客 https://vv2014.com/372.html 转载请注明出处[vv2014.com]

(一)

最近在做Android SDK的测试,因为之前从来没有接触过,所以在这里需要记录下整个学习的进度,日后进行补充

一.关于SDK

SDK,全称:SoftWare DeveLopment Kit,一般是一些软件工程师伟特点的软件包建立的开发工具集合。它可以简单的为某个程序设计语言提供应用程序接口API,在我们当前整个项目,SDK就是把该软件所有的功能打包成SDK,可以在任何第三方应用中集成,方便使用。

注:我这里所说的SDK不是指Google提供给Android开发者的那个SDK,而是指一些在不同业务场景下诞生的,可能只适用于一部分人的SDK

二.需要开发提供的内容

1.提供如下内容:

   1). SDK包

   2). 相关文档,如:使用文档,接口说明

   3). 示例程序(Demo)

2.一般来说,上述标签1所说的SDK包分两种类型:

   1). *.jar:不带UI界面的SDK,只包含了Class文件与清单文件,不包含资源文件。如 图片等所有res中的文件

   2). *.aar:带UI界面的SDK,包含所有资源,Class以及res资源文件全部包含。比如一些用于APP开发者方便开发分享界面的组件,会提供一些默认的UI界面(一般也会提供让用户自定义UI的功能)

三.环境配置


1. 测试工具:Android Studio

2. 创建工程:这里就不详细赘述了

3. 导入jar包:将* .jar拷贝在APP的libs的文件夹下

4. 配置Build.gradle:

    在应用的build.gradle文件的dependencies中增加如下配置:(注:高于一下版本的也可以,配置需要根据SDK内容,而非无脑配置)

compile 'com.google.code.gson:gson:2.7'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'io.reactivex:rxandroid:1.1.0'


5. 配置AndroidManifest文件,并且在当前文件中配置权限,此处权限需要跟研发确认

<!--Xpush权限-->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
 
<!—手机权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />


6. 注册服务以及广播,仍然在AndroidManifest.xml中配置

<!—注册服务 -->
<service android:name="com.test.csersdk.CserSdkService" />
<service android:name="com.test.imncs.NcsImSdkService" />
 
<!-- 注册广播 -->
<receiver android:name="com.test.csersdk.receiver.XPushReceiver">
    <intent-filter>
        <action android:name="com.test.apushsdk" />
        <action android:name="com.test.npcs.PUSHSTATE"/>
    </intent-filter>
</receiver>
<receiver android:name="com.test.imncs.receiver.NcsNetworkStatusReceiver">
    <intent-filter>
        <action android:name="com.test.apushsdk" />
    </intent-filter>
</receiver>
<receiver
    android:name="com.test.imncs.receiver.NcsXPushReceiver"
    >
    <intent-filter>
        <action android:name="com.test.apushsdk" />
    </intent-filter>
</receiver>
 
<!-- 用于保障推送服务的正常运行 -->
<receiver android:name="com.test.pushsdk.npc.npcs.util.NPCUtilReceiver">
    <intent-filter>
 
        <!-- 用于推送服务内部消息 -->
        <action android:name="com.xdja.npcs.INVITESUB" />
        <!-- 用于接收系统消息,确保推送远程服务的存在 -->
        <action android:name="android.intent.action.MEDIA_MOUNTED" />
        <action android:name="android.intent.action.USER_PRESENT" />
        <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
        <action 


四. 开始测试

根据研发给出的Demo添加接口说明书的接口设计用例测试,这里附上我一丢丢的用例设计

1. 用例设计

2. 开发提供的接口说明书,大致就需要提供如下图这些东东

3. 自己写在MainActivity中写用例,怎么酷怎么来

public void wechat (View view){
   ......
 
}

(二)

上次是对SDK测试的一些简单总结以及环境的搭建,但是具体细节并不是很清楚,所以重开一贴,进一步对SDK测试进行总结(以下都是学习大神的,并不是一己之力,自觉很好,才有此记录)

一、文档阅读

1. SDK接口

提供该SDK支撑的所有能力,如:初始化、验证、发送消息、加密消息、解密消息等,不同SDK有不同的能力

/**
     * @brief 初始化SDK,在每次启动时调用
     * @return ERRNONE 初始化成功;
     *         ERRFAILED 初始化失败;
     *         ERRVERIFY 需要独立验证,验证方式及信息通过verify_info返回
     *         ERRNOTSUPPORT 当前状态不应该调用此接口
     *
     */
    virtual int InitSDK(// SDK的配置信息
                        const Config& config,
                        // 独立验证方式及信息
                        VerifyInfo& verify_info) = 0;


上述接口为初始化接口,入参有配置信息,独立验证方式,所以此时就应考虑如何设计demo才能更好的测试,往下会有demo截图

2. 错误码

提供各个接口的错误码,对应不同的错误类型,如下

enum ERROR_TYPE {
    ERRNONE                  = 0,
    ERRFAILED                = 1,
    ERRNOTSUPPORT            = 2,
    ERRNOKEY                 = 3,  // 密文使用的密钥版本太旧,需要请求对应版本的密钥
    ERRVERIFY                = 4,  // 需要独立验证
    ERRCONFIGINVALID         = 5,  // config过期,需要重新下载
    ERRNEEDOAUTH             = 6,  // 需要oauthcode
    ERRTOKENINVALID          = 7,  // sdktoken失效(需要重新激活)
    ERRCAPTCHAEXPIRE         = 8,  // 验证码过期(需要重发验证码)
    ERRCAPTCHATOKENINVALID   = 9,  // 验证码Token失效(需要重新激活)
  };


上述错误码会在功能测试、用例设计中使用,需牢记

二、测试Demo设计

不同SDK有不同的设计方法,Android SDK 测试(一)当中的就比较简单,所以只需要按钮对应检查返回值即可,而有些SDK需要入参比较多,而且会有很多复杂场景,那么我们就不能那样设计了,下附图Demo截图

1. 状态

布置SDK测试的配置获取或者一些前置条件

2. 接口

主要场景:覆盖SDK提供的所有接口,按照自己口味设计参数的输入与输出

3. 用例

此处用例为特殊场景使用,非用例设计,用例设计参考上篇文章。如加密100次文件,解密100次文件

4. 结果

测试总得有结果吧,所以添加结果sheet,检查用例的测试结果,对应Pass/Fail填写在测试用例

5. 日志

非必要项,此处添加因该SDK所需时时检查日志内容,日志信息与adb logcat一致(按需做了筛选)

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值