CN110389896A - 代码自动化分析和测试方法、装置及计算机可读存储介质 - Google Patents

代码自动化分析和测试方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN110389896A
CN110389896A CN201910526297.8A CN201910526297A CN110389896A CN 110389896 A CN110389896 A CN 110389896A CN 201910526297 A CN201910526297 A CN 201910526297A CN 110389896 A CN110389896 A CN 110389896A
Authority
CN
China
Prior art keywords
function
code
test
source program
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910526297.8A
Other languages
English (en)
Inventor
沈楚杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Life Insurance Company of China Ltd
Original Assignee
Ping An Life Insurance Company of China Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Life Insurance Company of China Ltd filed Critical Ping An Life Insurance Company of China Ltd
Priority to CN201910526297.8A priority Critical patent/CN110389896A/zh
Publication of CN110389896A publication Critical patent/CN110389896A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种测试技术,揭露了一种代码自动化分析和测试方法、装置及计算机可读存储介质,所述方法包括:获取新版本源程序代码与旧版本源程序代码;分析新版本源程序代码与旧版本源程序代码的结构关系,包括函数及方法的调用关系、结构的包含关系和类的继承关系;确定新版本源程序代码与旧版本源程序代码的代码变更点;根据代码变更点分析代码变更的功能及受变更影响的功能,确定新版本源程序代码与旧版本源程序代码的功能影响点;根据功能影响点获取待测功能点及与所述待测功能点对应的目标参数;输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试。

Description

