CN112564997A - 网络功能的验证方法、开发系统、计算机设备及存储介质 - Google Patents

网络功能的验证方法、开发系统、计算机设备及存储介质 Download PDF

Info

Publication number
CN112564997A
CN112564997A CN202011160375.6A CN202011160375A CN112564997A CN 112564997 A CN112564997 A CN 112564997A CN 202011160375 A CN202011160375 A CN 202011160375A CN 112564997 A CN112564997 A CN 112564997A
Authority
CN
China
Prior art keywords
path
test
time
test data
network function
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
CN202011160375.6A
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.)
Tuling Artificial Intelligence Institute Nanjing Co ltd
Original Assignee
Tuling Artificial Intelligence Institute Nanjing Co 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 Tuling Artificial Intelligence Institute Nanjing Co ltd filed Critical Tuling Artificial Intelligence Institute Nanjing Co ltd
Priority to CN202011160375.6A priority Critical patent/CN112564997A/zh
Publication of CN112564997A publication Critical patent/CN112564997A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • 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
    • 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/3688Test management for test execution, e.g. scheduling of test suites
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种网络功能的验证方法、开发系统、计算机设备及存储介质。其中,所述验证方法包括以下步骤:在包含独立计时的时间‑路径约束机制的约束下,对待测试的网络功能中的执行路径进行测试,以得到相应执行路径的包含路径测试数据及其对应的时间测试数据的测试数据;其中所述测试数据用于对所述网络功能中相应执行路径进行验证。本申请利用开发系统中提供的可独立运行的包含计时的运行机制的验证方式,增加了各执行路径的包含时间测试数据的测试结果,如此能够便于技术人员进行高效、准确地验证操作。

Description

网络功能的验证方法、开发系统、计算机设备及存储介质
技术领域
本申请涉及软件测试的技术领域,尤其涉及一种网络功能的验证方法、开发系统、计算机设备及存储介质。
背景技术
软件测试是软件开发过程中常被用来验证网络功能的手段。网络功能是否准确表达、能否稳定运行、甚至对异常的可靠性收集等,都需要软件测试来进行验证。
然而,一些网络功能中的执行路径是需要与外围调用程序中的逻辑进行配合,以实现与应用场景相关的功能输出,这使得一些如受时间约束的执行路径在测试时易出现因环境因素的影响而导致的测试遗漏、测试错误等情况。
发明内容
鉴于以上所述相关技术的缺点,本申请的目的在于提供一种网络功能的验证方法、开发系统、计算机设备及存储介质,用于解决现有技术中未提供针对网络功能中的一些与环境因素相关的执行路径如何高效地实现测试分析的问题。
为实现上述目的及其他相关目的,本申请的第一方面提供一种网络功能的验证方法,其中包括以下步骤:在包含独立计时的时间-路径约束机制的约束下,对待测试的网络功能中的执行路径进行测试,以得到相应执行路径的包含路径测试数据及其对应的时间测试数据的测试数据;其中,所述测试数据用于对所述网络功能中受时间约束的执行路径进行验证。
在第一方面的某些实施方式中,所述时间-路径约束机制是通过执行配置在独立于所述执行路径的测试程序中的第一程序,和/或执行配置在所述执行路径的测试程序中的第二程序而形成的。
在第一方面的某些实施方式中,运行所述时间-路径约束机制时和在对所述执行路径进行测试时共享约束数据。
在第一方面的某些实施方式中,采用并行处理方式运行所述时间-路径约束机制的线程和测试所述执行路径的线程。
在第一方面的某些实施方式中,所述对待测试的网络功能的执行路径进行测试的步骤包括:在所接收到的测试数据包时,运行所述时间-路径的约束机制;在所述约束机制的限制下,根据对应不同执行路径的测试条件,将所述测试数据包转入相应执行路径以便进行传输处理。
在第一方面的某些实施方式中,所述对待测试的网络功能的执行路径进行测试的步骤包括:运行所述时间-路径的约束机制;在所述约束机制的限制下,根据对应不同执行路径的测试条件,将所接收到的测试数据包转入相应执行路径以便进行传输处理。
在第一方面的某些实施方式中,所述方法还包括:分析测试数据以对所述网络功能中相应执行路径进行验证的步骤包括以下至少一种:分析路径测试数据及其时间测试数据之间的对应关系,以对所述网络功能中各执行路径进行验证;依据时间测试数据和路径测试数据中的一种测试数据,统计时间测试数据和路径测试数据中的另一种测试数据,以对所述网络功能中各执行路径进行验证;以及分析所述测试数据以筛选出所述网络功能中无效的执行路径。
在第一方面的某些实施方式中,所述时间-路径约束机制用于对执行路径提供以下至少一种时间上的约束:执行路径的有效状态的约束、和数据流量的约束。
在第一方面的某些实施方式中,所测试的网络功能中包含多条执行路径;所述对待测试的网络功能中的执行路径进行测试的步骤包括:对利用分支逻辑而构建的对应每一路径的执行路径进行测试,得到对应不同分支逻辑的测试数据。
在第一方面的某些实施方式中,利用符号执行引擎执行所述在包含独立计时的时间-路径约束机制的约束下对待测试的网络功能中的执行路径进行测试的步骤。
本申请的第二方面还提供一种网络功能的开发系统,其中包括:人机交互模块,包括编辑界面和包含测试选项的工具栏;其中,所述编辑界面用于供技术人员构建用于验证网络功能中各执行路径的测试代码;其中,所述测试代码中包含用于提供独立计时的代码;验证模块,用于在检测到测试选项被触发时,将所述测试代码转换为测试程序;以及调用所述测试程序以执行如上述第一方面所述的验证方法。
在第二方面的某些实施方式中,网络功能的开发系统还包括:代码库,用于提供至少一个代码;所述代码库中包含所述用于提供独立计时的代码。
在第二方面的某些实施方式中,所述测试代码包含有至少一个代码,以描述将网络功能中至少具有时间约束的各执行路径关联于相应时间-路径约束机制的逻辑。
本申请的第三方面提供一种用于验证网络功能的计算机设备,其中包括:存储装置,用于存储至少一个程序;处理装置,与所述存储装置相连,用于执行所述至少一种程序,以协调所述存储装置执行如上述第一方面所述的网络功能的验证方法。
本申请的第四方面提供一种计算机可读存储介质,其中,存储至少一种程序,所述至少一种程序在被调用时执行并实现如上述第一方面所述的网络功能的验证方法。
综上所述,本申请所提供的开发方法和验证方法利用开发系统中提供的可独立运行的包含计时的运行机制的测试工具包,如可提供相应运行机制的代码库等,增加了各执行路径的包含时间测试数据的测试结果,更便于技术人员进行高效、准确地验证操作。另外,利用共享约束数据来并行运行测试操作和运行约束机制,有效减少在独立计时超时时,测试操作响应不及时等情况。
附图说明
本申请所涉及的发明的具体特征如所附权利要求书所显示。通过参考下文中详细描述的示例性实施方式和附图能够更好地理解本申请所涉及发明的特点和优势。对附图简要说明书如下:
图1显示为计算机设备的硬件结构的模块化示意图。
图2显示为本申请的软件开发方法的流程示意图。
图3显示为本申请的呈现给技术人员的编辑界面的界面排版示意图。
图4显示为本申请的网络功能的验证方法的流程示意图。
图5显示为本申请的开发系统的架构示意图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。
在下述描述中,参考附图,附图描述了本申请的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本公开的精神和范围的情况下进行模块或单元组成、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本申请的实施例的范围仅由公布的专利的权利要求所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本申请。
虽然,在一些实例中术语第一、第二等在本文中用来描述各种元件、信息或参数,但是这些元件或参数不应当被这些术语限制。这些术语仅用来将一个元件或参数与另一个元件或参数进行区分。例如,第二程序可以被称作第一程序,并且类似地,第一程序可以被称作第二程序,而不脱离各种所描述的实施例的范围。第二程序和第一程序均是在描述一个程序,但是除非上下文以其他方式明确指出,否则它们不是同一个程序。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
对于复杂的数据传输系统来说,数据传输系统中的网络功能(NetworkFunctions,NF),;都可能因自身及其上下游逻辑、环境因素等产生如稳定性、正确性等影响功能稳定性的异常。因此,对网络功能中各执行路径的验证不仅与执行路径的逻辑本身有关,还与执行路径执行的影响因素有关。其中,所述执行路径是网络功能中基于传输配置而对所接收的数据包进行分析,以将数据包从端口转出或丢弃的程序执行过程。
以网络功能虚拟化(Network Functions Virtualization,NFV)中虚拟化的网络功能为例,网络功能中包含通过分析网络传输协议中的标识信息而执行将数据包转发、或丢弃等操作的多种执行路径。其中,所述执行路径包括基于数据包处理逻辑而确定数据包出口的过程,如根据防火墙过滤机制而设置的执行路径,和/或基于流量控制机制而设置的执行路径等。在此,其中的一些执行路径是受时间约束的。例如,所述防火墙过滤机制中包含依据时间而设置的路径状态。又如,所述流量控制机制中包含依据时间而设置的流量限制令牌。
为实现数据传输而设计的流量控制功能、维持点对点通信功能、防火墙过滤功能等网络功能中也包含受时间约束的执行路径,在此不一一举例。
在验证网络功能中的各执行路径时,上述提及的时间约束可利用约束数据来表达,所述约束数据举例包括以下至少一种:用于描述执行路径在时间约束期间内有效以及在时间约束期间外无效的参数,用于计时时间约束的时长的参数,或用于标记时间约束起止时刻的参数等。这使得网络功能中的受时间约束的执行路径需要在相应约束数据表示受时间约束/不受时间约束的情况下进行执行路径是否有效的验证。例如,在测试程序中设置表示时间约束的测试时长,并在时间约束的时长内验证执行路径是否有效,若是,则表示验证通过,反之,则表示验证未通过。上述验证执行路径的方式由于采用预设不可变的测试时长,使得一次测试示例仅能验证网络功能中的一条执行路径,验证效率低、漏测风险大。
在批量测试网络功能中多条执行路径时,上述举例的方式容易造成测试错误。例如,利用符号执行的方式在时间超时后输入测试数据包,所述网络功能仍按照时间约束的状态进行测试,从而导致将错误的执行路径验证成正确的执行路径,或者将正确的执行路径验证成错误的执行路径。为解决在时间约束下批量测试的问题,在一些示例中,利用符号执行的方式构建如计数递减等循环逻辑,但这容易产生路径爆炸等不利于高效验证执行路径的其他易于出现的测试问题。
为了高效地对网络功能中多执行路径的测试分析,本申请提供一种网络功能的验证方法,其通过构建独立计时的时间-路径约束机制,约束网络功能中某一执行路径的约束数据,并对网络功能中的多个执行路径进行测试;以及利用测试所得到的包含路径测试数据及其对应的时间测试数据的测试数据进行分析,以验证各执行路径的有效性。其中,所述有效性表示执行路径可被执行、输出正确、以及受时间约束。
所述验证方法可由网络功能的开发系统来执行。其中,所述开发系统为供技术人员开发软件模块和验证所开发的软件模块的软件系统,其被配置运行在计算机设备的操作系统上。计算机设备中的处理装置按照软件系统中的指令序列协调计算机设备中的存储装置、显示屏、和输入装置等硬件结构执行网络功能的开发过程和验证过程。
请参阅图1,其显示为计算机设备的硬件结构的模块化示意图。其中,所述显示屏13作为计算机设备与技术人员交互的输出装置,用于显示技术人员所输入的代码文本,包括测试代码、和网络功能的代码等。所述输入装置12为技术人员计算机设备与交互的装置,其包括:键盘、触屏、鼠标中的至少一种。
所述计算机设备中的存储装置10包括但不限于:只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、非易失性存储器(NonvolatileRAM,简称NVRAM)。例如,存储装置包括闪存设备或其他非易失性固态存储设备。在某些实施例中,存储装置还可以包括远离一个或多个处理装置的存储器,例如经由RF电路或外部端口以及通信网络访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网、广域网、存储局域网等,或其适当组合。存储器控制器可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问。在本申请的实施例中,所述存储装置所存储的程序用于供技术人员执行网络功能的开发操作,以及用于供技术人员利用本申请所提供的验证方法对所开发的网络功能进行验证操作。
处理装置11与所述存储装置10、输入装置12和显示屏13数据相连。所述处理装置11包括一个或多个处理器。处理装置11可操作地与存储装置执行数据读写操作。处理装置11执行诸如计时、测试、分析等操作。所述处理装置11包括一个或多个通用微处理器、一个或多个专用处理器(ASIC)、一个或多个数字信号处理器(Digital Signal Processor,简称DSP)、一个或多个现场可编程逻辑阵列(Field Programmable Gate Array,简称FPGA)、或它们的任何组合。处理装置还与I/O端口和输入装置可操作地耦接,该I/O端口可使得技术人员能够与所运行的开发系统进行交互。因此,输入装置12还包括按钮、触控板等。所述其他电子设备包括但不限于:所述显示屏13、和网络接口等。
所述处理装置11用于运行所述存储装置10所存储的至少一种程序,以协调计算机设备中各硬件结构执行网络功能的开发和验证方法。在此,所述处理装置11协调各硬件结构执行所述开发和验证方法的过程被称为计算机设备执行所述开发和验证方法的过程。所述处理装置11协调各硬件结构执行所述开发和验证方法的过程也对应于开发系统中的各模块协同执行以向技术人员提供网络功能的开发操作和验证操作的过程。为便于后续描述,所述处理装置11协调各硬件结构执行所述开发和验证方法的过程还被称为开发系统实现开发和验证功能的过程。
请参阅图2,其显示为软件开发方法的流程示意图。在步骤S110中,呈现用于开发网络功能和/或验证网络功能的编辑界面,所述编辑界面包含代码管理栏、编辑界面、和包含测试选项的工具栏等。
在此,所述编辑界面被分割成若干区域,以便于技术人员使用。以图3为例,其显示为呈现给技术人员的编辑界面的界面排版示意图,其中,左侧边栏区域布置为代码管理栏,上侧边栏区域布置为工具栏,以及中间区域布置为编辑界面。
计算机设备利用显示屏呈现所述编辑界面,所述编辑界面上的各区域中显示的条目、选项、和文本中的任一种配置有至少一输入指令以调整各区域所呈现的内容、或者触发执行如调试、编译、保存、或测试等步骤。
在步骤S120中,利用所述编辑界面生成测试代码;所述测试代码中包含代码库所提供的用于提供独立计时的代码。所述代码库包括至少一个代码,计算机设备将技术人员所输入的代码与代码库中的代码进行匹配,使得代码库中的代码供测试代码调用。所述至少一个代码利用代码语言描述包含网络功能中各执行路径所需的逻辑、和/或调用计算资源的逻辑等。为此,所述至少一个代码不仅包括用于提供独立计时的代码,还包括用于调用计算资源以执行数据包传输的代码。所述代码库中的代码帮助技术人员简化设计网络功能中各执行路径的过程、或简化设计验证网络功能中各执行路径的过程。例如,所述代码库中包含的代码用于整合通用的如与操作系统等底层交互相关逻辑,和/或用于构建处理装置执行多线程时的执行逻辑等,由此减少技术人员重复开发的成本。
计算机设备将测试代码展示在编辑界面中。其中,所述测试代码描述了将网络功能中至少具有时间约束的各执行路径关联于相应时间-路径约束机制的逻辑表达。所述时间约束是针对执行路径在被触发的一段时间内有效而设置的,其提供针对执行路径的以下至少一种时间上的约束:执行路径的有效状态的约束、和数据流量的约束等。相应的,所述时间-路径约束机制是利用计算机设备的程序运行机制,来实现相应执行路径是受时间约束的。其中,执行路径的有效状态的约束举例包括:通过对数据包的包头信息进行分析而确定并约束在一定时长内状态有效的执行路径。例如,数据包的包头信息包含用于建立连接的syn标识信息,设置基于该syn标识信息的测试代码以验证相应执行路径在一定时长期间内状态有效。又如,数据包的包头信息包含用于标识源地址和目标地址、源端口和目标端口以及协议号的标识信息,设置在一定时期限内计数具有同一目标地址及目标端口的测试数据包数量的测试代码,以验证防火墙防入侵检测的执行路径。数据流量的约束举例包括:在预设的单位时长内、或者在预测的一截止时刻之前约束允许转发/不允许转发数据包的执行路径。例如,利用令牌机制设置测试代码,以验证在一定时长内基于令牌数量而允许转发的数据包的执行路径。基于时间而设置的入侵检测中的约束举例包括:在预设的单位时长内,通过分析数据包的包头信息以约束允许转发数据包的执行路径。例如,利用数据包中目标地址信息设置测试代码,以验证在一定时长内验证允许转发数量不超过最大值的包含相同目标地址信息的数据包的执行路径。
为了便于在执行验证期间反映出所测试的执行路径是受时间约束的,在一些示例中,所述测试代码中包含允许处理装置在测试执行路径期间基于独立计时超时而执行约束操作的第三代码。在一些具体示例中,所述第三代码表示基于处理装置中断机制而设置的由独立计时事件触发的中断执行过程。在又一具体示例中,所述第三代码表示基于处理装置的线程并行机制而设置的独立计时和测试执行路径的并行执行过程。在另一具体示例中,所述第三代码表示在基于结合上述中断机制和并行机制而设置的独立计时超时时,及时进行时间约束操作的执行过程。
在另一些示例中,所述测试代码中包含用于在独立计时超时而被改变的约束数据。例如,所述约束数据为基于中断事件触发并由中断事件所改变的数据。又如,所述约束数据为并行线程共同维护的共享数据。
为了避免路径爆炸等测试问题,依据约束数据所述测试代码可被配置成以有限的测试节点来测试各执行路径。
为了便于利用系统时间或者计时器进行单独计时,所述测试代码中包含在与时间相关的约束条件下检测系统时间或者计时器的代码,或者利用并行线程机制而设置的借助系统时间或计时器而独立计时的代码。
在一些示例中,所述测试代码中包含独立于各执行路径的、用于执行时间-路径约束机制中计时和约束逻辑的第一代码,以至少执行独立计时操作,甚至还执行修改约束数据的操作。其中,所述第一代码举例包含用于休眠和唤醒的函数、用于中断的函数、或用于定时的函数中的至少一种,以及用于计时的函数等。例如,所述第一代码包含用于调用系统时间的函数,用于表示相应执行路径的时间约束截止的阈值,以及利用所述函数和阈值而设置的对应时间约束截止条件的逻辑;其中,所述测试代码在运行时是利用系统时间进行独立计时。
以测试基于令牌控制转发/丢弃的执行路径以进行流量控制为例,其中的部分测试代码举例如下:
Figure BDA0002744097930000081
上述测试代码表达了测试基于在一段时间内令牌token的数量来限制数据包转发流量的各执行路径。在上述示例的测试代码中,第8-10行、以及第11-14行分别对应待测试的不同执行路径。所述第一代码包括第2-6行代码,其为独立于测试各执行路径的代码;其中timer函数提供了独立计时,以及在独立计时1s超时时更新令牌token数量为各路径的时间约束机制,测试在1s期间数据包转发执行路径和丢弃执行路径。timer函数和foreach函数为采用如并行线程的机制而封装的原语。
在另一些示例中,网络功能中包含受时间约束的多个执行路径,对应地,所述测试代码中包含针对网络功能中受时间约束的执行路径的第二代码,以至少执行测试执行路径的操作,甚至还执行中断时更改相应约束数据的操作;以及上述示例中的第一代码;其中,所述第一代码和第二代码包含用于执行时间-路径约束机制的原语。
以待验证的网络功能包含有状态防火墙的多条执行路径为例,其部分测试代码举例如下:
Figure BDA0002744097930000091
上述测试代码表达了从收到包含syn标识信息的数据包开始的30s内针对转发包含syn和非syn标识信息的数据包的执行路径呈有效状态,超出30s则相应转发的执行路径转为无效状态。在上述示例的测试代码中,第9-13行、第14-17行、以及第18-20行分别对应待测试的不同执行路径,其中,第9-13行和第14-17行表达了所测试的执行路径受时间约束。以测试第9-13行的执行路径为例,第二代码包括第10和12行代码,其表示时间约束的约束数据包括用于标识执行路径的状态state和用于标记所接收到的数据包的接收时刻Modified。第一代码包括第2-7行代码;其为独立于测试各执行路径的代码;其中timer函数提供了独立计时,以及在独立计时30s超时时检测是否修改执行路径的状态state的逻辑表达。其中timer函数和foreach函数为采用如并行线程的机制而封装的原语。
需要说明的是,基于上述示例,技术人员还可以设计出如针对其他流量控制、或基于防火墙其他安全需要而设置的过滤方式等网络功能的能够提供独立计时的测试代码。例如,所述测试代码中包含所述第一代码,以设置用于测试某一执行路径在其时间约束下的执行情况。
还需要说明的是,上述两个具体示例以简化的代码描述在时间约束下对网络功能中各执行路径的测试逻辑,其中,代码pass和drop为不同执行路径的示例,其还可以根据待测试的网络功能中的各执行路径的入口进行设置。
技术人员将对网络功能中各执行路径的验证方案通过测试代码的形式保存在计算机设备中,以便计算机设备在运行测试代码过程中执行验证方法,其中,该验证方法将在后续详述。
在一些实施例中,在基于数据包到达时所触发的时间-路径约束机制的程序设计中,一些通用的抽象逻辑可配置在开发系统的中间件中。计算机设备当检测到所输入的第二代码和第一代码中包含与中间件中所设置的库文件的文件名或部分文件名相匹配时,将各候选库文件链接呈现在所述编辑界面中,以供技术人员选择。例如,上述有状态防火墙示例中的timer函数和currTime函数均作为原语配置在中间件中,并通过上述检测机制向技术人员提示能够采用本申请所提供的验证方式的函数选择,由此辅助技术人员构建具有例如上述逻辑表达的测试代码。
针对技术人员所设置的测试代码,计算机设备基于所检测到的测试指令执行步骤S130。其中,所述测试指令为计算机设备检测到输入装置触发编辑界面中的测试选项而产生的。
在步骤S130中,在检测到测试选项被触发时,将所述测试代码转换为测试程序,并调用测试程序以使计算机设备执行后续步骤S210。
在此,配置在计算机设备中的开发系统提供如编译器等以将测试代码转换成测试程序的模块。换言之,计算机设备通过运行编译器和运行环境模块将测试代码转换成测试程序。其中,所述测试程序为经编译测试代码而产生的可供机器执行的指令集。
开发系统还提供了包含如虚拟机等以可供执行测试程序的运行环境模块。换言之,计算机设备通过运行所述运行环境模块而执行所述测试程序,以对各执行路径进行验证。计算机设备通过执行测试程序来执行网络功能的验证方法。
需要说明的是,利用上述步骤S110-S120而开发的测试代码可经编译后执行所述验证方法。上述测试代码可基于利用符号执行引擎来开发并执行验证,采用该方式能够便于创建高覆盖率的测试套件,以及能够触发网络功能异常的具体输入等优势,使得利用符号执行的验证方式在测试网络功能中各执行路径的执行情况等方面有很好的测试效果。然而,若其他测试方式所构建的测试代码经编译后执行下述验证的过程,则应视为依据本申请所提供的验证方法的执行过程。
在步骤S210中,在包含独立计时的时间-路径约束机制的约束下,对待测试的网络功能中的执行路径进行测试,以得到相应执行路径的包含路径测试数据及其对应的时间测试数据的测试数据。
在此,计算机设备在测试程序中的指令序列的控制下,批量地获取测试数据包,其中,各测试数据包的包头内设置有多种用于传输的标识信息。计算机设备基于接收到测试数据包而触发运行时间-路径约束机制和触发对各执行路径的测试。其中,计算机设备通过检测测试数据的包头信息中的标识信息是否符合测试节点中的某一测试条件,来选择所述测试数据包的执行路径。在对各测试数据包进行测试期间,计算机设备还生成针对每一测试数据包的测试数据。其中,所述测试数据包括上述提及的路径测试数据及其对应的时间测试数据。所述时间测试数据包括在时间-路径约束机制运行期间由所接收的测试数据包触发的与约束机制相关的数据,其举例包括接收到测试数据包的时刻(如时间戳)及其对应时刻的约束数据(如执行路径的状态state、或令牌数token),甚至还包括预设的约束时长(如30s)等。所述路径测试数据包括利用所接收到的测试数据包对各执行路径进行测试时执行路径和所对应的测试数据包相关的数据,其举例包括测试数据包的包头信息、及其执行路径的输出标识信息。其中,所述包头信息举例包括用于表示测试数据被包转入其中一个执行路径所依据的至少一个标识信息,如前述示例中的syn、或目的地址等,还举例包括源地址、和/或TCP(UDP)协议或其他传输控制协议中的标识信息。所述输出标识信息包括转发标识(pass)、或丢弃标识(drop),或者预设的路径编号等。
在验证网络功能中的各执行路径时,上述提及的时间约束可利用约束数据来表达,所述约束数据举例包括以下至少一种:用于描述执行路径在时间约束期间内有效以及在时间约束期间外无效的参数,用于计时时间约束的时长的参数,或用于标记时间约束起止时刻的参数等。这使得网络功能中的受时间约束的执行路径需要在相应约束数据表示受时间约束/不受时间约束的情况下进行执行路径是否有效的验证。例如,在测试过程中设置受时间约束而改变的约束数据,并在时间约束的时长内依据所述约束数据测试执行路径是否有效,若是,则将测试数据包转入其中一执行路径,反之,则将测试数据包转入其他执行路径。
在此,计算机设备按照如中断/多线程并行等处理器处理机制来实现一边计时、一边测试,并在计时到达一个或多个执行路径所对应的时间约束时,更改测试相关执行路径的约束数据。其中,所述时间约束是针对执行路径能够在被触发的一段时间内有效而设置的,其提供针对执行路径的以下至少一种时间上的约束:执行路径的有效状态的约束、数据流量的约束、和基于时间而设置的入侵检测中的约束等。其中,计算机设备在基于执行路径的状态的时间约束下测试相应执行路径的方式举例包括:通过对数据包的包头信息进行分析而确定并约束在一定时长内状态有效的执行路径。例如,计算机分析所接收的测试数据包的包头信息中包含用于建立连接的syn标识信息,则基于该syn标识信息确定一执行路径及其时间约束,在时间约束的时长内按照改执行路径的有效状态执行数据传输操作,并记录测试数据。计算机设备在以数据流量的时间约束下测试执行路径的方式举例包括:在预设的单位时长内、或者在预测的一截止时刻之前约束允许转发/不允许转发数据包的执行路径。例如,计算机设备按照令牌机制及其对应的时间约束,在一定时长内基于所生成的令牌数量而执行转发测试数据包的执行路径,并记录测试数据。计算机设备在基于时间而设置的入侵检测中的时间约束下测试执行路径的方式举例包括:在预设的单位时长内,通过分析数据包的包头信息以约束允许转发数据包的执行路径。例如,计算机设备运行时间-路径约束机制以统计在时间约束下转发具有相同目的地址信息的数据包数量,并在所述时间约束下所统计的数据包数量不超过最大值或者已超出最大值时,测试包含相同目标地址信息的各测试数据包的执行路径。
为了使所运行的时间-路径约束机制和所测试的执行路径之间关联用于反映约束效果的关系,运行所述时间-路径约束机制时和在对所述执行路径进行测试时共享约束数据。
在一些示例中,计算机设备在独立计时超时时产生中断事件,以触发测试执行路径过程,并修改相应的约束数据,再继续执行测试过程。在又一示例中,计算机设备采用并行线程机制执行独立计时操作和测试执行路径的操作,以及当独立计时超时时,按照分片占用处理资源的方式在占用处理资源时修改相应的约束数据,再继续执行测试过程。在另一示例中,计算机设备结合上述中断机制和并行机制在独立计时超时时更改各线程的等待队列,以使计算机设备在释放处理资源时优先处理运行时间-路径约束机制的线程以修改相应的约束数据,再继续执行测试过程,以减少因资源抢占而误操作测试数据包的执行路径的情况。
需要说明的是,计算机设备所执行的测试程序中包含可根据执行路径所对应的时间约束提供上述任一种处理器执行机制的程序。
为了避免路径爆炸等测试问题,计算机设备通过解析对应不同执行路径的测试条件构建以有限的测试节点来测试各执行路径的分支逻辑。换言之,计算机设备对利用分支逻辑而构建的对应每一路径的执行路径进行测试,得到对应不同分支逻辑的测试数据。以计算机设备运行符号执行引擎来测试网络功能中的执行路径的方式为例,计算机设备中依据基于符号执行而配置的静态分析器和解析器构建对应各执行路径的树状分支逻辑。例如,计算机设备通过分析测试程序中的测试条件,生成树状的测试分支逻辑,其中,所述测试分支逻辑中包含父节点和子节点,其中,子节点对应确定的一条执行路径,父节点对应确定的多条执行路径。
为了便于计算机设备利用系统时间或者计时器进行单独计时,计算机设备运行的测试程序中包含在与时间相关的约束条件下检测系统时间或者计时器的程序,或者利用并行线程机制而设置的借助系统时间或计时器而独立计时的程序。
在一些示例中,计算机设备所执行的测试程序中包含独立于各执行路径的、用于执行时间-路径约束机制中计时和约束逻辑的第一程序,以至少执行独立计时操作,甚至还执行修改约束数据的操作。所述第一程序举例为将前述开发方法中的第一代码进行编译后得到的程序。例如,计算机设备执行所述第一程序时调用系统时间以进行计时,以及在系统时间到达约束机制所设置的约束条件时将测试数据包的执行路径从执行路径A1改为执行路径A2;计算机设备在修改前和修改后持续接收测试数据包以测试受时间约束处于有效状态的执行路径A1,以及受所述时间约束处于无效状态的执行路径A2,由此记录相应两个阶段的测试数据。
以前述开发方法中所提及的测试基于令牌控制转发/丢弃的执行路径以进行流量控制为例,计算机设备在接收到测试数据包时触发执行timer函数所描述的时间-路径约束机制的线程,以及触发执行foreach函数所描述的测试执行路径的线程,以利用其中并行线程的处理器执行机制执行两个线程。
在另一些示例中,计算机设备对网络功能中受时间约束的多个执行路径进行测试,对应地,所述测试程序中包含针对网络功能中受时间约束的执行路径的第二程序,以至少执行测试执行路径的操作,甚至还执行中断时更改相应约束数据的操作;以及上述示例中的第一程序。
以前述开发方法中所提及的测试包含有状态防火墙的多条执行路径为例,计算机设备在接收到测试数据包时触发执行timer函数所描述的时间-路径约束机制的线程,以及触发执行foreach函数所描述的测试执行路径的线程,其中,在执行foreach函数期间还执行与时间-路径机制相关联的约束数据的修改操作,即在测试转发测试数据包的执行路径中修改约束数据中的Modified参数,以使所述时间-路径约束机制能够约束多条执行路径。
时间-路径的约束机制的运行和测试所述测试数据包的执行路径的过程可以彼此无关,或相关联。执行步骤S210所得到的测试数据中的路径测试数据包含测试数据包的相关信息、及其按照测试条件对相应测试数据包进行传输处理的执行路径的相关信息,例如,路径测试数据包含以下至少一种:测试数据包中的包头信息、测试数据包中与测试条件相关的信息、和执行路径的标识信息及其对测试数据包的传输处理结果等。执行步骤S210所得到的测试数据中的时间测试数据包括反映时间-路径约束机制运行/未运行的相关信息、及其共同约束数据等,例如,时间测试数据包括以下至少一种:如状态信息、令牌数量等共享约束数据,反映独立计时期间/计时超时的时间信息,接收/处理测试数据包的时间戳等。
在一些示例中,计算机设备独立地运行时间-路径约束机制,并监听端口以接收测试数据包,以及在接收到测试数据包时进行相应执行路径的测试。所述步骤S210包括:S211和S212(均未图示)。
在步骤S211中,运行所述时间-路径的约束机制。在此,计算机设备运行所述时间-路径的约束机制的步骤包括:启动独立计时和初始化共享约束数据,以及监听端口以接收测试数据包。
在步骤S212中,在所述约束机制的限制下,根据对应不同执行路径的测试条件,将所接收到的测试数据包转入相应执行路径以便进行传输处理。
在此,计算机设备根据对应不同执行路径的测试条件,将测试数据包转入相应的执行路径并修改共享约束数据;在此期间,记录测试数据包中与测试条件相关的信息、执行路径对测试数据包的传输处理结果、共享约束数据、和独立计时期间所反映的时间信息中的部分或全部测试数据。其中,测试数据中的路径测试数据包括测试数据包中与测试条件相关的信息、和/或执行路径对测试数据包的传输处理结果等;测试数据中的时间测试数据包括共享约束数据、和/或独立计时期间所反映的时间信息等。其中,所述测试条件举例包括:在所接收的测试数据包中的与相应约束机制相符的标识信息时运行所述时间-路径的约束机制,或者在接收到测试数据包时运行所述时间-路径的约束机制等。
以测试流量控制的网络功能为例,计算机设备通过执行测试程序中所提供的并行线程调度方式,启动包含独立计时的线程(简称第一线程)并初始化用于测试单位时长内转发数据包数量的令牌数量(即共同约束数据);以及启动另一独立线程(简称第二线程)以监听测试端口,并在接收到测试数据包时通过解析对应不同执行路径的测试条件将测试数据包转入相应执行路径;在独立计时的单位时长超时时,计算机设备重置令牌数量并启动新的独立计时,以便在新的单位时长内测试网络传输的流量控制。其中,所述测试条件举例为在单位时长内检测令牌的数量是否小于测试数据包的分片数量,若是则转入丢弃的执行路径,反之则转入转发的执行路径。在此期间,计算机设备所记录的测试数据包括:所接收的每一测试数据包及其对应的令牌数量、时间、和转入的执行路径等;还可以包括在接收到测试数据包之前采样的共同约束数据和独立计时时刻等。
在另一些示例中,为了准确验证网络功能中各执行路径对测试数据包的传输测试的正确性,以及相应执行路径确实受时间约束,在所述步骤S210中所运行的时间-路径的约束机制和测试所述测试数据包的执行路径的过程可基于接收到测试数据包时被触发。为此,所述步骤S210包括步骤S213和S214(均未图示)。
在步骤S213中,在所接收到的测试数据包时,运行所述时间-路径的约束机制和运行测试所述测试数据包的执行路径的过程。
与前述步骤S211中不同的是,在步骤S213中,计算机设备通过监听预设的端口来获取相应的测试数据包,在所接收的测试数据包时触发并运行所述时间-路径的约束机制,以及启动运行测试所述测试数据包的执行路径的过程。其中,所述测试条件举例包括:在所接收的测试数据包中的包头信息中包与相应约束机制相符的标识信息时运行所述时间-路径的约束机制,或者在接收到测试数据包时运行所述时间-路径的约束机制等。
在步骤S214中,在所述约束机制的限制下,根据对应不同执行路径的测试条件,将所述测试数据包转入相应执行路径以便进行传输处理。
在此,所述步骤S214的执行过程与步骤S212的执行过程相似。以测试有状态防火墙为例,当计算机设备接收到的测试数据包中的包头信息包含有效的syn标识信息时,触发并运行所述时间-路径的约束机制中的独立计时并初始化状态信息(即共同约束数据)为无效(CLOSE),以及启动运行测试所述测试数据包的执行路径的过程;其中,在独立计时未超时期间,计算机设备对所接收的每个测试数据包的包头信息进行检测,若包头信息中包含syn标识信息,则更新状态信息为有效(OPEN),以及将相应的测试数据包转入第一执行路径,反之,还检测状态信息是否为有效,若是,则将相应的测试数据包转入第二执行路径,反之,则将相应的测试数据包转入第三执行路径;在独立计时超时时,状态信息被重新初始化为无效(CLOSE),此时计算机设备对所接收的新的测试数据包的包头信息进行检测,若包头信息中不包含syn标识信息,则将相应的测试数据包转入第三执行路径,反之,则重新更新状态信息为有效(OPEN),以及将相应的测试数据包转入第一执行路径,并重新启动使状态信息维持有效的独立计时等。在此期间,计算机设备所记录的测试数据包括:所接收的每一测试数据包及其对应的包头信息中的syn标识信息、接收时刻、转入的执行路径、和状态信息等。其中,测试数据中的路径测试数据包括:测试数据包的包头信息、和转入的执行路径等;测试数据中的时间测试数据包括:接收时刻、和状态信息等。
以测试入侵检测的网络功能中各执行路径为例,计算机设备在检测到测试数据包中的目的地址(和/或发送地址)时开始启动独立计时并在所计时的单位时长期间内检测所接收的后续各测试数据包的目的地址(和/或发送地址),并根据所接收到的具有相同目的地址(和/或发送地址)的测试数据包的数量进行计数,直至独立计时超时为止,并得到各组测试数据,其中,各组测试数据中的路径测试数据包括:测试数据包的目的地址(和/或发送地址)、和转入的执行路径等;测试数据中的时间测试数据包括:接收时刻、和计数数值等。
在利用多个测试数据包进行测试而得到多组测试数据后,计算机设备可将所得到的各组测试数据保存在测试数据库中,并通过测试列表等形式展示给技术人员,以便为路径测试数据增加时间测试数据。技术人员可通过分析测试数据对执行路径进行人工验证。为了便于技术人员进行验证,在展示时,计算机设备还将不符合时间约束的执行路径的测试数据中的部分数据进行颜色/字体/字号等变化,以供技术人员查看。例如,当在不符合时间-路径约束机制下计算机设备接收并处理测试数据包i,则在展示对应测试数据包i的测试数据时高亮其中的时间戳和执行路径(或共享约束数据,例如状态值、令牌数量)等,由此技术人员便于更快速地分析该时刻前后的测试数据。
在一些实施例中,请参阅图4,其显示为网络功能的验证方法的流程示意图。计算机设备还执行步骤S220,即分析所述测试数据以对所述网络功能中相应执行路径进行验证。
在此,计算机设备利用所得到的多组测试数据对网络功能中受时间约束的各执行路径进行分析,以得出所设计的网络功能中各执行路径在功能和性能等方面是符合网络功能的使用要求的,和/或测试的覆盖全面性等。其中,所述功能表示所测试的执行路径所表示的执行逻辑正确;所述性能表示所测试的执行路径的稳定性、冲突性、吞吐性能等。为此,计算机设备执行的分析操作如下至少一种:
1)分析路径测试数据及其时间测试数据之间的对应关系,以对所述网络功能中各执行路径进行验证。
在此,计算机设备按照时间-路径约束机制所产生的对应关系,分析每组测试数据中时间测试数据和路径测试数据。其中,所述对应关系是指在运行/未运行时间-路径约束机制期间,针对所接收的每一测试数据包的预期执行路径而设置的预期的测试数据,其包括:时间测试数据及其对应的预期路径测试数据。计算机设备按照所述对应关系来分析每组测试数据,以得到实际的测试数据与预期的测试数据之间的差异,由此来验证网络功能中各执行路径的性能。其中,所述性能包括执行路径正确性,甚至还包括正确的执行路径的稳定性。例如,所述性能包括:预期正确(或错误)的路径测试数据与实际路径测试数据相符(或不相符)。
以按照时间而设定的入侵检测的约束机制中的对应关系举例,其对应关系包括:反映所接收的测试数据在单位时长期间内(或期限外)的标识信息、以及所对应的基于所接收到的测试数据包中相同目的地址信息而确定为入侵的(或确定为非入侵的)测试数据包的包头信息及其对应的预期执行路径;计算机设备通过执行步骤S210得到包含单位时长期间内以及单位时长期间之外的多组测试数据,其中,每组测试数据中的路径测试数据包括:测试数据包的目的地址,以及对应的实际的执行路径的标识信息;每组测试数据中的时间测试数据包括:通过独立计时而获得的相应测试数据包在单位时长内的时间戳(或相对于前一测试数据包的时间间隔)、和/或所接收的测试数据包属于/不属于同一单位时间内的标识信息等;计算机设备根据对应关系,分析每组测试数据中各时间测试数据所对应的各实际的执行路径与第一预期执行路径(或第二预期执行路径)的匹配程度,来验证各实际的执行路径的正确性及其正确的稳定性。
以按照时间而设置的执行路径的有效状态的约束机制所产生的对应关系为例,其对应关系包括:反映所接收的测试数据包的标识信息、反映时间限制期间内/期限外的各种状态信息、以及各状态信息所对应的不同预期执行路径;计算机设备根据所述对应关系,分析每组测试数据中各时间测试数据所对应的实际的执行路径,并根据各测试数据中各实际的执行路径与相应预期执行路径的匹配程度,来验证各执行路径的正确性及其正确的稳定性。
以数据流量的约束机制中的对应关系举例,其对应关系包括:反映所接收的测试数据包在单位时长期限内的剩余令牌的数量及其对应的不同预期执行路径;计算机设备根据所述对应关系,分析每组测试数据中各时间测试数据中剩余令牌的数量所对应的实际的执行路径,并根据各测试数据中各实际的执行路径与相应预期执行路径的匹配程度,来验证各执行路径的正确性及其正确的稳定性。
需要说明的是,上述各示例用来表示利用预期的与时间约束相关的测试数据之间的对应关系分析实际测得的各测试数据,可验证网络功能中各执行路径的功能/性能等,其并非是唯一实现方式。
2)依据时间测试数据和路径测试数据中的一种测试数据,统计时间测试数据和路径测试数据中的另一种测试数据,以对所述网络功能中各执行路径进行验证。
在此,计算机设备按照时间测试数据(或路径测试数据)进行归类,以及统计在同类测试数据下路径测试数据(或时间测试数据)的差异性,由此验证各执行路径在时间约束下的功能/性能。
以针对受数据流量的约束而测试执行路径为例,计算机设备按照路径测试数据中标识转发操作或者标识丢弃操作的执行路径的标识信息进行归类,得到:在数据流量的约束下对应包含转发操作的执行路径的多组第一测试数据,以及在数据流量的约束下对应包含丢弃操作的执行路径的多组第二测试数据;通过利用多组第一测试数据中如令牌数量等时间测试数据,统计单位时长内令牌数量的变化速度,以验证有效转发测试数据包的吞吐量;或者通过利用多组第二测试数据中如剩余令牌数量的计数值等时间测试数据,统计错误地丢弃测试数据包的比例等;由此验证各执行路径的性能/功能。
仍以针对受数据流量的约束而测试执行路径为例,计算机设备按照时间测试数据中同一单位时长期限内剩余令牌数量非零和为零的标识信息进行归类,得到:在同一单位时长期限内对应剩余令牌数量非零时的各执行路径的多组第三测试数据,以及对应剩余令牌数量为零时的各执行路径的多组第四测试数据;分别利用各组第三测试数据和第四测试数据中标识转发操作/丢弃操作的路径测试数据进行统计,得到统计错误地转发/丢弃测试数据包的比例等;由此验证各执行路径的性能/功能。
需要说明的是,上述各示例用来表示利用时间测试数据和路径测试数据进行适当归类可验证网络功能中各执行路径的功能/性能等,其并非是唯一实现方式。
3)分析所述测试数据以筛选出所述网络功能中无效的执行路径。
在此,计算机设备将网络功能中预设的各执行路径与各组测试数据中所涉及的各实际的执行路径进行匹配,筛选出依据测试数据未能被选中的各执行路径,并将其标记为无效的执行路径。计算机设备利用所筛选出的无效的执行路径来验证冗余的网络功能,以及验证测试过程的覆盖全面性等。
本申请所提供的开发方法和验证方法利用开发系统中提供的可独立运行的包含计时的运行机制的测试工具包,如可提供相应运行机制的库文件等,增加了各执行路径的包含时间测试数据的测试结果,如此能够便于技术人员进行高效、准确地验证操作。另外,利用共享约束数据来并行运行测试操作和运行约束机制,有效减少在独立计时超时时测试操作响应不及时等情况。
本申请还提供了一种开发系统。所述开发系统用于利用预设的网络功能的工具,如库文件、中间件、或自定义接口等,为技术人员提供便于开发网络功能中各执行路径的人机交互,以及对所开发的网络功能中各执行路径进行验证。为此,请参阅图5,其显示为开发系统的架构示意图。其中,开发系统包括:人机交互模块21、验证模块23、和代码库22。
其中,所述代码库22用于提供至少一个代码。所述至少一个代码利用代码语言描述包含网络功能中各执行路径所需的逻辑、和/或调用计算资源的逻辑等。为此,所述至少一个代码不仅包括用于提供独立计时的代码,还包括用于调用计算资源以执行数据包传输的代码。所述代码库中的代码帮助技术人员简化设计网络功能中各执行路径的过程、或简化设计验证网络功能中各执行路径的过程。
所述人机交互模块21包括编辑界面和包含测试选项的工具栏。其中,所述编辑界面用于供技术人员构建用于验证网络功能中各执行路径的测试代码;其中,所述测试代码中包含用于提供独立计时的代码。
其中,所述工具栏中包含多种选项,各选项用于供开发系统启动不同的功能模块。例如,工具栏中所包含的测试选项用于供开发系统调度其集成的编译器、日志记录模块等协调运行,以将所选择的测试代码编译成测试程序,并执行测试程序等。又如,工具栏中所包含的文本编辑选项用于供技术人员所在编辑界面中所展示的测试代码进行相应的文本编辑功能,如更改字体的字号、颜色,代码行的排版等。
在此,所述人机交互模块21响应于技术人员对输入装置的操作,并向技术人员展示测试代码。其中,所述测试代码中引入代码库中至少用于独立计时的代码,以便在运行时调用。在本实施例中,所述人机交互模块的执行过程对应于前述步骤S120的执行过程,在此不再详述。
验证模块23用于在检测到测试选项被触发时,将所述测试代码转换为测试程序;以及调用所述测试程序以执行如前述步骤S210、或者S210-S220的验证方法。在此不再详述。
本申请还提供一种计算机可读写存储介质,存储至少一种程序,所述至少一种程序在被调用时执行并实现上述针对图2所示的开发网络功能的方法和/或执行并实现上述验证方法所描述的至少一种实施例。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得安装有所述存储介质的移动机器人可以执行本申请各个实施例所述方法的全部或部分步骤。
于本申请提供的实施例中,所述计算机可读写存储介质可以包括只读存储器、随机存取存储器、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、U盘、移动硬盘、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
在一个或多个示例性方面,本申请所述方法的计算机程序所描述的功能可以用硬件、软件、固件或其任意组合的方式来实现。当用软件实现时,可以将这些功能作为一个或多个指令或代码存储或传送到计算机可读介质上。本申请所公开的方法或算法的步骤可以用处理器可执行软件模块来体现,其中处理器可执行软件模块可以位于有形、非临时性计算机可读写存储介质上。有形、非临时性计算机可读写存储介质可以是计算机能够存取的任何可用介质。
本申请上述的附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。基于此,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

Claims (15)

1.一种网络功能的验证方法,其特征在于,包括以下步骤:
在包含独立计时的时间-路径约束机制的约束下,对待测试的网络功能中的执行路径进行测试,以得到相应执行路径的包含路径测试数据及其对应的时间测试数据的测试数据;
其中,所述测试数据用于对所述网络功能中受时间约束的执行路径进行验证。
2.根据权利要求1所述的网络功能的验证方法,其特征在于,所述时间-路径约束机制是通过执行配置在独立于所述执行路径的测试程序中的第一程序,和/或执行配置在所述执行路径的测试程序中的第二程序而形成的。
3.根据权利要求1所述的网络功能的验证方法,其特征在于,运行所述时间-路径约束机制时和在对所述执行路径进行测试时共享约束数据。
4.根据权利要求1所述的网络功能的验证方法,其特征在于,采用并行处理方式运行所述时间-路径约束机制的线程和测试所述执行路径的线程。
5.根据权利要求1所述的网络功能的验证方法,其特征在于,所述对待测试的网络功能的执行路径进行测试的步骤包括:
在所接收到的测试数据包时,运行所述时间-路径的约束机制;
在所述约束机制的限制下,根据对应不同执行路径的测试条件,将所述测试数据包转入相应执行路径以便进行传输处理。
6.根据权利要求1所述的网络功能的验证方法,其特征在于,所述对待测试的网络功能的执行路径进行测试的步骤包括:
运行所述时间-路径的约束机制;
在所述约束机制的限制下,根据对应不同执行路径的测试条件,将所接收到的测试数据包转入相应执行路径以便进行传输处理。
7.根据权利要求1所述的网络功能的验证方法,其特征在于,还包括:分析测试数据以对所述网络功能中相应执行路径进行验证的步骤包括以下至少一种:
分析路径测试数据及其时间测试数据之间的对应关系,以对所述网络功能中各执行路径进行验证;
依据时间测试数据和路径测试数据中的一种测试数据,统计时间测试数据和路径测试数据中的另一种测试数据,以对所述网络功能中各执行路径进行验证;以及
分析所述测试数据以筛选出所述网络功能中无效的执行路径。
8.根据权利要求1所述的网络功能的验证方法,其特征在于,所述时间-路径约束机制用于对执行路径提供以下至少一种时间上的约束:执行路径的有效状态的约束、和数据流量的约束。
9.根据权利要求1所述的网络功能的验证方法,其特征在于,所测试的网络功能中包含多条执行路径;所述对待测试的网络功能中的执行路径进行测试的步骤包括:对利用分支逻辑而构建的对应每一路径的执行路径进行测试,得到对应不同分支逻辑的测试数据。
10.根据权利要求1所述的网络功能的验证方法,其特征在于,利用符号执行引擎执行所述在包含独立计时的时间-路径约束机制的约束下对待测试的网络功能中的执行路径进行测试的步骤。
11.一种网络功能的开发系统,其特征在于,包括:
人机交互模块,包括编辑界面和包含测试选项的工具选择栏;其中,所述编辑界面用于供技术人员构建用于验证网络功能中各执行路径的测试代码;其中,所述测试代码中包含用于提供独立计时的代码;
验证模块,用于在检测到测试选项被触发时,将所述测试代码转换为测试程序;以及调用所述测试程序以执行如权利要求1-10中任一所述的验证方法。
12.根据权利要求11所述的网络功能的开发系统,其特征在于,还包括:代码库,用于提供至少一个代码;所述代码库中包含所述用于提供独立计时的代码。
13.根据权利要求11所述的网络功能的开发系统,其特征在于,所述测试代码包含有至少一个代码,以描述将网络功能中至少具有时间约束的各执行路径关联于相应时间-路径约束机制的逻辑。
14.一种用于验证网络功能的计算机设备,其特征在于,包括:
存储装置,用于存储至少一个程序;
处理装置,与所述存储装置相连,用于执行所述至少一种程序,以协调所述存储装置执行如权利要求1-10中任一所述的网络功能的验证方法。
15.一种计算机可读存储介质,其特征在于,存储至少一种程序,所述至少一种程序在被调用时执行并实现如权利要求1-10中任一所述的网络功能的验证方法。
CN202011160375.6A 2020-10-27 2020-10-27 网络功能的验证方法、开发系统、计算机设备及存储介质 Pending CN112564997A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011160375.6A CN112564997A (zh) 2020-10-27 2020-10-27 网络功能的验证方法、开发系统、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011160375.6A CN112564997A (zh) 2020-10-27 2020-10-27 网络功能的验证方法、开发系统、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN112564997A true CN112564997A (zh) 2021-03-26

Family

ID=75042617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011160375.6A Pending CN112564997A (zh) 2020-10-27 2020-10-27 网络功能的验证方法、开发系统、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112564997A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241519A (zh) * 2007-02-09 2008-08-13 国际商业机器公司 在存在终端约束时生成约束保持测试用例的系统和方法
CN101714119A (zh) * 2009-12-09 2010-05-26 北京邮电大学 基于二进制程序的测试数据生成器和方法
CN105117341A (zh) * 2015-09-06 2015-12-02 电子科技大学 一种基于动态符号执行的分布式自动测试案例生成方法
CN108052825A (zh) * 2017-12-29 2018-05-18 哈尔滨工业大学 针对二进制可执行文件的模糊测试与符号执行相结合的漏洞检测系统
CN111367786A (zh) * 2018-12-26 2020-07-03 华为技术有限公司 一种符号执行方法、电子设备以及存储介质
CN111694741A (zh) * 2020-06-05 2020-09-22 中国工程物理研究院计算机应用研究所 一种基于路径深度覆盖的测试用例设计方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241519A (zh) * 2007-02-09 2008-08-13 国际商业机器公司 在存在终端约束时生成约束保持测试用例的系统和方法
CN101714119A (zh) * 2009-12-09 2010-05-26 北京邮电大学 基于二进制程序的测试数据生成器和方法
CN105117341A (zh) * 2015-09-06 2015-12-02 电子科技大学 一种基于动态符号执行的分布式自动测试案例生成方法
CN108052825A (zh) * 2017-12-29 2018-05-18 哈尔滨工业大学 针对二进制可执行文件的模糊测试与符号执行相结合的漏洞检测系统
CN111367786A (zh) * 2018-12-26 2020-07-03 华为技术有限公司 一种符号执行方法、电子设备以及存储介质
CN111694741A (zh) * 2020-06-05 2020-09-22 中国工程物理研究院计算机应用研究所 一种基于路径深度覆盖的测试用例设计方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈东洛,尹霞,吴建平: "网络协议中的时间约束测试", 《电子学报》 *

Similar Documents

Publication Publication Date Title
US7903555B2 (en) Packet tracing
CN107608852B (zh) 一种进程监控方法及装置
US20070072661A1 (en) Windows message protection
CN109144873B (zh) 一种linux内核处理方法及装置
CN106980576B (zh) 一种基于运行时验证技术的嵌入式系统软件调试系统
CN110062926B (zh) 设备驱动器遥测
CN108763071A (zh) 一种网页测试方法及终端设备
CN113572726A (zh) 一种多模态网络控制-数据平面一致性校验方法及装置
Tu et al. Linux network programming with p4
US9471465B2 (en) Trace value correlation with data field declarations
EP3260976A1 (en) System and method of generating a secured communication layer
US10331513B2 (en) Zero overhead code coverage analysis
CN112564997A (zh) 网络功能的验证方法、开发系统、计算机设备及存储介质
CN106055571A (zh) 网站识别方法及系统
US20160041892A1 (en) System for discovering bugs using interval algebra query language
CN115033889A (zh) 非法提权检测方法和装置、存储介质、计算机设备
EP3739485A1 (en) Method and system for identification of secure binary images
Agape et al. P4fuzz: A compiler fuzzer for securing p4 programmable dataplanes
CN113961475B (zh) 基于规约导向的错误处理缺陷的检测方法及系统
US11989296B2 (en) Program execution anomaly detection for cybersecurity
Shtrichman et al. The'Logic Assurance (LA)'system-a tool for testing and controlling real-time systems
CN114301672B (zh) 网络风险检测方法、装置及电子设备
WO2024016729A1 (zh) 调用冲突的可视化方法及装置
TW202416160A (zh) 關於網路安全之程式執行異常偵測
WO2023060978A1 (zh) Autosar软件的验证方法、装置、设备及存储介质

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210326

RJ01 Rejection of invention patent application after publication