一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用例生成方法、装置和计算机可读存储介质及电子设备与流程

2022-05-18 14:59:04 来源:中国专利 TAG:


1.本技术涉及通信领域,尤其涉及一种用例生成方法、装置和计算机可读存储介质及电子设备。


背景技术:

2.随着网络技术的发展,作为网络设备中重要的一种,交换机技术也在发生着日新月异的变化。当前,已经出现了switch chip driver(交换机芯片驱动,scd)作为交换机的芯片向上提供统一的api,向下对接不同的asic,使得sonic(software for open networking in the cloud,云上开放网络软件)和上层app可运行在不同的硬件平台上。
3.但是在基于scd的产品开发中,由于scd头文件只提供了scd header定义,因此芯片厂商需要将其进行再实现,并提供二进制文件供芯片使用者使用。但是在使用该芯片的产品的测试过程中,测试人员需要花很大精力去分析scd api、属性和数据类型,分析scd api与业务关系,分析业务场景和构造验证流量报文,且scd api的测试与scd api开发实现存在理解和效率的鸿沟,对scd api使用和调用顺序存在困惑,无法有效保证快速验证scdapi的完整性,这极大地影响了基于scd的产品的测试效率。


技术实现要素:

4.本技术实施例提供一种用例生成方法、装置和计算机可读存储介质及电子设备,以解决现有技术中对于scd api测试效率低的缺陷。
5.为达到上述目的,本技术实施例提供了一种用例生成方法,包括:
6.针对目标代码进行分析以获得应用程序编程接口api调用示例以及业务依赖关系;
7.针对所述api调用示例生成命令行接口cli配置以及流量数据;
8.根据下发给被测目标设备的cli配置生成对应的scd api函数和参数调用日志;
9.根据cli配置、流量数据和用例信息、scd api函数和参数调用日志生成cli与scd api函数的关系以及业务与流量的关系;
10.根据cli执行顺序、api调用示例、cli与scd api参数关系以及业务与流量数据的关系生成当前测试用例。
11.本技术实施例还提供了一种用例生成装置,包括:
12.分析模块,用于针对目标代码进行分析以获得应用程序编程接口api调用示例以及业务依赖关系;
13.第一生成模块,用于针对所述api调用示例生成命令行接口cli配置以及流量数据;
14.第二生成模块,用于根据下发给被测目标设备的cli配置生成对应的scd api函数和参数调用日志。
15.第三生成模块,根据cli配置、流量数据和用例信息、scd api函数和参数调用日志
networking in the cloud,云上开放网络软件)和上层app可运行在不同的硬件平台上。
31.例如,如图1中所示,在操作系统部分中设置有scd层,其向上对接有控制栈,在控制栈中可以设置有各种api,尤其是实现基本转发操作的核心api。向下则可以对接有各种适配器,这些适配器可以是各种兼容的scd适配器,通过这些适配器可以使得与硬件对接。
32.在现有的scd规范中,控制栈中的scd api可以包括三种类型:必选函数,其可以是scd对接的控制栈所需的基本转发操作的核心api。所有适配器实现必须支持这些功能;可选函数,其可以是在兼容的scd适配器实现中定义,但不是必需的一组附加功能。它们可以以标准方式启用非核心转发功能,只有使用它们的控制栈实现才需要它们;用户自定义函数,其可以是兼容的scd适配器实现既未定义,也未要求的附加功能集。
33.因此,在现有技术中已经提出了为scd api定制的scd-rtf(remotetesting framework远程测试框架)测试框架,通过idl(interface descriptionlanguage)接口描述语言和rpc(remote procedure call)远程过程调用技术实现基于函数级接口测试,解决芯片驱动在线业务测试难问题。但是,芯片驱动测试一般离线或单元测试偏多,场景测试验证不足,无法做到像本地调用一样调用远程服务,有效、精准地补充在线业务场景测试,业务与驱动在线相融合验证,从而增强芯片驱动软件质量。
34.在基于scd的产品开发中,由于scd头文件只提供了scd header定义,因此通常需要将其进行再实现,并提供二进制文件供芯片使用者使用。但是在使用该芯片的产品的测试过程中,测试人员需要花很大精力去分析scdapi、属性和数据类型,分析scd api与业务关系,分析业务场景和构造验证流量报文,且scd api的测试与scd api开发实现存在理解和效率的鸿沟,对scd api使用和调用顺序存在困惑,无法有效保证快速验证scd api的完整性,这极大地影响了基于scd的产品的测试效率。
35.为此,在本技术实施例中,提出了一种用例生成方法。在该生成方法中,可以从代码服务器获取网络设备所对应的代码版本,根据代码特点制定对应识别规则,代码静态分析利用既定的规则进行分析,得到api调用示例,cli与业务关系,以及业务依赖关系,并将分析结果存储到数据库分析记录模块。
36.例如,可以先对代码进行静态分析,以获取api调用示例、cli与业务关系和业务依赖关系组成。具体地,例如可以通过业务代码抽象语法树遍历,根据scd api、scd api属性和scd api数据类型的特点制定对应识别规则,获取到api调用示例。通过cli代码遍历,提炼出cli框架特点,并定制识别规则,获取到cli与业务关系;通过scd、业务代码抽象语法树遍历,提炼出scd业务特点,并制定识别规则,获取到业务依赖关系。
37.在本技术实施例中,可以由执行服务器与被测网络设备组成测试环境。如上确定了api调用示例和业务依赖关系之后。执行服务器可以通过自动化脚本或手工触发等方式向测试目标设备下发cli配置以及流量数据,从而可以采集服务器上的日志信息以将这些信息和用例信息传递到例如用例动态分析模块。之后,被测目标设备可以在初始时配置对应的日志等级,以根据下发的cli配置来触发对应scd api函数和参数调用日志,从而被测目标设备上的日志采集将这些日志上传到用例动态分析模块。
38.之后就可以根据cli配置日志,流量数据和用例信息,以及scd api函数和参数调用日志,通过例如规则引擎来提取出cli与scd api函数/参数关系,并将其存储到数据库分析记录模块。
39.之后,可以根据数据库分析记录信息,利用cli执行顺序,生成scd api用例执行顺序。利用api调用示例,生成scd api的属性和数据类型。利用cli与scd api参数关系。生成scd api数据类型参数配置。利用业务与流量关系,生成scd api用例流量配置。再根据scd-rtf框架模板,将以上信息进行组合成新的用例,即当前测试用例。
40.因此,根据本技术实施例,在获得了当前测试用例之后,还可以将新生成的当前测试用例下发到例如scd-rtf所在的服务器,通过scd-rtf执行该新生成的当前测试用例,从而被测目标设备收到新生成的当前测试用例scd api调用,可以生成对应的scd api调用日志。
41.根据scd-rtf和测试用例的标识信息,例如标签来识别在该当前测试用例生成之前的前次测试用例,并对函数调用日志进行解析和比较,以计算相似度。如果相似度达到预定阈值,则可以确定该当前测试用例合格,否则判断失败。
42.因此,根据本技术实施例的用例生成方案,通过针对目标代码进行分析来获取调用示例和业务依赖关系,生成cli配置和流量数据,进而根据被下发了cli配置的目标设备生成的scd api函数和参数调用日志,进而根据上述信息生成这些信息之间的关系,并最终生成当前测试用例。因此,大大降低了在scd api测试中对于测试人员的专业要求,并且省去了测试人员需要人工分析和编写脚本的工作,大大提高了测试效率。
43.图2为本技术提供的用例生成方法一个实施例的流程图。如图2所示,该用例生成方法可以包括如下步骤:
44.s201,针对目标代码进行分析以获得应用程序编程接口api调用示例以及业务依赖关系。
45.在本技术实施例中,可以在步骤s201中对代码进行静态分析,以获取api调用示例、cli与业务关系和业务依赖关系组成。具体地,可以从各种存储代码的代码服务器来获取目标代码,或者也可以由测试人员手工上传代码作为目标代码。从而在步骤s201中可以例如可以通过业务代码抽象语法树遍历,根据scd api、scd api属性和scd api数据类型的特点制定对应识别规则,获取到api调用示例。通过cli代码遍历,提炼出cli框架特点,并定制识别规则,获取到cli与业务关系;通过scd、业务代码抽象语法树遍历,提炼出scd业务特点,并制定识别规则,获取到业务依赖关系。
46.s202,针对api调用示例生成命令行接口cli配置以及流量数据。
47.在步骤s201中获取了api调用示例之后,可以在步骤s202中从例如存储了scd-ptf框架的执行服务器在执行用例过程中记录的各种信息的数据库中根据步骤s201中获取的api调用示例来生成cli配置以及流量数据。
48.s203,根据下发给被测目标设备的cli配置生成对应的scd api函数和参数调用日志。
49.s204,根据cli配置、流量数据和用例信息、scd api函数和参数调用日志生成cli与scd api函数的关系以及业务与流量的关系。
50.在步骤s203中,可以将通过例如自动化脚本或手工触发而生成的cli配置下发给被测目标设备,例如被测网络设备来生成对应的scd api函数和对应的参数调用日志。例如api通过自动化脚本或手工触发等方式向测试目标设备下发cli配置以及流量数据,从而可以采集服务器上的日志信息以将这些信息和用例信息传递到例如用例动态分析模块。之
后,被测目标设备可以在初始时配置对应的日志等级,以根据下发的cli配置来触发对应scd api函数和参数调用日志,从而被测目标设备上可以通过日志采集而将这些日志上传到用例动态分析模块。
51.从而在步骤s204中可以根据步骤s203中生成的scd以及scd api函数和参数调用日志,通过例如规则引擎来提取出cli与scd api函数/参数关系,并可以将其存储到例如数据库分析记录模块。
52.s205,根据cli执行顺序、api调用示例、cli与scd api参数关系以及业务与流量数据的关系生成当前测试用例。
53.可以根据数据库分析记录信息,利用cli执行顺序,生成scd api用例执行顺序。利用api调用示例,生成scd api的属性和数据类型。利用cli与scd api参数关系。生成scd api数据类型参数配置。利用业务与流量关系,生成scd api用例流量配置。再根据scd-rtf框架模板,将以上信息进行组合成新的用例,即当前测试用例。
54.因此,根据本技术实施例,在获得了当前测试用例之后,还可以将新生成的当前测试用例下发到例如scd-rtf所在的服务器,通过scd-rtf执行该新生成的当前测试用例,从而被测目标设备收到新生成的当前测试用例scd api调用,可以生成对应的scd api调用日志。
55.此外,根据本技术实施例的方法还可以进一步包括:根据当前测试用例的标识确定执行测试用例的服务器上在所述当前测试用例之前执行的前次测试用例;计算当前测试用例与前次测试用例的函数调用日志的相似度;根据相似度确定所述当前测试用例的合格度。
56.因此,在本技术实施例中,在生成当前测试用例之后,还可以根据scd-rtf和当前测试用例的标识信息,例如标签来识别在该当前测试用例生成之前的前次测试用例,并对函数调用日志进行解析和比较,以计算相似度。如果相似度达到预定阈值,则可以确定该当前测试用例合格,否则判断失败。
57.根据本技术实施例的用例生成方案,通过针对目标代码进行分析来获取调用示例和业务依赖关系,根据业务依赖关系来生成cli配置和流量数据,进而根据被下发了cli配置的目标设备生成的scd api函数和参数调用日志,进而根据上述信息生成这些信息之间的关系,并最终生成当前测试用例。因此,大大降低了在scd api测试中对于测试人员的专业要求,并且省去了测试人员需要人工分析和编写脚本的工作,大大提高了测试效率。
58.图3为本技术提供的用例生成装置一个实施例的结构示意图,可用于执行如图2所示的方法步骤。如图3所示,该用例生成装置可以包括:分析模块31、第一生成模块32、第二生成模块33、第三生成模块34和用例生成模块35。
59.分析模块31可以用于针对目标代码进行分析以获得应用程序编程接口api调用示例以及业务依赖关系。
60.在本技术实施例中,分析模块31可以对代码进行静态分析,以获取api调用示例、cli与业务关系和业务依赖关系组成。具体地,可以从各种存储代码的代码服务器来获取目标代码,或者也可以由测试人员手工上传代码作为目标代码。从而可以例如可以通过业务代码抽象语法树遍历,根据scd api、scd api属性和scd api数据类型的特点制定对应识别规则,获取到api调用示例。通过cli代码遍历,提炼出cli框架特点,并定制识别规则,获取
到cli与业务关系;通过scd、业务代码抽象语法树遍历,提炼出scd业务特点,并制定识别规则,获取到业务依赖关系。
61.第一生成模块32可以用于针对api调用示例生成命令行接口cli配置以及流量数据。
62.分析模块31获取了api调用示例之后,第一生成模块32可以从例如存储了scd-ptf框架的执行服务器在执行用例过程中记录的各种信息的数据库中根据步骤s201中获取的api调用示例来生成cli配置以及流量数据。
63.第二生成模块33可以用于根据下发给被测目标设备的cli配置生成对应的scd api函数和参数调用日志。
64.第三生成模块34可以用于根据cli配置、流量数据和用例信息、scd api函数和参数调用日志生成cli与scd api函数的关系以及业务与流量的关系。
65.第二生成模块33可以将通过例如自动化脚本或手工触发而生成的cli配置下发给被测目标设备,例如被测网络设备来生成对应的scd api函数和对应的参数调用日志。例如api通过自动化脚本或手工触发等方式向测试目标设备下发cli配置以及流量数据,从而可以采集服务器上的日志信息以将这些信息和用例信息传递到例如用例动态分析模块。之后,被测目标设备可以在初始时配置对应的日志等级,以根据下发的cli配置来触发对应scd api函数和参数调用日志,从而被测目标设备上可以通过日志采集而将这些日志上传到用例动态分析模块。
66.从而第三生成模块34可以根据步骤s203中生成的scd以及scd api函数和参数调用日志,通过例如规则引擎来提取出cli与scd api函数/参数关系,并可以将其存储到例如数据库分析记录模块。
67.用例生成模块35可以用于根据cli执行顺序、api调用示例、cli与scdapi参数关系以及业务与流量数据的关系生成当前测试用例。
68.可以根据数据库分析记录信息,利用cli执行顺序,生成scd api用例执行顺序。利用api调用示例,生成scd api的属性和数据类型。利用cli与scd api参数关系。生成scd api数据类型参数配置。利用业务与流量关系,生成scd api用例流量配置。再根据scd-rtf框架模板,将以上信息进行组合成新的用例,即当前测试用例。
69.因此,根据本技术实施例,在获得了当前测试用例之后,还可以将新生成的当前测试用例下发到例如scd-rtf所在的服务器,通过scd-rtf执行该新生成的当前测试用例,从而被测目标设备收到新生成的当前测试用例scd api调用,可以生成对应的scd api调用日志。
70.此外,在本技术实施例中,在生成当前测试用例之后,还可以根据scd-rtf和当前测试用例的标识信息,例如标签来识别在该当前测试用例生成之前的前次测试用例,并对函数调用日志进行解析和比较,以计算相似度。如果相似度达到预定阈值,则可以确定该当前测试用例合格,否则判断失败。
71.根据本技术实施例的用例生成装置,通过针对目标代码进行分析来获取调用示例和业务依赖关系,根据业务依赖关系来生成cli配置和流量数据,进而根据被下发了cli配置的目标设备生成的scd api函数和参数调用日志,进而根据上述信息生成这些信息之间的关系,并最终生成当前测试用例。因此,大大降低了在scd api测试中对于测试人员的专
业要求,并且省去了测试人员需要人工分析和编写脚本的工作,大大提高了测试效率。
72.以上描述了用例生成装置的内部功能和结构,该装置可实现为一种电子设备。图4为本技术提供的电子设备实施例的结构示意图。如图4所示,该电子设备包括存储器41和处理器42。
73.存储器41,用于存储程序。除上述程序之外,存储器41还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
74.存储器41可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
75.处理器42,不仅仅局限于中央处理器(cpu),还可能为图形处理器(gpu)、现场可编辑门阵列(fpga)、嵌入式神经网络处理器(npu)或人工智能(ai)芯片等处理芯片。处理器42,与存储器41耦合,执行存储器41所存储的程序,该程序运行时执行上述实施例的用例生成方法。
76.进一步,如图4所示,电子设备还可以包括:通信组件43、电源组件44、音频组件45、显示器46等其它组件。图4中仅示意性给出部分组件,并不意味着电子设备只包括图4所示组件。
77.通信组件43被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如wifi、3g、4g或5g,或它们的组合。在一个示例性实施例中,通信组件43经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件43还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
78.电源组件44,为电子设备的各种组件提供电力。电源组件44可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
79.音频组件45被配置为输出和/或输入音频信号。例如,音频组件45包括一个麦克风(mic),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器41或经由通信组件43发送。在一些实施例中,音频组件44还包括一个扬声器,用于输出音频信号。
80.显示器46包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
81.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
82.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽
管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献