平台报告2019-08-12

三星应用商店6月兼容性测试报告

    [前言] 三星为广大安卓开发者提供应用自动化测试远程真机调试,开发者可以借助自动化测试平台进行应用的兼容性、网络友好、深度性能等各方面测试;通过远程真机调试平台,可以在三星最新的机型或者旗舰型号上调试和验证问题。

    111.jpg

    今年,三星应用商店应用的上架流程中也引入了自动化测试,从多维度对应用进行测试,包括安全测试、网络友好测试以及兼容性测试。对于希望在三星应用商店顺利上架的应用开发者,可以先在为开发者准备的自动化测试平台进行自测,通过后再提交到三星应用商店,会大大提高上架的成功率


    1. 兼容性自测方法

    1)PC打开三星远程开发测试平台:

    http://samsung.smarterapps.cn/

    2)点击兼容性测试,登录后即可进入

    3)选择需要测试的机型,上传应用并提交测试

    4)到任务记录中可查看测试报告  


    222.jpg



    2. 影响兼容性通过的主要问题

    针对6月上架测试结果,我们整理了兼容性测试中发现的问题,以便开发者了解并规避这些问题,提高应用的兼容性质量:

    Crash问题是应用兼容性测试中出现最多的问题,非常影响用户的使用感受,应用应从多种方法和途径发现代码的漏洞,降低应用的Crash发生率。下图是6月测试中出现的所有Crash问题分类占比:

    333.jpg


    下面对主要问题进行说明:


     2.1  空指针异常:


    关键字:java.lang.NullPointerException

    问题分析:

    试图对一个为null的对象执行成员函数、试图获取null对象的成员变量、试图获取null数组的长度、试图访问数组中某个空对象、抛出一个对象而实际未初始化为null时,此时会抛出NullPointerException异常。

    修改建议:

    空指针的问题在开发中最为常见,需要开发者对可预见为空的对象进行处理,对不可预知的对象判断是否是null,进行保护然后再访问内部成员变量或执行成员函数。

    代码示例:

    Exception in thread "main" java.lang.NullPointerException

    解决方案:判断对象是否为null,不是null再执行对象成员函数。

    public String[] split(String content){

        if(content!=null){

            String[] result=content.split("\\s+");

            return result;

        }

        return null;

    }



    2.2  方法状态异常:


    关键字:java.lang.IllegalStateException

    问题分析:

    当一个方法在不合法或不恰当的时间被调用时抛出。

    修改建议:

    当一个方法在不合法或不恰当的时间被调用时抛出。建议根据状态图检查对象当前状态,更改错误的调用方法时机。比如在使用MediaPlayer时,没有调用prepare方法就先调用isPlaying方法时,会抛出这种异常。这时就需要先了解MediaPlayer的状态图,确认不同状态调用正确的函数。



    2.3  索引越界异常:


    关键字:java.lang.IndexOutOfBoundsException

    问题分析:

    当索引越界,使用非法索引访问。指示某种索引(如数组、字符串或向量的索引)超出范围。

    子类有ArrayIndexOutOfBoundsExceptionStringIndexOutOfBoundsException

    修改建议:

    检查ArrayList、String和向量索引是否正确,比如索引是否大于零并且小于数组的大小。



    2.4  方法参数异常:


    关键字:java.lang.IllegalArgumentException

    问题分析:

    当方法接收到了一个不合法或不正确的参数时会抛出此类异常。

    修改建议:

    因为参数不合法导致抛出IllegalArgumentException,需要根据堆栈信息描述的出错的函数参数,按照要求传入正确的参数。





    ===========================

    3. 联系我们

    如果您对兼容性测试有任何问题,

    可以发邮件至:‍rdtpservice@samsung.com

    邮件主题:三星兼容性测试+APP名