一种测试方法、装置及终端制造方法及图纸

技术编号:19176987 阅读:32 留言:0更新日期:2018-10-17 00:18
本发明专利技术公开了一种针对混淆安装包的自动化测试方法、装置及终端。本发明专利技术能够根据混淆映射文件,在所述混淆安装包中执行测试用例,从而能够自动对混淆后的安装包进行测试。进一步地,本发明专利技术不需要对改变原始安装包的测试用例,即一份原始安装包的测试用例可以对各种各样的混淆后的安装包进行测试,既提升了测试用例的利用率,又简化了测试流程。

A test method, device and terminal

The invention discloses an automatic testing method, device and terminal for confusion installation package. According to the confusion mapping file, the invention can execute test cases in the confusion installation package, so that the confusion installation package can be automatically tested. Further, the invention does not require a test case that changes the original installation package, that is, a test case of the original installation package can test various confused installation packages, which not only improves the utilization rate of test cases, but also simplifies the test process.

【技术实现步骤摘要】
一种测试方法、装置及终端
本专利技术涉及测试领域,尤其涉及一种测试方法、装置及终端。
技术介绍
现有的自动化测试方案中使用的参量都是固定的,即为未经过混淆的原始安装包中的参量,因此,在测试过程中必须使用非混淆的安装包进行测试,而不能支持对混淆后的安装包进行测试。然而,由于原始安装包中的参量包含有大量的源文件信息,因此通过原始安装包使用反编译或逆向工程很容易可以获得应用软件完整的源程序代码,从而造成源代码泄露。因此大部分软件公司正式发布的软件版本一般都会使用混淆后的安装包发布。然而,现有的自动化测试方案无法对这种混淆后的安装包进行测试,从而难以保证混淆后的安装包的质量。
技术实现思路
为了解决上述技术问题,本专利技术提出了一种测试方法、装置及终端。本专利技术具体是以如下技术方案实现的:第一方面,一种测试方法,所述方法包括:获取原始安装包,构建用于测试所述原始安装包的测试用例,所述测试用例中包括原始安装包中的参量;获取所述原始安装包对应的混淆安装包以及混淆映射文件;所述混淆映射文件记录有原始安装包中的参量与混淆安装包中的参量的映射关系;根据所述混淆映射文件,在所述混淆安装包中执行所述测试用例。第二方面,一种测试装置,所述装置包括:原始安装包获取模块,用于获取原始安装包,构建用于测试所述原始安装包的测试用例,所述测试用例中包括原始安装包中的参量;混淆文件获取模块,用于获取所述原始安装包对应的混淆安装包以及混淆映射文件;所述混淆映射文件记录有原始安装包中的参量与混淆安装包中的参量的映射关系;测试执行模块,用于根据所述混淆映射文件,在所述混淆安装包中执行所述测试用例。第三方面,一种测试终端,所述终端包括上述的测试装置。本专利技术提供了一种测试方法、装置及终端,具有如下有益效果:本专利技术提供了一种针对混淆安装包的自动化测试方法、装置及终端,能够自动对混淆后的安装包进行测试。进一步地,本专利技术不需要对改变原始安装包的测试用例,即一份原始安装包的测试用例可以对各种各样的混淆后的安装包进行测试,既提升了测试用例的利用率,又简化了测试流程。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。图1是本专利技术实施例提供的一种测试方法流程图;图2是本专利技术实施例提供的Java应用软件的应用场景示意图;图3是本专利技术实施例提供的一种执行所述测试用例的方法的流程图;图4是本专利技术实施例提供的通另一种执行所述测试用例的方法的流程图;图5是本专利技术实施例提供的强混淆方法的流程图;图6是本专利技术实施例提供的通另一种执行所述测试用例的方法的流程图;图7是本专利技术实施例提供的通另一种执行所述测试用例的方法的流程图;图8是本专利技术实施例提供的一种测试装置框图;图9是本专利技术实施例提供的测试执行模块框图;图10是本专利技术实施例提供的另一种测试执行模块框图;图11是本专利技术实施例提供的另一种测试执行模块框图;图12是本专利技术实施例提供的另一种测试执行模块框图;图13是本专利技术实施例提供的终端的结构框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供一种测试方法,所述方法如图1所示,包括:S101.获取原始安装包,构建用于测试所述原始安装包的测试用例,所述测试用例中包括原始安装包中的参量。具体地,所述原始安装包中的参量包括原始安装包中的控件标识、类名称、方法名称、变量名称和/或资源路径。以Java应用软件为例,其安装包中包括类文件,其后缀名为.class和/或资源文件。类文件中包括有控件标识、类名称、方法名称、变量名称和/或资源路径。如图2所示,其示出了Java应用软件的应用场景示意图。采用Java编写的应用软件源程序代码经过Java编译器编译后,生成Java字节码(.class文件),Java字节码独立于计算机硬件及操作系统,在运行时由Java虚拟机的Java解释器负责解释并通过即时编译器生成机器代码而执行。然而,由于Java字节码中包含大量的调试信息,例如:源文件名、行号、字段名、方法名、参数名和变量名等,这些调试信息很容易被反编译和通过逆向工程获得应用软件完整的源程序代码。S102.获取所述原始安装包对应的混淆安装包以及混淆映射文件;所述混淆映射文件记录有原始安装包中的参量与混淆安装包中的参量的映射关系。具体地,所述混淆安装包以及混淆映射文件可以分别为两个文件,也可以将两个文件混合为一个特殊的文件,比如将混淆安装包以及混淆映射文打包为一个压缩文件。所述混淆安装包、混淆映射文件和/或混合后的文件均可以被加密。本步骤中编译所述原始安装包对应的源文件,并在编译过程对于原始安装包中的参量进行代码混淆和/或资源混淆,编译结束后生成混淆后的混淆安装包以及混淆映射文件。具体地,在编译过程中,不论是代码混淆还是资源混淆都可以是随机的。其中,代码混淆(Obfuscatedcode)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途。重写代码中的部分逻辑,将其变成功能上等价,但是更难理解的形式。比如将for循环改写成while循环,将循环改写成递归,精简中间变量,等等。打乱代码的格式。比如删除空格,将多行代码挤到一行中,或者将一行代码断成多行等等。代码混淆虽然并不能真正阻止反向工程,但是能增大其难度从而减少源代码的泄露风险。其中,资源混淆是为了防止资源文件被别人或者通过反编译直接获取到,从而保证资源文件的相对安全。S103.根据所述混淆映射文件,在所述混淆安装包中执行所述测试用例。具体地,在S102之后,即可建立自动化测试任务,所述自动化测试任务中包括了需要执行的测试用例,所述测试用例在S101中即可得到,通过执行所述自动化测试任务,完成对于混淆安装包的测试。具体地,如图3所示,其示出了本专利技术实施例提供一种执行所述测试用例的方法,通过逐条执行所述测试用例中的语句完成对于测试用例的执行过程,所述方法具体包括:S1031.读取测试用例中的语句。S1032.若所述语句中包括原始安装包中的参量,则根据所述混淆映射文件查找所述参量对应的目标参量,所述目标参量为所述参量对应的混淆安装包中的参量;根据所述目标参量在所述混淆安装包中执行所述语句。具体地,可以将混淆映射文件提取出来,接收原始安装包中的参量,然后通过对混淆映射文件的查找,返回所述参量对应的目标参量。以原测试用例的语句为find(titlepath)为例,titlepath为原始安装包中的参量,其对应的目标参量为a;则在所述混淆安装包中执行本文档来自技高网...

【技术保护点】
1.一种测试方法,其特征在于,所述方法包括:获取原始安装包,构建用于测试所述原始安装包的测试用例,所述测试用例中包括原始安装包中的参量;获取所述原始安装包对应的混淆安装包以及混淆映射文件;所述混淆映射文件记录有原始安装包中的参量与混淆安装包中的参量的映射关系;根据所述混淆映射文件,在所述混淆安装包中执行所述测试用例。

【技术特征摘要】
1.一种测试方法,其特征在于,所述方法包括:获取原始安装包,构建用于测试所述原始安装包的测试用例,所述测试用例中包括原始安装包中的参量;获取所述原始安装包对应的混淆安装包以及混淆映射文件;所述混淆映射文件记录有原始安装包中的参量与混淆安装包中的参量的映射关系;根据所述混淆映射文件,在所述混淆安装包中执行所述测试用例。2.根据权利要求1所述的方法,其特征在于,所述原始安装包中的参量包括原始安装包中的控件标识、类名称、方法名称、变量名称和/或资源路径。3.根据权利要求1所述的方法,其特征在于,所述根据所述混淆映射文件,在所述混淆安装包中执行所述测试用例包括:读取测试用例中的语句;若所述语句中包括原始安装包中的参量,则根据所述混淆映射文件查找所述参量对应的目标参量,所述目标参量为所述参量对应的混淆安装包中的参量;根据所述目标参量在所述混淆安装包中执行所述语句;若所述语句中不包括原始安装包中的参量,则直接在所述混淆安装包中执行所述语句。4.根据权利要求1所述的方法,其特征在于,所述根据所述混淆映射文件,在所述混淆安装包中执行所述测试用例包括:读取测试用例,并获取所述测试用例中的全部参量;根据所述混淆映射文件查找到每一个参量对应的目标参量,所述目标参量为所述参量对应的混淆安装包中的参量;将测试用例中的参量替换为其对应的目标参量以生成所述测试用例对应的适用于混淆安装包的测试用例;在所述混淆安装包中执行所述测试用例对应的适用于混淆安装包的测试用例。5.根据权利要求1所述的方法,其特征在于,所述获取所述原始安装包对应的混淆安装包以及混淆映射文件包括:编译所述原始安装包对应的源文件,并在编译过程对于原始安装包中的参量进行代码混淆和/或资源混淆,编译结束后生成混淆后的混淆安装包以及混淆映射文件。6.根据权利要求5所述的方法,其特征在于,在所述获取所述原始安装包对应的混淆安装包以及混淆映射文件之后,还包括:获取混淆安装包中至少一个类文件中能够进行合并的函数;在所述混淆安装包中将所述能够进行合并的函数进行函数合并处理并生成合并记录文件;所述合并记录文件用于记录对函数进行合并处理的过程。7.根据权利要求6所述的方法,其特征在于,所述根据所述混淆映射文件,在所述混淆安装包中执行所述测试用例包括:读取测试用例中的语句;若所述语句中包括原始安装包中的参量,则根据所述混淆映射文件查找所述参量对应的目标参量,所述目标参量为所述参量对应的混淆安装包中的参量;根据所述目标参量和所述合并记录文件在所述混淆安装包中执行所述语句;若所述语句中不包括原始安装包中的参量,则根据所述合并记录文件在所述混淆安装包中执行所述语句。8.根据权利要求6所述的方法,其特征在于,所述根据所述混淆映射文件,在所述混淆安装包中执行所述测试用例包括:读取测试用例,并获取所述测试用例中的全部参量;根据所述混淆映射文件查找到每一个参量对应的目标参量,所述目标参量为所述参量对应的混淆安装包中的参量;将测试用例中的参量替换为其对应的目标参量以生成所述测试用例对应的适用于混淆安装包的测试用例;根据所述合并记录...

【专利技术属性】
技术研发人员:樊林
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1