代码自动化分析和测试方法、装置及计算机可读存储介质
技术领域
本发明涉及自动化测试领域,尤其涉及一种代码自动化分析和测试方法、装置及计算机可读存储介质。
背景技术
随着计算机及软件技术的发展,应用种类越来越多,应用规模越来越大。一个应用一般有多个业务功能,这些业务功能依赖于计算机语言实现的代码实现。
在实际应用中,由于多种原因,例如需要优化业务功能、代码发生错误等,需要对应用的代码进行变更。在传统的软件开发测试过程中,由于代码变更后,功能影响点都是通过人工进行分析,容易造成分析不全面,功能上线后出现问题;且在测试人员对功能进行测试时,也是通过人工方式进行,容易造成功能影响点测试不全面。
发明内容
本发明提供一种代码自动化分析和测试方法、装置及计算机可读存储介质,其主要目的在于提高软件开发和测试的效率,降低人力成本。
为实现上述目的,本发明提供一种代码自动化分析和测试方法,应用于电子装置,所述代码自动化分析和测试方法包括:
获取新版本源程序代码与旧版本源程序代码;
分析新版本源程序代码与旧版本源程序代码的结构关系,包括函数及方法的调用关系、结构的包含关系和类的继承关系;
确定新版本源程序代码与旧版本源程序代码的代码变更点;
根据代码变更点分析代码变更的功能及受变更影响的功能,确定新版本源程序代码与旧版本源程序代码的功能影响点;
根据功能影响点获取待测功能点及与所述待测功能点对应的目标参数;
输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试。
可选地,所述根据代码变更点分析代码变更的功能及受变更影响的功能,确定新版本源程序代码与旧版本源程序代码的功能影响点的步骤包括:
通过比较新版本源程序代码与旧版本源程序代码功能图的节点和边,找出二者之间的不同节点和/或不同边,确定功能差异,并根据所述功能差异的类型,找出所述功能差异带来的差异影响;其中,所述功能差异的类型为新增控件、删除控件和修改控件中的一种;
根据所述功能差异、所述差异影响和所述代码变更点,找出变更的功能及受变更影响的功能,并确定所述功能影响点。
可选地,所述根据功能影响点获取待测功能点及与所述待测功能点对应的目标参数的步骤包括:
根据所述功能影响点获取测试对象对应的当前脚本及所述当前脚本中多个函数的调用关系;
根据所述多个函数之间的调用关系,通过所述多个函数的函数名构建所述测试对象对应的多叉树,将所述多叉树作为所述测试对象的函数关系图;
根据预存储的函数名与功能点的映射关系,将所述函数关系图转换为功能关系图;所述功能关系图包括多个功能点;
确定待测功能点及与所述待测功能点对应的目标参数。
可选地,所述输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试的步骤包括:
所述自动化测试框架根据所述目标参数,生成测试对象对应的测试用例;
测试终端按照所述测试用例中的测试步骤,将输入参数输入测试对象,获取测试对象对应的输出参数,将所述输出参数与期望输出值进行匹配;
当测试用例执行完毕时,测试终端生成测试报告。
可选地,当所述新版本源程序代码与所述旧版本源程序代码中含有数据配置文件及脚本文件时,查找出这些文件中所包含的代码对象,并与所述新版本源程序代码与所述旧版本源程序代码一同进行分析,所述代码对象包括函数、类、常量和变量。
本发明还提供一种电子装置,所述电子装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的代码自动化分析和测试程序,所述代码自动化分析和测试程序被所述处理器执行时实现如下步骤:
获取新版本源程序代码与旧版本源程序代码;
分析新版本源程序代码与旧版本源程序代码的结构关系,包括函数及方法的调用关系、结构的包含关系和类的继承关系;
确定新版本源程序代码与旧版本源程序代码的代码变更点;
根据代码变更点分析代码变更的功能及受变更影响的功能,确定新版本源程序代码与旧版本源程序代码的功能影响点;
根据功能影响点获取待测功能点及与所述待测功能点对应的目标参数;
输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试。
可选地,所述根据代码变更点分析代码变更的功能及受变更影响的功能,确定新版本源程序代码与旧版本源程序代码的功能影响点的步骤包括:
通过比较新版本源程序代码与旧版本源程序代码功能图的节点和边,找出二者之间的不同节点和/或不同边,确定功能差异,并根据所述功能差异的类型,找出所述功能差异带来的差异影响;其中,所述功能差异的类型为新增控件、删除控件和修改控件中的一种;
根据所述功能差异、所述差异影响和所述代码变更点,找出变更的功能及受变更影响的功能,并确定所述功能影响点。
可选地,所述根据功能影响点获取待测功能点及与所述待测功能点对应的目标参数的步骤包括:
根据所述功能影响点获取测试对象对应的当前脚本及所述当前脚本中多个函数的调用关系;
根据所述多个函数之间的调用关系,通过所述多个函数的函数名构建所述测试对象对应的多叉树,将所述多叉树作为所述测试对象的函数关系图;
根据预存储的函数名与功能点的映射关系,将所述函数关系图转换为功能关系图;所述功能关系图包括多个功能点;
确定待测功能点及与所述待测功能点对应的目标参数。
可选地,所述输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试的步骤包括:
所述自动化测试框架根据所述目标参数,生成测试对象对应的测试用例;
测试终端按照所述测试用例中的测试步骤,将输入参数输入测试对象,获取测试对象对应的输出参数,将所述输出参数与期望输出值进行匹配;
当测试用例执行完毕时,测试终端生成测试报告。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有代码自动化分析和测试程序,所述代码自动化分析和测试程序可被一个或者多个处理器执行,以实现上述的代码自动化分析和测试方法的步骤。
本发明提供的代码自动化分析和测试方法、装置及计算机可读存储介质通过软件自动检查代码变更点,自动分析出功能影响点,且对分析出的功能影响点,自动生成测试用例进行测试,从而代替人工分析及人工测试,从而大大提高了软件开发和测试的效率,降低了人力成本。
附图说明
图1为本发明一实施例提供的代码自动化分析和测试方法的流程示意图;
图2为本发明一实施例提供的电子装置的内部结构示意图;
图3为本发明一实施例提供的电子装置中基于代码自动化分析和测试程序的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种代码自动化分析和测试方法。参照图1所示,为本发明一实施例提供的代码自动化分析和测试方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现,本实施例中,所述装置为电子装置。
在本实施例中,代码自动化分析和测试方法应用于电子装置,所述代码自动化分析和测试方法包括:
S101,获取新版本源程序代码与旧版本源程序代码;
S102,分析新版本源程序代码与旧版本源程序代码的结构关系,包括函数及方法的调用关系、结构的包含关系和类的继承关系;
S103,确定新版本源程序代码与旧版本源程序代码的代码变更点;
S104,根据代码变更点分析代码变更的功能及受变更影响的功能,确定新版本源程序代码与旧版本源程序代码的功能影响点;
S105,根据功能影响点获取待测功能点及与所述待测功能点对应的目标参数;
S106,输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试。
所述根据代码变更点分析代码变更的功能及受变更影响的功能,确定新版本源程序代码与旧版本源程序代码的功能影响点的步骤包括:
通过比较新版本源程序代码与旧版本源程序代码功能图的节点和边,找出二者之间的不同节点和/或不同边,确定功能差异,并根据所述功能差异的类型,找出所述功能差异带来的差异影响;其中,所述功能差异的类型为新增控件、删除控件和修改控件中的一种;
根据所述功能差异、所述差异影响和所述代码变更点,找出变更的功能及受变更影响的功能,并确定所述功能影响点。
例如,对于两个软件功能图G1,G2,其差别可能出现在节点集合上,也可能出现在边集合上,也可能二者皆有差别。对两个软件功能图进行比较时,需要对节点集合和边集合都进行比较。
所述根据功能影响点获取待测功能点及与所述待测功能点对应的目标参数的步骤包括:
根据所述功能影响点获取测试对象对应的当前脚本及所述当前脚本中多个函数的调用关系;
根据所述多个函数之间的调用关系,通过所述多个函数的函数名构建所述测试对象对应的多叉树,将所述多叉树作为所述测试对象的函数关系图;
根据预存储的函数名与功能点的映射关系,将所述函数关系图转换为功能关系图;所述功能关系图包括多个功能点;
确定待测功能点及与所述待测功能点对应的目标参数。
所述输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试的步骤包括:
所述自动化测试框架根据所述目标参数,生成测试对象对应的测试用例;
测试终端按照所述测试用例中的测试步骤,将输入参数输入测试对象,获取测试对象对应的输出参数,将所述输出参数与期望输出值进行匹配;
当测试用例执行完毕时,测试终端生成测试报告。
在本实施例中,确定目标参数后,测试终端将目标参数输入自动化测试框架。自动化测试框架为应用于自动化测试的框架,由一个或多个自动化测试基础模块、自动化测试管理模块、自动化测试统计模块等组成的工具集合。自动化测试框架根据目标参数,生成测试对象对应的测试用例。测试终端可以通过测试用例对测试对象进行测试,即测试终端按照测试用例中的测试步骤,将输入参数输入测试对象,获取测试对象对应的输出参数,将该输出参数与期望输出值进行匹配。当测试用例执行完毕时,测试终端生成测试报告。测试报告记录了测试对象对应的测试通过或测试失败的测试结果。容易理解,当输出参数与期望输出值一致时,表示匹配成功,测试对象通过功能性测试。
当所述新版本源程序代码与所述旧版本源程序代码中含有数据配置文件及脚本文件时,查找出这些文件中所包含的代码对象,并与所述新版本源程序代码与所述旧版本源程序代码一同进行分析,所述代码对象包括函数、类、常量和变量。
在本实施例中,所述新版本源程序代码与所述旧版本源程序代码中可能会包含一些数据配置文件及脚本文件,这些文件也可能会包含代码对象,与所述新版本源程序代码与所述旧版本源程序代码的代码对象的名称一致,那么它们的变化同样可能对所述新版本源程序代码与所述旧版本源程序代码调用关系和编译结果产生影响,因此也需要对这些代码对象进行分析。
所述分析新版本源程序代码与旧版本源程序代码的结构关系,包括函数及方法的调用关系、结构的包含关系和类的继承关系的步骤包括:
分析需要测试的功能接口函数的名称;
对所述新版本源程序代码与所述旧版本源程序代码的差异进行语义级分析,调用相应的语言分析模块,从文本层次上找到并收集所有的变化;
找出源代码中做过修改的地方以及所述功能接口函数的关联关系。
本实施例提出的代码自动化分析和测试方法通过软件自动检查代码变更点,自动分析出功能影响点,且对分析出的功能影响点,自动生成测试用例进行测试,从而代替人工分析及人工测试,从而大大提高了软件开发和测试的效率,降低了人力成本。
本发明还提供一种电子装置1。参照图2所示,为本发明一实施例提供的电子装置的内部结构示意图。
在本实施例中,电子装置1可以是电脑、智能终端或服务器。所述电子装置1至少包括存储器11、处理器13,通信总线15,以及网络接口17。在本实施例中,所述电子装置1为智能终端。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是电子装置的内部存储单元,例如所述电子装置的硬盘。存储器11在另一些实施例中也可以是电子装置的外部存储设备,例如电子装置上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器11还可以既包括电子装置的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于电子装置1的应用软件及各类数据,例如代码自动化分析和测试程序111的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器13在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据。
通信总线15用于实现这些组件之间的连接通信。
网络接口17可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在电子装置1与其他电子设备之间建立通信连接。
可选地,电子装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子装置中处理的信息以及用于显示可视化的用户界面。
图2仅示出了具有组件11~17的电子装置1,本领域技术人员可以理解的是,图2示出的结构并不构成对电子装置的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在图2所示的电子装置1的实施例中,存储器11中存储有代码自动化分析和测试程序111;处理器13执行存储器11中存储的代码自动化分析和测试程序111时实现如下步骤:
获取新版本源程序代码与旧版本源程序代码;
分析新版本源程序代码与旧版本源程序代码的结构关系,包括函数及方法的调用关系、结构的包含关系和类的继承关系;
确定新版本源程序代码与旧版本源程序代码的代码变更点;
根据代码变更点分析代码变更的功能及受变更影响的功能,确定新版本源程序代码与旧版本源程序代码的功能影响点;
根据功能影响点获取待测功能点及与所述待测功能点对应的目标参数;
输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试。
所述根据代码变更点分析代码变更的功能及受变更影响的功能,确定新版本源程序代码与旧版本源程序代码的功能影响点的步骤包括:
通过比较新版本源程序代码与旧版本源程序代码功能图的节点和边,找出二者之间的不同节点和/或不同边,确定功能差异,并根据所述功能差异的类型,找出所述功能差异带来的差异影响;其中,所述功能差异的类型为新增控件、删除控件和修改控件中的一种;
根据所述功能差异、所述差异影响和所述代码变更点,找出变更的功能及受变更影响的功能,并确定所述功能影响点。
例如,对于两个软件功能图G1,G2,其差别可能出现在节点集合上,也可能出现在边集合上,也可能二者皆有差别。对两个软件功能图进行比较时,需要对节点集合和边集合都进行比较。
所述根据功能影响点获取待测功能点及与所述待测功能点对应的目标参数的步骤包括:
根据所述功能影响点获取测试对象对应的当前脚本及所述当前脚本中多个函数的调用关系;
根据所述多个函数之间的调用关系,通过所述多个函数的函数名构建所述测试对象对应的多叉树,将所述多叉树作为所述测试对象的函数关系图;
根据预存储的函数名与功能点的映射关系,将所述函数关系图转换为功能关系图;所述功能关系图包括多个功能点;
确定待测功能点及与所述待测功能点对应的目标参数。
所述输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试的步骤包括:
所述自动化测试框架根据所述目标参数,生成测试对象对应的测试用例;
测试终端按照所述测试用例中的测试步骤,将输入参数输入测试对象,获取测试对象对应的输出参数,将所述输出参数与期望输出值进行匹配;
当测试用例执行完毕时,测试终端生成测试报告。
在本实施例中,确定目标参数后,测试终端将目标参数输入自动化测试框架。自动化测试框架为应用于自动化测试的框架,由一个或多个自动化测试基础模块、自动化测试管理模块、自动化测试统计模块等组成的工具集合。自动化测试框架根据目标参数,生成测试对象对应的测试用例。测试终端可以通过测试用例对测试对象进行测试,即测试终端按照测试用例中的测试步骤,将输入参数输入测试对象,获取测试对象对应的输出参数,将该输出参数与期望输出值进行匹配。当测试用例执行完毕时,测试终端生成测试报告。测试报告记录了测试对象对应的测试通过或测试失败的测试结果。容易理解,当输出参数与期望输出值一致时,表示匹配成功,测试对象通过功能性测试。
当所述新版本源程序代码与所述旧版本源程序代码中含有数据配置文件及脚本文件时,查找出这些文件中所包含的代码对象,并与所述新版本源程序代码与所述旧版本源程序代码一同进行分析,所述代码对象包括函数、类、常量和变量。
在本实施例中,所述新版本源程序代码与所述旧版本源程序代码中可能会包含一些数据配置文件及脚本文件,这些文件也可能会包含代码对象,与所述新版本源程序代码与所述旧版本源程序代码的代码对象的名称一致,那么它们的变化同样可能对所述新版本源程序代码与所述旧版本源程序代码调用关系和编译结果产生影响,因此也需要对这些代码对象进行分析。
所述分析新版本源程序代码与旧版本源程序代码的结构关系,包括函数及方法的调用关系、结构的包含关系和类的继承关系的步骤包括:
分析需要测试的功能接口函数的名称;
对所述新版本源程序代码与所述旧版本源程序代码的差异进行语义级分析,调用相应的语言分析模块,从文本层次上找到并收集所有的变化;
找出源代码中做过修改的地方以及所述功能接口函数的关联关系。
本实施例提出的电子装置通过软件自动检查代码变更点,自动分析出功能影响点,且对分析出的功能影响点,自动生成测试用例进行测试,从而代替人工分析及人工测试,从而大大提高了软件开发和测试的效率,降低了人力成本。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有UI自动化测试代码自动化分析和测试程序111,所述代码自动化分析和测试程序111可被一个或多个处理器执行,以实现如下操作:
获取新版本源程序代码与旧版本源程序代码;
分析新版本源程序代码与旧版本源程序代码的结构关系,包括函数及方法的调用关系、结构的包含关系和类的继承关系;
确定新版本源程序代码与旧版本源程序代码的代码变更点;
根据代码变更点分析代码变更的功能及受变更影响的功能,确定新版本源程序代码与旧版本源程序代码的功能影响点;
根据功能影响点获取待测功能点及与所述待测功能点对应的目标参数;
输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试。
本发明计算机可读存储介质具体实施方式与上述电子装置和方法各实施例基本相同,在此不作累述。
可选地,在其他实施例中,所述代码自动化分析和测试程序111还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器13)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述代码自动化分析和测试程序在电子装置中的执行过程。
例如,参照图3所示,为本发明电子装置一实施例中的代码自动化分析和测试程序111的程序模块示意图,该实施例中,代码自动化分析和测试程序111可以被分割为获取模块10、分析模块20、确定模块30、输入模块40,示例性地:
所述获取模块10,用于获取新版本源程序代码与旧版本源程序代码;以及根据功能影响点获取待测功能点及与所述待测功能点对应的目标参数;
所述分析模块20,用于分析新版本源程序代码与旧版本源程序代码的结构关系,包括函数及方法的调用关系、结构的包含关系和类的继承关系;
所述确定模块30,用于确定新版本源程序代码与旧版本源程序代码的代码变更点;以及根据代码变更点分析代码变更的功能及受变更影响的功能,确定新版本源程序代码与旧版本源程序代码的功能影响点;
所述输入模块40,用于输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试。
所述获取模块10、分析模块20、确定模块30、输入模块40等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是通过本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种代码自动化分析和测试方法,应用于电子装置,所述代码自动化分析和测试方法包括:
获取新版本源程序代码与旧版本源程序代码;
分析所述新版本源程序代码与所述旧版本源程序代码的结构关系,所述结构关系包括函数及方法的调用关系、结构的包含关系和类的继承关系;
确定所述新版本源程序代码与所述旧版本源程序代码的代码变更点;
根据所述代码变更点分析代码变更的功能及受变更影响的功能,确定所述新版本源程序代码与所述旧版本源程序代码的功能影响点;
根据所述功能影响点获取待测功能点及与所述待测功能点对应的目标参数;
输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试。
2.如权利要求1所述的代码自动化分析和测试方法,其特征在于,所述根据代码变更点分析代码变更的功能及受变更影响的功能,确定新版本源程序代码与旧版本源程序代码的功能影响点的步骤包括:
通过比较新版本源程序代码与旧版本源程序代码功能图的节点和边,找出二者之间的不同节点和/或不同边,确定功能差异,并根据所述功能差异的类型,找出所述功能差异带来的差异影响;其中,所述功能差异的类型为新增控件、删除控件和修改控件中的一种;
根据所述功能差异、所述差异影响和所述代码变更点,找出变更的功能及受变更影响的功能,并确定所述功能影响点。
3.如权利要求2所述的代码自动化分析和测试方法,其特征在于,所述根据功能影响点获取待测功能点及与所述待测功能点对应的目标参数的步骤包括:
根据所述功能影响点获取测试对象对应的当前脚本及所述当前脚本中多个函数的调用关系;
根据所述多个函数之间的调用关系,通过所述多个函数的函数名构建所述测试对象对应的多叉树,将所述多叉树作为所述测试对象的函数关系图;
根据预存储的函数名与功能点的映射关系,将所述函数关系图转换为功能关系图;所述功能关系图包括多个功能点;
确定待测功能点及与所述待测功能点对应的目标参数。
4.如权利要求3所述的代码自动化分析和测试方法,其特征在于,所述输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试的步骤包括:
所述自动化测试框架根据所述目标参数,生成测试对象对应的测试用例;
测试终端按照所述测试用例中的测试步骤,将输入参数输入测试对象,获取测试对象对应的输出参数,将所述输出参数与期望输出值进行匹配;
当测试用例执行完毕时,测试终端生成测试报告。
5.如权利要求1所述的代码自动化分析和测试方法,其特征在于,当所述新版本源程序代码与所述旧版本源程序代码中含有数据配置文件及脚本文件时,查找出这些文件中所包含的代码对象,并与所述新版本源程序代码与所述旧版本源程序代码一同进行分析,所述代码对象包括函数、类、常量和变量。
6.一种电子装置,其特征在于,所述电子装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的代码自动化分析和测试程序,所述代码自动化分析和测试程序被所述处理器执行时实现如下步骤:
获取新版本源程序代码与旧版本源程序代码;
分析所述新版本源程序代码与所述旧版本源程序代码的结构关系,所述结构关系包括函数及方法的调用关系、结构的包含关系和类的继承关系;
确定所述新版本源程序代码与所述旧版本源程序代码的代码变更点;
根据所述代码变更点分析代码变更的功能及受变更影响的功能,确定所述新版本源程序代码与所述旧版本源程序代码的功能影响点;
根据所述功能影响点获取待测功能点及与所述待测功能点对应的目标参数;
输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试。
7.如权利要求6所述的电子装置,其特征在于,所述根据代码变更点分析代码变更的功能及受变更影响的功能,确定新版本源程序代码与旧版本源程序代码的功能影响点的步骤包括:
通过比较新版本源程序代码与旧版本源程序代码功能图的节点和边,找出二者之间的不同节点和/或不同边,确定功能差异,并根据所述功能差异的类型,找出所述功能差异带来的差异影响;其中,所述功能差异的类型为新增控件、删除控件和修改控件中的一种;
根据所述功能差异、所述差异影响和所述代码变更点,找出变更的功能及受变更影响的功能,并确定所述功能影响点。
8.如权利要求7所述的电子装置,其特征在于,所述根据功能影响点获取待测功能点及与所述待测功能点对应的目标参数的步骤包括:
根据所述功能影响点获取测试对象对应的当前脚本及所述当前脚本中多个函数的调用关系;
根据所述多个函数之间的调用关系,通过所述多个函数的函数名构建所述测试对象对应的多叉树,将所述多叉树作为所述测试对象的函数关系图;
根据预存储的函数名与功能点的映射关系,将所述函数关系图转换为功能关系图;所述功能关系图包括多个功能点;
确定待测功能点及与所述待测功能点对应的目标参数。
9.如权利要求8所述的电子装置,其特征在于,所述输入所述目标参数至自动化测试框架,通过所述自动化框架生成测试用例完成代码自动化测试的步骤包括:
所述自动化测试框架根据所述目标参数,生成测试对象对应的测试用例;
测试终端按照所述测试用例中的测试步骤,将输入参数输入测试对象,获取测试对象对应的输出参数,将所述输出参数与期望输出值进行匹配;
当测试用例执行完毕时,测试终端生成测试报告。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有代码自动化分析和测试程序,所述代码自动化分析和测试程序可被一个或者多个处理器执行,以实现如权利要求1至5中任一项所述的代码自动化分析和测试方法的步骤。
CN201910526297.8A 2019-06-18 2019-06-18 代码自动化分析和测试方法、装置及计算机可读存储介质 Pending CN110389896A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910526297.8A CN110389896A (zh) 2019-06-18 2019-06-18 代码自动化分析和测试方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910526297.8A CN110389896A (zh) 2019-06-18 2019-06-18 代码自动化分析和测试方法、装置及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN110389896A true CN110389896A (zh) 2019-10-29

