CN114741315A - 用例更新方法、装置、电子设备及存储介质 - Google Patents
用例更新方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114741315A CN114741315A CN202210471227.9A CN202210471227A CN114741315A CN 114741315 A CN114741315 A CN 114741315A CN 202210471227 A CN202210471227 A CN 202210471227A CN 114741315 A CN114741315 A CN 114741315A
- Authority
- CN
- China
- Prior art keywords
- information
- update
- name
- updating
- code
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种用例更新方法、装置、电子设备及存储介质。该方法包括:获取通用技术原语模型对应的更新信息列表和待更新用例的代码列表,所述更新信息列表包括更新信息和对应所述更新信息的更新操作;从所述代码列表中提取信息名以及所述信息名对应的索引;根据所述索引、所述信息名、所述更新信息以及所述更新操作,对所述代码列表进行更新;通过更新后的代码列表,对所述待更新用例进行更新。电子设备自动根据通用技术原语模型对应的更新信息列表,对待更新用例进行更新,并不需要技术人员手动进行更新操作,大大提高了更新操作的更新效率。
Description
技术领域
本申请涉及互联网信息处理技术领域,更具体地,涉及一种用例更新方法、装置、电子设备及存储介质。
背景技术
在设计FPGA(Field Programmable Gate Array,现场可编辑逻辑门阵列)的开发软件时,根据电路功能和逻辑关系建立软件模型,以为用户提供通用技术原语模型(Generic Technology Primitive,),该软件模型的建立技术也叫GTP建模技术。在GTP建模的过程中,硬件电路或者逻辑代码的设计尚未彻底完成,需要更新迭代,或,用户在使用GTP模型的时候,对建模需求进行调整,这些因素均会引起GTP模型出现更新。
相关技术中,通过技术人员观察,找出GTP模型中的更新信息,再根据GTP模型中的更新信息,对GTP模型的用例进行手动更新,这导致更新效率极低。
发明内容
鉴于上述问题,本申请实施例提出了一种用例更新方法、装置、电子设备及存储介质,以改善上述问题。
第一方面,本申请实施例提供了一种用例更新方法,方法包括:获取通用技术原语模型对应的更新信息列表和待更新用例的代码列表,所述更新信息列表包括更新信息和对应所述更新信息的更新操作;从所述代码列表中提取信息名以及所述信息名对应的索引;根据所述索引、所述信息名、所述更新信息以及所述更新操作,对所述代码列表进行更新;通过更新后的代码列表,对所述待更新用例进行更新。
第二方面,本申请实施例提供了一种用例更新装置,装置包括:获取模块,用于获取通用技术原语模型对应的更新信息列表和待更新用例的代码列表,所述更新信息列表包括更新信息和对应所述更新信息的更新操作;提取模块,用于从所述代码列表中提取信息名以及所述信息名对应的索引;列表更新模块,用于根据所述索引、所述信息名、所述更新信息以及所述更新操作,对所述代码列表进行更新;用例更新模块,用于通过更新后的代码列表,对所述待更新用例进行更新。
第三方面,本申请实施例提供了一种电子设备,包括处理器以及存储器;一个或多个程序被存储在存储器中并被配置为由处理器执行以实现上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有程序代码,其中,在程序代码被处理器运行时执行上述的方法。
第五方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的方法。
本申请实施例提供的一种用例更新方法、装置、电子设备及存储介质,通过电子设备自动根据通用技术原语模型对应的更新信息列表,对待更新用例进行更新,并不需要技术人员手动进行更新操作,大大提高了更新操作的更新效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个实施例提供的一种用例更新方法的流程图;
图2示出了本申请实施例中代码列表的一种获取方法的流程图;
图3示出了本申请实施例提出的一种用例更新方法中S120的一种实施方式的流程图;
图4示出了本申请实施例提出的一种用例更新方法中S130的一种实施方式的流程图;
图5示出了本申请实施例中更新信息列表的一种获取方法的流程图;
图6示出了本申请实施例提出的一种用例更新装置的框图;
图7示出了用于执行根据本申请实施例的用例更新方法的电子设备的结构框图;
图8示出了本申请实施例提供的一种计算机可读存储介质的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
请参阅图1,图1示出了本申请一个实施例提供的一种用例更新方法的流程图,方法可以用于电子设备,方法包括:
S110、获取通用技术原语模型对应的更新信息列表和待更新用例的代码列表,所述更新信息列表包括更新信息和对应所述更新信息的更新操作。
在本申请中,通用技术原语模型可以是指任何类型的硬件电路或者逻辑代码对应的模型,可以包括结构较简单的FPGA或结构较复杂的FPGA对应的模型。
本申请中的通用技术原语模型(Generic Technology Primitive,简称GTP模型,下文均以GTP模型代指)可以是指更新后的GTP模型,待更新用例可以是指更新前的GTP模型所执行的用例,GTP模型更新后,对应的用例也需要更新,否则对应的用例无法在更新后的GTP模型上运转。因此,对更新前的GTP模型的用例进行更新,将未更新的用例作为待更新用例;获取到待更新用例的用例文件之后,对其进行代码提取,并以列表的形式存储提取结果,得到代码列表。
GTP模型的更新信息列表至少存储更新信息和更新信息对应的更新操作,更新信息包括参数对应的参数更新信息和端口对应的端口更新信息中的至少一种,参数更新信息可以包括参数名、参数例化名和参数配置值(可以是参数默认的配置值,厂家或技术人员会对其设置默认的参数配置值)等,端口更新信息可以包括端口名和端口配置值(可以是参数默认的配置值,厂家或技术人员会对其设置默认的参数配置值)等。更新操作可以包括删除操作、添加操作以及替换操作,替换操作可以是指更名操作。
在一些具体的实施方式中,更新信息包括的内容与实际的更新操作也相关,更新操作包括删除操作时,参数更新信息可以包括需要删除的参数名和参数例化名,端口更新信息可以包括待删除的端口名;更新操作包括添加操作时,参数更新信息可以包括需要待添加的参数名、参数例化名以及对应的参数配置值,端口更新信息可以包括待添加的端口名和端口配置值;更新操作包括替换操作时,参数更新信息可以包括需要替换前的参数名、替换前的参数例化名、替换后的参数例化名和替换后的参数名,端口更新信息可以包括替换前的端口名和替换后的端口名。
S120、从所述代码列表中提取信息名以及所述信息名对应的索引。
在本申请中,信息名是指代码列表中参数对应的参数名、参数例化名以及端口对应端口名,信息名称对应的索引用于表征信息名在信息代码列表中的位置,可以是信息名在代码列表中的行号等。
S130、根据所述索引、所述信息名、所述更新信息以及所述更新操作,对所述代码列表进行更新。
可以根据索引和信息名,在代码列表中确定出需要更新的信息名,然后根据更新信息对需要更新的信息名所对应的参数和端口进行更新,得到更新后的代码列表。
S140、通过更新后的代码列表,对所述待更新用例进行更新。
在端口和参数对应的更新操作均完成后,获得更新后的代码列表,将完成更新后的代码列表重新插入当前打开的用例文件,覆盖旧的内容,完成用例文件的更新操作,得到更新后的用例,更新后的用例可以适用更新后的GTP模型。
在本实施例中,提供了一种用例更新方法,通过获取通用技术原语模型对应的更新信息列表和待更新用例的代码列表,所述更新信息列表包括更新信息和对应所述更新信息的更新操作;从所述代码列表中提取信息名以及所述信息名对应的索引;根据所述索引、所述信息名、所述更新信息以及所述更新操作,对所述代码列表进行更新;通过更新后的代码列表,对所述待更新用例进行更新。电子设备自动根据通用技术原语模型对应的更新信息列表,对待更新用例进行更新,并不需要技术人员手动进行更新操作,大大提高了更新操作的更新效率。
请参阅图2,图2示出了本申请实施例中代码列表的一种获取方法的流程图,方法可以用于电子设备,方法包括:
S210、根据预设文件夹类型和预设文件类型,确定对应所述待更新用例的用例文件的指定文件路径。
在本申请中,指定文件路径可以是指包括用例文件的文件夹路径以及对应的子文件夹路径,在不同的场景中,用户可以将用例文件存储于不同的文件夹路径下,对应的指定文件路径也不同。
用例文件可以存储在特定类型的文件夹下的,用例文件的文件类型也是特定的,该特定类型即是预设文件夹类型,该用例文件的文件类型即是预设文件类型,电子设备按照预设文件夹类型和预设文件类型,来确定用例文件存在的具体的文件路径,即指定文件路径。
在不同的场景中,对应的预设文件夹类型和预设文件类型可以不同。同一个场景可以存在多个用例文件,多个用例文件对应各自的预设文件夹类型和预设文件类型,遍历电子设备的存储空间搜索全部的预设文件夹类型的预设文件夹和预设文件类型的文件,以确定用例文件的指定文件路径。
S220、从所述指定文件路径获取所述用例文件。
可以利用isdir函数对搜索预设文件夹类型的文件夹,然后用isfile函数搜索预设文件夹类型的文件夹下的预设文件类型的用例文件。若搜索到对应的用例文件,则将用例文件对应的存储路径作为指定文件路径,若未搜索到对应的用例文件,则继续遍历电子设备的存储空间。
S230、通过代码读取函数以行为单位读取所述用例文件。
通过上述方法读取到用例文件之后,可以通过代码读取函数读取用例文件中的代码。代码读取函数可以是readlines函数,通过readlines函数读取用例文件,并将读取到的内容以行单位存储为代码列表。代码列表中代码的索引可以是代码所在行号。
在本实施例中,代码列表也是电子设备自动获取的,提高了代码列表的获取效率,进一步提高了用例更新效率。
请参阅图3,图3示出了本申请实施例提出的一种用例更新方法中S120的一种实施方式的流程图,方法可以用于电子设备,方法包括:
S310、根据开头标识符和结尾标识符从所述代码列表确定出目标代码行。
在本申请中,信息名包括参数名和端口名,对应的代码包括参数例化代码和端口例化代码,也就是说开头标识符包括参数例化代码的开头标识符和端口例化代码的开头标识符,结尾标识符包括参数例化代码的结尾标识符和端口例化代码的结尾标识符。
不同的场景中,参数例化代码和端口例化代码对应的开头标识符、结尾标识符不同。在一些具体的实施方式中,参数例化代码的开头标识符可以是指定的GTP名(用户可以根据需求和实际的GTP模型,设定指定的GTP名称),参数例化代码的结尾标识符可以与端口例化代码的开头标识符相同,均是指定的GTP例化名,端口例化代码的结尾标识符可以是“);”。
在代码列表中查询是否含有指定的GTP名(如:GTP_HSSTHP_LANE),若查询到了,则表示找到了参数例化代码的开头,记录下索引(例如行号,为start_line_num_param);若未查询到,则打印报错提示信息,并中断流程。查询是否含有用户指定的GTP例化名(如:u0_gtp_hssthp_lane),若查询到了,则表示找到了端口例化代码的开头(也是参数例化代码的结尾),记录下记录下索引(例如行号为start_line_num_port),继续查询是否含有“);”符号,若查询到了,则表示找到了端口例化代码的结尾,记录下索引(例如行号为end_line_num_port);若未查询到,则打印报错提示信息,并中断流程。此时,参数名对应的目标代码行是指start_line_num_param到为start_line_num_port之间的代码行,端口名对应的目标代码行是指为start_line_num_port到end_line_num_port之间的代码行。
S320、根据名标识符从所述目标代码行中提取出所述信息名。
S330、将所述信息名所在的行数确定为所述信息名对应的索引。
在本申请中,参数名和端口名对应的名标识符可以是“.”,参数例化名的名标识符可以是“()”。根据参数对应的名标识符在目标代码行中提取出参数名和参数例化名,并记录参数对应的行号,其中该行号即是参数对应的索引;根据端口对应的名标识符在目标代码行中提取出端口名,并记录端口对应的行号,其中该行号即是端口对应的索引。
在本实施例中,电子设备根据开头标识符、结尾标识符以及名称标识符提取对应的信息,提取效率和准确率较高,使得用例更新的准确率和效率较高。
请参阅图4,图4示出了本申请实施例提出的一种用例更新方法中S130的一种实施方式的流程图,方法可以用于电子设备,方法包括:
S410、根据所述更新信息中待更新的信息名和所述更新操作,在所述信息名中确定出选定信息名。
根据更新信息中包括的待更新信息的信息名和具体的更新操作,在提取出的信息名中确定出需要进行更新操作的信息名,即选定信息名。例如,根据参数更新信息中的参数名,在提取出的参数名中确定出对应的参数名,即选定参数名,又如,根据端口更新信息中的端口名,在提取出的端口名中确定出对应的端口名,即选定端口名。
S420、根据所述选定信息名的索引,在所述代码列表中确定代码更新区域。
将选定信息名对应的索引所在的代码区域确定为代码更新区域,例如,索引为行号时,可以将选定参数名所涉及的行号对应的代码行确定为代码更新区域,又如,可以将选定端口名所涉及的行号对应的代码行确定为代码更新区域。
S430、根据所述更新信息,对所述代码更新区域中的信息进行所述更新操作,以对所述代码列表进行更新。
确定出对应的代码更新区域,对确定出的代码更新区域进行相应的更新操作。其中,所述更新操作包括删除操作、添加操作和替换操作中的至少一种,所述更新操作中的操作按照优先级由高到低的顺序执行,所述删除操作的优先级高于所述添加操作的优先级,所述添加操作的优先级高于所述替换操作的优先级。换而言之,更新操作中包括删除操作时,删除操作最先执行,且待删除的信息均删除完成后,再执行添加操作,全部待添加的信息添加完成后,再执行替换操作。
在本申请中,更新信息包括参数更新信息和端口更新信息,可以根据参数更新信息对代码列表进行更新,也可以根据端口更新信息对代码列表进行更新。
其中,根据参数信息更新对代码列表进行更新的步骤如下:
对于删除操作:从更新信息列表中获取待删除的参数名,然后用此参数名去查询在用例文件中提取的参数名,在提取的参数名确定与待删除的参数名相同的选定参数名,根据选定参数名的索引,获得待删除的参数名在代码列表中的位置;根据索引,先执行代码列表的删除,再执行用例列表的删除;代码列表的删除分为两步,根据获得的索引,先删除参数例化处的代码,再删除参数定义处的代码,以更新代码列表;判断待删除的参数是否全部删除完成,若未完成,则继续按照上述步骤进行删除,若完成,则执行下面添加操作的步骤。
对于添加操作:获取待添加的参数名的前一个参数名,然后用此参数名去查询在用例文件中提取的参数名,在提取的参数名确定与待添加的参数名相同的选定参数名,根据选定参数名的索引,获得在代码列表中插入参数定义代码和例化代码的位置;根据获得的索引,先在参数例化处插入新增参数的例化代码,再在参数定义处插入该例化参数的定义代码,将参数更新列表中的配置值赋值给该参数(通常是参数的默认配置值);判断待添加的参数名是否全部新增完成,若不是,则执行上述添加流程;若是,则进入下面的步骤。
对于替换操作:获取替换前的参数名,然后用替换前的参数名去查询在用例文件中提取的参数名,在提取的参数名确定与待添加的参数名相同的选定参数名,根据选定参数名的索引,获得需要在代码列表中替换的参数名和例化参数名的代码行位置;根据获得的索引,先修改参数例化处的参数名(包括参数名和参数例化名都做修改),再修改参数定义处的参数名,让其与例化名保持一致;根据索引号判断待更名的参数是否全部更名完成,若不是最后一个元素,则跳到第七步继续执行上述流程;若是最后一个元素,则表示当前设计文件的所有参数更新任务均已完成。
根据端口信息更新对代码列表进行更新的步骤如下:
对于删除操作:从更新信息列表中获取待删除的端口名,然后用此端口名去查询在用例文件中提取的端口名,在提取的端口名确定与待删除的端口名相同的选定端口名,根据选定端口名的索引,获得待删除的端口名在代码列表中的位置;根据索引,先执行代码列表的删除,再执行用例列表的删除;代码列表的删除分为两步,根据获得的索引,先删除端口例化处的代码,再删除端口定义处的代码,以更新代码列表;判断待删除的端口是否全部删除完成,若未完成,则继续按照上述步骤进行删除,若完成,则执行下面添加操作的步骤。
对于添加操作:获取待添加的端口名的前一个端口名,然后用此端口名去查询在用例文件中提取的端口名,在提取的端口名确定与待添加的端口名相同的选定端口名,根据选定端口名的索引,获得在代码列表中插入端口定义代码和例化代码的位置;根据获得的索引,先在端口例化处插入新增端口的例化代码,再在端口定义处插入该例化端口的定义代码,将端口更新列表中的配置值赋值给该端口(通常是端口的默认配置值);判断待添加的端口名是否全部新增完成,若不是,则执行上述添加流程;若是,则进入下面的步骤。
对于替换操作:获取替换前的端口名,然后用替换前的端口名去查询在用例文件中提取的端口名,在提取的端口名确定与待添加的端口名相同的选定端口名,根据选定端口名的索引,获得需要在代码列表中替换的端口名和例化端口名的代码行位置;根据获得的索引,先修改端口例化处的端口名(包括端口名和端口例化名都做修改),再修改端口定义处的端口名,让其与例化名保持一致;根据索引号判断待更名的端口是否全部更名完成,若不是最后一个元素,则跳到第七步继续执行上述流程;若是最后一个元素,则表示当前设计文件的所有端口更新任务均已完成。
在端口和参数对应的更新操作均完成后,将完成更新后的代码列表重新插入当前打开的用例文件,覆盖旧的内容,完成用例文件的更新操作。
在本实施例中,电子设备根据所述索引、所述信息名、所述更新信息以及所述更新操作,对所述代码列表进行更新,不需要技术人员手动进行代码列表的更新,提高了用例更新效率。
请参阅图5,图5示出了本申请实施例中更新信息列表的一种获取方法的流程图,方法可以用于电子设备,方法包括:
S510、获取所述通用技术原语模型对应的新版通用技术原语模型文件和旧版通用技术原语模型文件。
GTP模型的新版通用技术原语模型文件是指更新后的GTP模型对应的文件,而GTP模型对应的旧版通用技术原语模型文件是指更新前的GTP模型对应的文件。
S520、根据起始字符串和结束字符串在所述新版通用技术原语模型文件中确定新版有效信息区域;并根据所述起始字符串和所述结束字符串在所述旧版通用技术原语模型文件中确定旧版有效信息区域。
在本申请中,参数对应的起始字符串和结束字符串,与端口对应的起始字符串和结束字符串是不同的,参数对应的参数更新信息用参数对应的起始字符串和结束字符串获取,端口对应的端口更新信息用端口对应的起始字符串和结束字符串获取。
其中,参数对应的起始字符串可以是“module”字符串,参数对应的结束字符串可以是“)(”字符串,端口对应的起始字符串可以是“)(”字符串,端口对应的结束字符串可以是“);”。
将新版通用技术原语模型文件中参数对应的起始字符串和结束字符串之间的区域确定为参数对应的新版有效信息区域,将新版通用技术原语模型文件中端口对应的起始字符串和结束字符串之间的区域确定为端口对应的新版有效信息区域,同理,将旧版通用技术原语模型文件中参数对应的起始字符串和结束字符串之间的区域确定为参数对应的旧版有效信息区域,将旧版通用技术原语模型文件中端口对应的起始字符串和结束字符串之间的区域确定为端口对应的旧版有效信息区域。
S530、在所述新版有效信息区域中提取包括目标关键字的新版语句,并在所述旧版有效信息区域中提取包括所述目标关键词的旧版语句。
S540、在所述新版语句中包括目标注释符时,从所述新版语句中提取新版信息。
S550、在所述旧版语句中包括目标注释符时,从所述旧版语句中提取旧版信息。
参数和端口对应的目标关键字可以均为“parameter”,参数和端口对应的目标注释符可以均包括“//”。当数据中的某个句子包括目标关键字时,将该句子确定为一个语句,当该语句不包括目标注释符时,该语句有效,可以用于提取信息,当该语句包括目标注释符时,该语句无效,不可以用于提取信息。换而言之,在新版GTP文件中,根据起始字符串和结束字符串确定出对应的新版有效信息区域之后,新版有效信息区域包括目标关键字的句子为新版语句,新版语句不包括目标注释符时,新版语句有效,可以对其进行信息提取操作,同理,在旧版GTP文件中,根据起始字符串和结束字符串确定出对应的旧版有效信息区域之后,旧版有效信息区域包括目标关键字的句子为旧版语句,旧版语句不包括目标注释符时,旧版语句有效,可以对其进行信息提取操作。
提取的新版信息可以包括参数对应的参数名和配置值(可以是默认配置值),新版信息还可以包括端口对应的端口名和配置值(可以是默认配置值),同理,提取的旧版信息可以包括参数对应的参数名和配置值(可以是默认配置值),旧版信息还可以包括端口对应的端口名和配置值(可以是默认配置值)。
可以是使用split函数将语句(新版语句或旧版语句)以“=”号为界限分成前后两部分,前半部分含有参数名,用rstrip函数去掉末尾空白符后,继续用split函数将空格后的参数名(或端口名)分离出来;后半部分含有参数配置值(或端口配置值),用rstrip函数去掉末尾空白符后,继续用split函数将空格后的参数配置值(或端口配置值)提取出来。
S560、将所述新版信息与所述旧版信息进行比对,得到更新信息和对应所述更新信息的更新操作。
S570、根据所述更新信息和所述更新操作,得到所述更新信息列表。
得到所述新版信息与所述旧版信息之后,将新版信息与旧版信息进行比对,确定新版信息与旧版信息不同的部分,该不同的部分即是更新信息。其中,新版信息与旧版信息相比较,多出的内容为添加的信息或更名的信息,然后进一步根据区间判断法进行多次比对,若确定是更名的信息,则对应替换操作,若确定是添加的信息,则对应的更新操作为添加操作;新版信息与旧版信息相比较,缺少的内容为删除的信息,该删除的信息为更新信息,对应的更新操作为删除操作。
将更新信息和对应的更新操作存储为列表,得到更新信息列表。在本申请中,根据参数更新信息和对应的参数更新操作,得到参数更新信息列表;根据端口更新信息和对应的端口更新操作,得到端口更新信息列表。
对于参数对应的参数更新列表的获得步骤如下:
读取新版GTP文件,将读取的结果存储为列表,在列表查找module字符串,若查到了该字符串,则表示找到了参数代码行的起始位置,记录下索引(例如行号为start_line_num_gtp),并继续查找“)(”符号,若查到了该符号,则表示找到了参数代码行的结束位置,记录下索引(例如行号为end_line_num_gtp)。其中,若module字符和“)(”符号都未查到,则中断流程;
根据parameter关键词搜索参数。在start_line_num_gtp与end_line_num_gtp的索引范围内,查找列表中含有“parameter”的新版语句,确定新版语句是否包括“//”,若包括,则表示新版语句中的参数无效,不用做参数提取;若不包括,则新版语句中的参数有效;
新版语句中提取出新版信息,新版信息包括:参数名称和配置值(可以是默认配置值),使用split函数将新版语句以“=”号为界限分成前后两部分,前半部分含有参数名,用rstrip函数去掉末尾空白符后,继续用split函数将空格后的参数名分离出来;后半部分含有配置值,使用rstrip函数去掉末尾空白符后,继续用split函数将空格后的配置值;
判断当前新版语句的索引与end_line_num_gtp的大小关系,若索引大于或等于end_line_num_gtp,则表示这已经是最后一个新版,所有的参数已经提取完成,可以直接生成GTP参数列表;若索引值小于end_line_num_gtp,则继续循环执行上述提取流程。
对于旧版信息(包括参数名称和配置值)也是按照上述方式,基于旧版GTP获得。
然后比对新版GTP的新版信息与旧版GTP的旧版信息,若新版信息中的元素在旧版信息中查不到,则表示该参数是待新增的或者待更名的,对于只更名的参数,需要采用区间判断法进行多次比对方可确定;若旧版信息中的元素在新版信息中查不到,则表示该参数是待删除的。比对完成后,即生成参数对应的更新信息列表。
对于端口对应的端口更新列表的获得步骤如下:
读取新版GTP文件,将读取的结果存储为列表,在列表查找“)(”字符串,若查到了该字符串,则表示找到了端口代码行的起始位置,记录下索引(例如行号为start_line_num_gtp),并继续查找“);”符号,若查到了该符号,则表示找到了端口代码行的结束位置,记录下索引(例如行号为end_line_num_gtp)。其中,若“)(”字符和“);”符号都未查到,则中断流程;
根据parameter关键词搜索端口。在start_line_num_gtp与end_line_num_gtp的索引范围内,查找列表中含有“parameter”的新版语句,确定新版语句是否包括“//”,若包括,则表示新版语句中的端口无效,不用做端口提取;若不包括,则新版语句中的端口有效;
新版语句中提取出新版信息,新版信息包括:端口名称和配置值(可以是默认配置值),使用split函数将新版语句以“=”号为界限分成前后两部分,前半部分含有端口名,用rstrip函数去掉末尾空白符后,继续用split函数将空格后的端口名分离出来;后半部分含有配置值,使用rstrip函数去掉末尾空白符后,继续用split函数将空格后的配置值;
判断当前新版语句的索引与end_line_num_gtp的大小关系,若索引大于或等于end_line_num_gtp,则表示这已经是最后一个新版,所有的端口已经提取完成,可以直接生成GTP端口列表;若索引值小于end_line_num_gtp,则继续循环执行上述提取流程。
对于旧版信息(包括端口名称和配置值)也是按照上述方式,基于旧版GTP获得。
然后比对新版GTP的新版信息与旧版GTP的旧版信息,若新版信息中的元素在旧版信息中查不到,则表示该端口是待新增的或者待更名的,对于只更名的端口,需要采用区间判断法进行多次比对方可确定;若旧版信息中的元素在新版信息中查不到,则表示该端口是待删除的。比对完成后,即生成端口对应的更新信息列表。
在本实施例中,更新信息列表也是电子设备自动获取的,并不需要技术人员手动获取,提高了更新信息列表的获取效率,进而提高了用例更新效率。
请参阅图6,图6示出了本申请实施例提出的一种用例更新装置的框图,所述装置600包括:
获取模块610,用于获取通用技术原语模型对应的更新信息列表和待更新用例的代码列表,所述更新信息列表包括更新信息和对应所述更新信息的更新操作;
提取模块620,用于从所述代码列表中提取信息名以及所述信息名对应的索引;
列表更新模块630,用于根据所述索引、所述信息名、所述更新信息以及所述更新操作,对所述代码列表进行更新;
用例更新模块640,用于通过更新后的代码列表,对所述待更新用例进行更新。
可选地,装置600还包括:
代码列表获取模块,用于根据预设文件夹类型和预设文件类型,确定对应所述待更新用例的用例文件的指定文件路径;从所述指定文件路径获取所述用例文件;通过代码读取函数以行为单位读取所述用例文件;将读取的结果以行为单位进行存储,得到所述代码列表。
可选地,提取模块620,还用于根据开头标识符和结尾标识符从所述代码列表确定出目标代码行;根据名标识符从所述目标代码行中提取出所述信息名;将所述信息名所在的行数确定为所述信息名对应的索引。
可选地,列表更新模块630,还用于根据所述更新信息中待更新的信息名和所述更新操作,在所述信息名中确定出选定信息名;根据所述选定信息名的索引,在所述代码列表中确定代码更新区域;根据所述更新信息,对所述代码更新区域中的信息进行所述更新操作,以对所述代码列表进行更新。
可选地,装置600还包括:
更新信息列表获取模块,用于获取所述通用技术原语模型对应的新版通用技术原语模型文件和旧版通用技术原语模型文件;根据起始字符串和结束字符串在所述新版通用技术原语模型文件中确定新版有效信息区域;并根据所述起始字符串和所述结束字符串在所述旧版通用技术原语模型文件中确定旧版有效信息区域;在所述新版有效信息区域中提取包括目标关键字的新版语句,并在所述旧版有效信息区域中提取包括所述目标关键词的旧版语句;在所述新版语句中包括目标注释符时,从所述新版语句中提取新版信息;在所述旧版语句中包括目标注释符时,从所述旧版语句中提取旧版信息;将所述新版信息与所述旧版信息进行比对,得到更新信息和对应所述更新信息的更新操作;根据所述更新信息和所述更新操作,得到所述更新信息列表。
本申请提供的一种用例更新装置,在该装置会获取通用技术原语模型对应的更新信息列表和待更新用例的代码列表,所述更新信息列表包括更新信息和对应所述更新信息的更新操作;从所述代码列表中提取信息名以及所述信息名对应的索引;根据所述索引、所述信息名、所述更新信息以及所述更新操作,对所述代码列表进行更新;通过更新后的代码列表,对所述待更新用例进行更新。电子设备中的该装置会自动根据通用技术原语模型对应的更新信息列表,对待更新用例进行更新,并不需要技术人员手动进行更新操作,大大提高了更新操作的更新效率。
需要说明的是,本申请中装置实施例与前述方法实施例是相互对应的,装置实施例中各个单元的具体实施原理与前述方法实施例中的原理是相似的,装置实施例中的具体内容可以参见方法实施例,而在装置实施例中不再赘述。
下面将结合图7对本申请提供的一种电子设备进行说明。
请参阅图7,基于上述的文本处理方法、装置,本申请实施例还提供的另一种可以执行前述文本处理方法的电子设备1000。电子设备1000包括相互耦合的一个或多个(图中仅示出一个)处理器102、存储器104、网络模块106、传感器模块108、图像采集器件110以及屏幕112。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
其中,处理器102可以包括一个或者多个用于处理数据的核。处理器102利用各种接口和线路连接整个电子设备1000内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备1000的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics ProcessingUnit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
存储器104可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
所述网络模块106用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。所述网络模块106可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。所述网络模块106可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。例如,网络模块106可以与基站进行信息交互。
传感器模块108可以包括至少一种传感器。具体地,传感器模块108可包括但并不限于:光传感器、运动传感器、压力传感器、红外热传感器、距离传感器、加速度传感器、以及其他传感器。
其中,压力传感器可以检测由按压在电子设备1000产生的压力的传感器。即,压力传感器检测由用户和电子设备之间的接触或按压产生的压力,例如由用户的耳朵与移动终端之间的接触或按压产生的压力。因此,压力传感器可以用来确定在用户与电子设备1000之间是否发生了接触或者按压,以及压力的大小。
其中,加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别所述电子设备1000姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等。另外,所述电子设备1000还可配置陀螺仪、气压计、湿度计、温度计等其他传感器,在此不再赘述。
图像采集器件110可以用于进行图像采集,从而使得电子设备1000可以将所采集的图像在屏幕112中进行显示。
请参考图8,图8示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1100中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1100可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1100包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1100具有执行上述方法中的任何方法步骤的程序代码1110的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1110可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种用例更新方法,其特征在于,用于电子设备,所述方法包括:
获取通用技术原语模型对应的更新信息列表和待更新用例的代码列表,所述更新信息列表包括更新信息和对应所述更新信息的更新操作;
从所述代码列表中提取信息名以及所述信息名对应的索引;
根据所述索引、所述信息名、所述更新信息以及所述更新操作,对所述代码列表进行更新;
通过更新后的代码列表,对所述待更新用例进行更新。
2.如权利要求1所述的方法,其特征在于,所述代码列表的获取方法包括:
根据预设文件夹类型和预设文件类型,确定对应所述待更新用例的用例文件的指定文件路径;
从所述指定文件路径获取所述用例文件;
通过代码读取函数以行为单位读取所述用例文件;
将读取的结果以行为单位进行存储,得到所述代码列表。
3.如权利要求1所述的方法,其特征在于,所述从所述代码列表中提取信息名以及所述信息名对应的索引包括:
根据开头标识符和结尾标识符从所述代码列表确定出目标代码行;
根据名标识符从所述目标代码行中提取出所述信息名;
将所述信息名所在的行数确定为所述信息名对应的索引。
4.如权利要求1所述的方法,其特征在于,所述根据所述索引、所述信息名、所述更新信息以及所述更新操作,对所述代码列表进行更新包括:
根据所述更新信息中待更新的信息名和所述更新操作,在所述信息名中确定出选定信息名;
根据所述选定信息名的索引,在所述代码列表中确定代码更新区域;
根据所述更新信息,对所述代码更新区域中的信息进行所述更新操作,以对所述代码列表进行更新。
5.如权利要求1所述的方法,其特征在于,所述更新信息列表的获取方法包括:
获取所述通用技术原语模型对应的新版通用技术原语模型文件和旧版通用技术原语模型文件;
根据起始字符串和结束字符串在所述新版通用技术原语模型文件中确定新版有效信息区域;并根据所述起始字符串和所述结束字符串在所述旧版通用技术原语模型文件中确定旧版有效信息区域;
在所述新版有效信息区域中提取包括目标关键字的新版语句,并在所述旧版有效信息区域中提取包括所述目标关键词的旧版语句;
在所述新版语句中包括目标注释符时,从所述新版语句中提取新版信息;
在所述旧版语句中包括目标注释符时,从所述旧版语句中提取旧版信息;
将所述新版信息与所述旧版信息进行比对,得到更新信息和对应所述更新信息的更新操作;
根据所述更新信息和所述更新操作,得到所述更新信息列表。
6.如权利要求1所述的方法,其特征在于,所述更新信息包括所述通用技术原语模型的参数更新信息和/或端口更新信息;所述信息名包括参数名以及所述参数名对应的参数例化名,和/或,所述信息名包括端口名。
7.如权利要求1所述的方法,其特征在于,所述更新操作包括删除操作、添加操作和替换操作中的至少一种,所述更新操作中的操作按照优先级由高到低的顺序执行,所述删除操作的优先级高于所述添加操作的优先级,所述添加操作的优先级高于所述替换操作的优先级。
8.一种用例更新装置,其特征在于,用于电子设备,所述装置包括:
获取模块,用于获取通用技术原语模型对应的更新信息列表和待更新用例的代码列表,所述更新信息列表包括更新信息和对应所述更新信息的更新操作;
提取模块,用于从所述代码列表中提取信息名以及所述信息名对应的索引;
列表更新模块,用于根据所述索引、所述信息名、所述更新信息以及所述更新操作,对所述代码列表进行更新;
用例更新模块,用于通过更新后的代码列表,对所述待更新用例进行更新。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210471227.9A CN114741315B (zh) | 2022-04-28 | 2022-04-28 | 用例更新方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210471227.9A CN114741315B (zh) | 2022-04-28 | 2022-04-28 | 用例更新方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114741315A true CN114741315A (zh) | 2022-07-12 |
CN114741315B CN114741315B (zh) | 2023-06-13 |
Family
ID=82285940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210471227.9A Active CN114741315B (zh) | 2022-04-28 | 2022-04-28 | 用例更新方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114741315B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101970465A (zh) * | 2007-10-09 | 2011-02-09 | 欧洲分子生物学实验室(Embl) | 能够结合rna帽的流感病毒pb2蛋白可溶性片段 |
CN107423214A (zh) * | 2017-04-18 | 2017-12-01 | 恒生电子股份有限公司 | 软件回归测试用例获取方法、装置及存储介质和电子设备 |
CN107832217A (zh) * | 2017-11-09 | 2018-03-23 | 政采云有限公司 | 一种自动化测试方法及装置 |
CN109117131A (zh) * | 2018-08-16 | 2019-01-01 | 杭州云纪网络科技有限公司 | 代码生成方法及装置、存储介质及电子终端 |
CN109189490A (zh) * | 2018-07-03 | 2019-01-11 | 武汉斗鱼网络科技有限公司 | 一种模块的配置方法及相关设备 |
CN109684326A (zh) * | 2018-11-13 | 2019-04-26 | 平安科技(深圳)有限公司 | 数据表创建方法、装置、设备及计算机可读存储介质 |
US20190205239A1 (en) * | 2016-05-17 | 2019-07-04 | International Business Machines Corporation | Code update based on detection of change in runtime code during debugging |
CN110795329A (zh) * | 2018-08-02 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 覆盖率测试方法及系统、处理器、存储介质 |
CN113190448A (zh) * | 2021-05-06 | 2021-07-30 | 网易(杭州)网络有限公司 | 测试代码更新方法及装置、电子设备、存储介质 |
CN114328852A (zh) * | 2021-08-26 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 一种文本处理的方法、相关装置及设备 |
-
2022
- 2022-04-28 CN CN202210471227.9A patent/CN114741315B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101970465A (zh) * | 2007-10-09 | 2011-02-09 | 欧洲分子生物学实验室(Embl) | 能够结合rna帽的流感病毒pb2蛋白可溶性片段 |
US20190205239A1 (en) * | 2016-05-17 | 2019-07-04 | International Business Machines Corporation | Code update based on detection of change in runtime code during debugging |
CN107423214A (zh) * | 2017-04-18 | 2017-12-01 | 恒生电子股份有限公司 | 软件回归测试用例获取方法、装置及存储介质和电子设备 |
CN107832217A (zh) * | 2017-11-09 | 2018-03-23 | 政采云有限公司 | 一种自动化测试方法及装置 |
CN109189490A (zh) * | 2018-07-03 | 2019-01-11 | 武汉斗鱼网络科技有限公司 | 一种模块的配置方法及相关设备 |
CN110795329A (zh) * | 2018-08-02 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 覆盖率测试方法及系统、处理器、存储介质 |
CN109117131A (zh) * | 2018-08-16 | 2019-01-01 | 杭州云纪网络科技有限公司 | 代码生成方法及装置、存储介质及电子终端 |
CN109684326A (zh) * | 2018-11-13 | 2019-04-26 | 平安科技(深圳)有限公司 | 数据表创建方法、装置、设备及计算机可读存储介质 |
CN113190448A (zh) * | 2021-05-06 | 2021-07-30 | 网易(杭州)网络有限公司 | 测试代码更新方法及装置、电子设备、存储介质 |
CN114328852A (zh) * | 2021-08-26 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 一种文本处理的方法、相关装置及设备 |
Non-Patent Citations (4)
Title |
---|
COSMIN MARSAVINA 等: "Studying Fine-Grained Co-evolution Patterns of Production and Test Code", 《2014 IEEE 14TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION》, pages 195 - 204 * |
天堂炼狱: "allure动态更新用例", Retrieved from the Internet <URL:《https://www.cnblogs.com/look888/p/15180381.html》> * |
王斯南: "利用产品-测试代码共同演化预测测试用例更新状态", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 1, pages 138 - 416 * |
石轩: "基于UVM的验证环境自动化生成和测试用例的标准化设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2, pages 135 - 416 * |
Also Published As
Publication number | Publication date |
---|---|
CN114741315B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107368550B (zh) | 信息获取方法、装置、介质、电子设备、服务器及系统 | |
CN107341014A (zh) | 电子设备、技术文档的生成方法及装置 | |
CN107885483B (zh) | 音频信息的校验方法、装置、存储介质及电子设备 | |
CN108536745B (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
CN109522405A (zh) | 文件信息处理方法、电子设备以及计算机可读存介质 | |
CN112784112A (zh) | 报文校验方法及装置 | |
CN116955720A (zh) | 数据处理方法、装置、设备、存储介质及计算机程序产品 | |
CN104657668A (zh) | 一种终端 | |
CN107798004B (zh) | 关键词查找方法、装置及终端 | |
CN108737487B (zh) | 数据同步方法和装置、存储介质及电子装置 | |
CN112559913A (zh) | 一种数据处理方法、装置、计算设备及可读存储介质 | |
CN112579944A (zh) | 一种页面跳转处理方法、装置以及电子设备 | |
CN114741315B (zh) | 用例更新方法、装置、电子设备及存储介质 | |
CN106686588B (zh) | 一种无线保真Wi-Fi连接方法及移动终端 | |
CN115795544A (zh) | 文件安全属性存储方法及相关装置 | |
CN110221874A (zh) | 快速启动应用的方法、装置及设备 | |
CN106648671B (zh) | 一种应用升级方法及终端 | |
CN115454554A (zh) | 文本描述的生成方法、装置、终端及存储介质 | |
CN112101023A (zh) | 文本处理方法、装置以及电子设备 | |
CN114121013A (zh) | 语音控制方法、装置、电子设备及存储介质 | |
CN110147531B (zh) | 一种相似文本内容的识别方法、装置及存储介质 | |
CN107050851B (zh) | 一种游戏内容效果的声音加强方法及系统 | |
CN113762038A (zh) | 视频文本的识别方法和装置、存储介质及电子设备 | |
CN114547184A (zh) | 人员信息同步方法、终端设备及存储介质 | |
CN105787032A (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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Wen Changqing Inventor after: Huang San Inventor after: Zhang Yong Inventor before: Huang San Inventor before: Zhang Yong Inventor before: Wen Changqing |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |