The embodiment of this application discloses a code testing method and device. One specific implementation of the method includes: determining the target tag objects in all tag objects; determining the test cases of the updated version of the code based on the identified target tag objects and the original version of the code; and testing the updated version of the code using the test cases of the updated version of the code. In the subsequent code testing of any version of the updated version, the tag objects that need to be tested again when the code changes are automatically analyzed. The corresponding test cases are determined from the original version of the test cases as the test cases of the updated version of the code, which reduces the opening of the testing process. Pin. It can accurately determine any level of code branches that need to be tested again when the code changes, and select the corresponding test cases to test accurately.
【技术实现步骤摘要】
代码测试方法和装置
本申请涉及计算机领域,具体涉及测试领域,尤其涉及代码测试方法和装置。
技术介绍
在代码上线之前需要利用测试用例进行对代码进行测试。目前,通常通过利用测试用例对代码测试之后输出的函数的相关信息,以人工方式分析各个测试用例可以测试到的函数,根据分析结果调整测试用例。然而,代码随着业务的扩展需要不断更新,每进行一次更新得到一个新的版本的代码,均需重新进行测试,测试过程的开销巨大。
技术实现思路
本申请实施例提供了代码测试方法和装置。第一方面,本申请实施例提供了代码测试方法,该方法包括:确定所有标记对象中的目标标记对象,其中,标记对象的标识信息基于标记对象的至少部分代码生成,在更新版本的代码中的目标标记对象的标识信息与在原始版本的代码中的目标标记对象的标识信息不同;基于确定出的目标标记对象和原始版本的代码的测试用例,确定出更新版本的代码的测试用例;利用更新版本的代码的测试用例对更新版本的代码进行测试。第二方面,本申请实施例提供了代码测试装置,该装置包括:对象确定单元,被配置为确定所有标记对象中的目标标记对象,其中,标记对象的标识信息基于标记对象的至少部分代码生成,在更新版本的代码中的目标标记对象的标识信息与在原始版本的代码中的目标标记对象的标识信息不同;用例确定单元,被配置为基于确定出的目标标记对象和原始版本的代码的测试用例,确定出更新版本的代码的测试用例;代码测试单元,被配置为利用更新版本的代码的测试用例对更新版本的代码进行测试。本申请实施例提供的代码测试方法和装置,通过确定所有标记对象中的目标标记对象,其中,标记对象的标识信息基于标记对象的至少 ...
【技术保护点】
1.一种代码测试方法,包括:确定所有标记对象中的目标标记对象,其中,标记对象的标识信息基于标记对象的至少部分代码生成,在更新版本的代码中的目标标记对象的标识信息与在原始版本的代码中的目标标记对象的标识信息不同;基于确定出的目标标记对象和原始版本的代码的测试用例,确定出更新版本的代码的测试用例;利用更新版本的代码的测试用例对更新版本的代码进行测试。
【技术特征摘要】
1.一种代码测试方法,包括:确定所有标记对象中的目标标记对象,其中,标记对象的标识信息基于标记对象的至少部分代码生成,在更新版本的代码中的目标标记对象的标识信息与在原始版本的代码中的目标标记对象的标识信息不同;基于确定出的目标标记对象和原始版本的代码的测试用例,确定出更新版本的代码的测试用例;利用更新版本的代码的测试用例对更新版本的代码进行测试。2.根据权利要求1所述的方法,标记对象包括:函数、函数中的代码分支。3.根据权利要求2所述的方法,所述方法还包括:基于函数的属性信息,生成函数的标识信息,函数的属性信息包括以下一项或多项:函数的返回值类型、函数的函数名、函数的参数。4.根据权利要求3所述的方法,所述方法还包括:基于代码分支的属性信息,生成代码分支的标识信息,代码分支的属性信息包括以下一项或多项:代码分支的分支类型、代码分支的参数、代码分支中的语句。5.根据权利要求1-4之一所述的方法,所述方法还包括:在原始版本的代码中的标记对象的代码的首个语句之前加入日志语句,所述日志语句包括:标记对象的标识信息;利用多个测试用例对原始版本的代码进行测试;对于每一个测试用例,基于测试用例对原始版本的代码进行测试之后被输出到日志的标识信息,确定利用测试用例对原始版本的代码进行测试之后被调用的标记对象。6.根据权利要求5所述的方法,基于确定出的目标标记对象和原始版本的代码的测试用例,确定出更新版本的代码的测试用例包括:基于原始版本的测试用例对应的跳转路径信息集合包括的目标标记对象的跳转路径信息的数量,从所有原始版本的测试用例中选取出至少部分测试用例作为更新版本的代码的测试用例,其中,原始版本的测试用例对应的跳转路径信息集合包括:利用原始版本的测试用例对原始版本的代码测试之后被调用的标记对象的跳转路径信息,标记对象的跳转路径信息指示当标记对象被调用时在所述标记对象所属的函数被调用的时刻到所述标记对象被调用的时刻之间所有被调用的标记对象和调用次序。7.一种代码测试装置,包括:对象确定单元,被配置为确定所有标记对象中的目标标记对象,其中,标记对象的标识信息基于标记对象的至少部分代码生成,在更新版本的代码中的目标标记对象的标识信息与在原始版本的代码中的目标标记...
【专利技术属性】
技术研发人员:陈夏辉,吴泽武,袁辉,
申请(专利权)人:百度在线网络技术北京有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。