Family

ID=68285717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910526297.8A Pending CN110389896A (zh) 2019-06-18 2019-06-18 代码自动化分析和测试方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110389896A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111061258A (zh) * 2019-12-31 2020-04-24 卡斯柯信号(北京)有限公司 一种基于列车控制系统的功能测试方法及装置
CN111078574A (zh) * 2019-12-26 2020-04-28 卡斯柯信号(北京)有限公司 生成影响分析报告的方法及装置
CN111240967A (zh) * 2020-01-03 2020-06-05 北京字节跳动网络技术有限公司 一种代码生成方法及装置
CN111752843A (zh) * 2020-06-29 2020-10-09 百度在线网络技术(北京)有限公司 用于确定影响面的方法、装置、电子设备及可读存储介质
CN112131114A (zh) * 2020-09-23 2020-12-25 北京达佳互联信息技术有限公司 应用的测试方法、装置、设备及存储介质
CN112199276A (zh) * 2020-09-24 2021-01-08 建信金融科技有限责任公司 微服务架构的变更检测方法、装置、服务器及存储介质
CN112749080A (zh) * 2019-10-31 2021-05-04 北京国双科技有限公司 目标程序的测试方法及装置、存储介质、电子设备
CN113190433A (zh) * 2021-04-01 2021-07-30 联想凌拓科技有限公司 一种程序测试方法及装置
CN113342685A (zh) * 2021-06-29 2021-09-03 平安资产管理有限责任公司 精准测试方法、装置、计算机设备和存储介质
WO2021196674A1 (zh) * 2020-03-30 2021-10-07 平安科技(深圳)有限公司 系统代码的测试方法、装置、计算机设备和存储介质
CN113641578A (zh) * 2021-08-10 2021-11-12 广域铭岛数字科技有限公司 基于业务层面精准测试方法、系统、设备及介质
CN113641573A (zh) * 2021-07-26 2021-11-12 安徽中科国创高可信软件有限公司 基于修订日志的程序分析软件自动化测试方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286119A (zh) * 2008-05-27 2008-10-15 华耀环宇科技(北京)有限公司 一种通过分析代码变化确定功能点变化的方法
CN103198010A (zh) * 2012-01-06 2013-07-10 腾讯科技(深圳)有限公司 软件测试方法、装置及系统
CN104834603A (zh) * 2015-05-26 2015-08-12 牟永敏 一种面向回归测试的控制流变更影响域分析方法和系统
CN107992409A (zh) * 2017-11-21 2018-05-04 平安养老保险股份有限公司 测试用例生成方法、装置、计算机设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286119A (zh) * 2008-05-27 2008-10-15 华耀环宇科技(北京)有限公司 一种通过分析代码变化确定功能点变化的方法
CN103198010A (zh) * 2012-01-06 2013-07-10 腾讯科技(深圳)有限公司 软件测试方法、装置及系统
CN104834603A (zh) * 2015-05-26 2015-08-12 牟永敏 一种面向回归测试的控制流变更影响域分析方法和系统
CN107992409A (zh) * 2017-11-21 2018-05-04 平安养老保险股份有限公司 测试用例生成方法、装置、计算机设备和存储介质

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112749080A (zh) * 2019-10-31 2021-05-04 北京国双科技有限公司 目标程序的测试方法及装置、存储介质、电子设备
CN111078574A (zh) * 2019-12-26 2020-04-28 卡斯柯信号(北京)有限公司 生成影响分析报告的方法及装置
CN111061258A (zh) * 2019-12-31 2020-04-24 卡斯柯信号(北京)有限公司 一种基于列车控制系统的功能测试方法及装置
CN111240967A (zh) * 2020-01-03 2020-06-05 北京字节跳动网络技术有限公司 一种代码生成方法及装置
CN111240967B (zh) * 2020-01-03 2023-09-15 北京字节跳动网络技术有限公司 一种代码生成方法及装置
WO2021196674A1 (zh) * 2020-03-30 2021-10-07 平安科技(深圳)有限公司 系统代码的测试方法、装置、计算机设备和存储介质
CN111752843A (zh) * 2020-06-29 2020-10-09 百度在线网络技术(北京)有限公司 用于确定影响面的方法、装置、电子设备及可读存储介质
CN111752843B (zh) * 2020-06-29 2024-02-13 百度在线网络技术(北京)有限公司 用于确定影响面的方法、装置、电子设备及可读存储介质
CN112131114A (zh) * 2020-09-23 2020-12-25 北京达佳互联信息技术有限公司 应用的测试方法、装置、设备及存储介质
CN112199276B (zh) * 2020-09-24 2023-05-30 建信金融科技有限责任公司 微服务架构的变更检测方法、装置、服务器及存储介质
CN112199276A (zh) * 2020-09-24 2021-01-08 建信金融科技有限责任公司 微服务架构的变更检测方法、装置、服务器及存储介质
CN113190433A (zh) * 2021-04-01 2021-07-30 联想凌拓科技有限公司 一种程序测试方法及装置
CN113342685A (zh) * 2021-06-29 2021-09-03 平安资产管理有限责任公司 精准测试方法、装置、计算机设备和存储介质
CN113641573A (zh) * 2021-07-26 2021-11-12 安徽中科国创高可信软件有限公司 基于修订日志的程序分析软件自动化测试方法及系统
CN113641573B (zh) * 2021-07-26 2024-05-07 安徽中科国创高可信软件有限公司 基于修订日志的程序分析软件自动化测试方法及系统
CN113641578A (zh) * 2021-08-10 2021-11-12 广域铭岛数字科技有限公司 基于业务层面精准测试方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
CN110389896A (zh) 代码自动化分析和测试方法、装置及计算机可读存储介质
US9037549B2 (en) System and method for testing data at a data warehouse
US8448146B2 (en) Generation of functional tests for re-hosted applications
CN109614313A (zh) 自动化测试方法、装置及计算机可读存储介质
US20130117855A1 (en) Apparatus for automatically inspecting security of applications and method thereof
CN110941467A (zh) 数据处理方法、装置及系统
CN110275826A (zh) 自动化测试方法、装置及计算机可读存储介质
CN111209185B (zh) 基于关键词的自动化测试方法及计算机可读存储介质
CN108415826B (zh) 应用的测试方法、终端设备及计算机可读存储介质
CN110297760A (zh) 测试数据的构造方法、装置、设备及计算机可读存储介质
CN110688300A (zh) 兼容性测试方法、装置、设备及存储介质
CN110990274B (zh) 一种生成测试案例的数据处理方法、装置及系统
CN108959067A (zh) 搜索引擎的测试方法、装置及计算机可读存储介质
CN103049374B (zh) 一种自动化测试的方法及装置
CN113590454A (zh) 测试方法、装置、计算机设备和存储介质
CN111667231B (zh) 自动化报税方法、装置、系统、计算机设备和存储介质
CN109271313A (zh) 代码测试方法、装置及计算机可读存储介质
CN115576828A (zh) 一种测试用例生成方法、装置、设备及存储介质
CN110059002A (zh) 测试数据的生成方法、测试设备、存储介质及装置
CN113032257B (zh) 自动化测试方法、装置、计算机系统和可读存储介质
CN108897678B (zh) 静态代码检测方法和静态代码检测系统、存储设备
CN103064780A (zh) 一种软件测试的方法及装置
US10719482B2 (en) Data comparison
CN110263121A (zh) 表格数据处理方法、装置、电子装置及计算机可读存储介质
CN109558447A (zh) 数据管理方法、装置及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination