1.一种数据测试方法,其特征在于,包括:
使用MVP架构将Instrumentation Test测试工程划分为Model层、View层和Presenter层;
在Java虚拟机上运行对所述Model层和Presenter层的测试用例的测试,得到所述Model层的测试用例的测试通过率和覆盖率的第一数据文件,以及所述Presenter层的测试用例的测试通过率和覆盖率的第二数据文件,其中,所述第一数据文件为ec文件,所述第二数据文件为ec文件;
在Dalvik/ART虚拟机上运行对所述View层的测试用例的测试,得到所述View层的测试用例的测试通过率和覆盖率的第三数据文件,所述第三数据文件为exec文件;
将所述第一数据文件、第二数据文件和第三数据文件进行合并,生成测试报告数据;
所述方法还包括:采取布尔逻辑插桩的方式动态控制所述Model层、View层和Presenter层的测试用例的测试进程;
采取布尔逻辑插桩的方式动态控制所述Model层、View层和Presenter层的测试用例的测试进程的步骤,包括:定义插桩布尔函数公式:
S(P1,P2...Pm)=P1(x11,x12,...x1n....)^P2(x21,x22,...x2n....)^
......
Pm(xm1,xm2,...xmn....)
其中,S为执行测试通过率估值;P为对应组件测试用例集合测试布尔函数,取值范围为(0,1];x为测试用例执行通过率;m为大于2的整数,n为大于2的整数;
分组件测试函数集合分别动态计算所述Model层、View层和Presenter层测试用例的测试通过率估值S;
根据所述测试通过率估值S控制测试进程,如果S=1,则继续执行下一个测试;如果S=
0,则终止所有测试;如果0<S<1,则跳过当前测试,继续执行下一个测试。
2.根据权利要求1所述的数据测试方法,其特征在于,所述Model层、View层和Presenter层的测试用例的测试采用并发模式运行。
3.根据权利要求1所述的数据测试方法,其特征在于,对所述Model层的测试用例的测试在所述测试用例的编译阶段运行,所述第一数据文件在编译完成时得到;
所述Presenter层和View层的测试用例的测试在所述测试用例编译完成并生成安装包后进行。
4.根据权利要求1所述的数据测试方法,其特征在于,在Java虚拟机上运行对所述Model层和Presenter层的测试用例的测试的步骤,包括:在进行预编译之前,在Java虚拟机上运行对所述Model层和Presenter层的测试用例的测试;
在Java虚拟机上运行对所述Model层和Presenter层的测试用例的测试时,所述方法还包括:屏蔽依赖Android SDK源码的代码片段。
5.根据权利要求4所述的数据测试方法,其特征在于,屏蔽依赖AndroidSDK源码的代码片段的步骤,包括:将依赖Android SDK源码的代码片段单独封装至携带有native前缀的函数中;
使用@ignore注解native前缀函数,在运行阶段自动绕过@ignore注解的函数;
添加常量文件,若对有返回值的native函数绕过不执行,则读取常量文件中的默认值。
6.根据权利要求1所述的数据测试方法,其特征在于,将所述第一数据文件、第二数据文件和第三数据文件进行合并,生成测试报告数据的步骤,包括:将所述第一数据文件和第二数据文件转换为第一Excel表格文件;
将所述第三数据文件转换为第二Excel表格文件;
对所述第一Excel表格文件和第二Excel表格文件中的数据进行合并和计算生成报告数据,所述报告数据中包括通过率和覆盖率。
7.一种数据测试装置,其特征在于,包括:
测试工程划分模块,用于使用MVP架构将Instrumentation Test测试工程划分为Model层、View层和Presenter层;
第一测试执行模块,用于在Java虚拟机上运行对所述Model层和Presenter层的测试用例的测试,得到所述Model层的测试用例的测试通过率和覆盖率的第一数据文件,以及所述Presenter层的测试用例的测试通过率和覆盖率的第二数据文件,其中,所述第一数据文件为ec文件,所述第二数据文件为ec文件;
第二测试执行模块,用于在Dalvik/ART虚拟机上运行对所述View层的测试用例的测试,得到所述View层的测试用例的测试通过率和覆盖率的第三数据文件,所述第三数据文件为exec文件;
报告生成模块,用于将所述第一数据文件、第二数据文件和第三数据文件进行合并,生成测试报告数据;
所述数据测试装置还包括:采取布尔逻辑插桩的方式动态控制所述Model层、View层和Presenter层的测试用例的测试进程的模块;
采取布尔逻辑插桩的方式动态控制所述Model层、View层和Presenter层的测试用例的测试进程的模块具体用于:定义插桩布尔函数公式:
S(P1,P2...Pm)=P1(x11,x12,...x1n....)^P2(x21,x22,...x2n....)^
......
Pm(xm1,xm2,...xmn....)
其中,S为执行测试通过率估值;P为对应组件测试用例集合测试布尔函数,取值范围为(0,1];x为测试用例执行通过率;m为大于2的整数,n为大于2的整数;
分组件测试函数集合分别动态计算所述Model层、View层和Presenter层测试用例的测试通过率估值S;
根据所述测试通过率估值S控制测试进程,如果S=1,则继续执行下一个测试;如果S=
0,则终止所有测试;如果0<S<1,则跳过当前测试,继续执行下一个测试。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1~6任一项所述的数据测试方法。