CN111258910B - 静态链接库功能验证方法、装置、电子设备及存储介质 - Google Patents
静态链接库功能验证方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111258910B CN111258910B CN202010089328.0A CN202010089328A CN111258910B CN 111258910 B CN111258910 B CN 111258910B CN 202010089328 A CN202010089328 A CN 202010089328A CN 111258910 B CN111258910 B CN 111258910B
- Authority
- CN
- China
- Prior art keywords
- service system
- service
- verified
- performance
- link library
- 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.)
- Active
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/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- 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/3664—Environments for testing or debugging software
Abstract
本公开提供了一种静态链接库功能验证方法、装置、电子设备及存储介质,所述方法包括:获取待验证静态链接库;基于所述待验证静态链接库对预设的第一业务系统进行编译,获取对应的第二业务系统;将所述第二业务系统部署于预设的虚拟化环境,获取所述虚拟化环境中的所述第二业务系统的业务表现;基于所述第二业务系统的业务表现验证所述待验证静态链接库的功能。本公开实施例能够提高待上线业务系统上线后的稳定性。
Description
技术领域
本公开涉及系统测试领域,具体涉及一种静态链接库功能验证方法、装置、电子设备及存储介质。
背景技术
在业务系统的开发维护过程中,为了优化业务系统或者为业务系统增添新功能,常常需要对业务系统中集成的静态链接库进行开发更新。而更新后的静态链接库在原本的业务系统中有可能无法正常行使对应的功能,因此为保证业务系统能够按照预期正常运行,需要对更新后的静态链接库进行功能验证。现有技术中,对静态链接库进行功能验证时,常常是将静态链接库编译到测试程序中,进而通过对测试程序的测试验证静态链接库的功能。这种方法往往只能模拟、验证静态链接库在业务系统中实现的一部分业务功能,从而导致基于该静态链接库编译得到的业务系统上线后存在较大的可能会出错。
发明内容
本公开的一个目的在于提出一种静态链接库功能验证方法、装置、电子设备及存储介质,能够提高待上线业务系统上线后的稳定性。
根据本公开实施例的一方面,公开了一种静态链接库功能验证方法,所述方法包括:
获取待验证静态链接库;
基于所述待验证静态链接库对预设的第一业务系统进行编译,获取对应的第二业务系统;
将所述第二业务系统部署于预设的虚拟化环境,获取所述虚拟化环境中的所述第二业务系统的业务表现;
基于所述第二业务系统的业务表现验证所述待验证静态链接库的功能。
根据本公开实施例的一方面,公开了一种静态链接库功能验证装置,所述装置包括:
第一获取模块,配置为获取待验证静态链接库;
第二获取模块,配置为基于所述待验证静态链接库对预设的第一业务系统进行编译,获取对应的第二业务系统;
第三获取模块,配置为将所述第二业务系统部署于预设的虚拟化环境,获取所述虚拟化环境中的所述第二业务系统的业务表现;
验证模块,配置为基于所述第二业务系统的业务表现验证所述待验证静态链接库的功能。
根据本公开实施例的一方面,公开了一种静态链接库功能验证电子设备,包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以执行以上权利要求中的任一个所述的方法。
根据本公开实施例的一方面,公开了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行以上权利要求中的任一个所述的方法。
本公开实施例中,验证终端获取到待验证静态链接库后,基于该待验证静态链接库对预设的第一业务系统进行编译,获取到集成了该待验证静态链接库的第二业务系统;将该第二业务系统部署于预设的虚拟化环境,获取该第二业务系统于该虚拟化环境中的业务表现;进而根据第二业务系统于该虚拟化环境中的业务表现,对该待验证静态链接库的功能进行验证。本公开实施例通过于虚拟化环境中进行静态链接库的功能验证,提前发现待上线业务系统集成入该待验证静态链接库后可能存在的问题,提高了该待上线业务系统上线后的稳定性。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参考附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。
图1示出了根据本公开一个实施例的静态链接库功能验证的体系构架组成。
图2示出了根据本公开一个实施例的静态链接库功能验证的体系构架组成。
图3示出了根据本公开一个实施例的静态链接库功能验证方法的流程图。
图4示出了根据本公开一个实施例的虚拟化环境中的业务系统的更新过程。
图5示出了根据本公开一个实施例的验证静态链接库的功能的完整流程图。
图6出了根据本公开一个实施例的静态链接库功能验证装置的框图。
图7出了根据本公开一个实施例的静态链接库功能验证电子设备的硬件图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本公开的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
首先对本公开实施例的部分概念进行简要解释。
库指的是一组预先编译好的函数的集合;静态链接库指的是使用时必须包含在可执行文件内部的、一组预先编译好的函数的集合。静态链接库必须在可执行文件内部,才能实现对应的功能。其中,可执行文件指的是可以由操作系统进行加载执行的文件,例如:windows操作系统中的.exe文件或者.sys文件。
第一业务系统指的是能够通过待验证静态链接库重新编译的业务系统,一般,第一业务系统是已上线的、能够正常运行的;第二业务系统指的是第一业务系统集成了该待验证静态链接库后得到的业务系统,第二业务系统是否能够正常运行、是否能够实现预期表现均不确定。
虚拟化环境指的是使用虚拟化技术,隐藏底层硬件信息,虚拟出的通用的硬件计算环境。即,虚拟机。
测试用例(Test Case)指的是对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简要而言,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。
业务曲线指的是描述了业务系统在某一特定业务属性上的实时表现的曲线。例如:建立横坐标代表“时间”、纵坐标代表“订单处理速率”的坐标系。当业务系统运行后,实时监控该业务系统,定期获取该业务系统的实时订单处理速率。每当获取到该业务系统的实时订单处理速率,将当前时刻作为横坐标,将实时订单处理速率作为纵坐标,在坐标系中建立对应的点。将业务系统运行过程中建立起的点依次连接起来,从而得到了描述了该业务系统在“订单处理速率”这一业务属性上的实时表现的业务曲线。
下面对本公开实施例可应用的体系构架进行描述。
图1示出了本公开一实施例的体系构架组成:开发终端10、位于云端服务器的验证终端20。其中,开发人员可于开发终端10上进行新版本的静态链接库的开发,开发完成后,通过开发终端10将该新版本的静态链接库发送至验证终端20。
验证终端20将接收到的该新版本的静态链接库作为待验证静态链接库,使用该待验证静态链接库重新编译业务系统,进而将重新编译后的业务系统部署于虚拟化环境中;获取该虚拟化环境中该重新编译后的业务系统的业务表现,进而根据该业务表现验证该待验证静态链接库的功能。
该实施例的优点在于,由位于云端服务器的验证终端对待验证静态链接库的功能进行验证,提高了验证速度,降低了开发终端的负担。
需要说明的是,该实施例中的虚拟化环境在物理上可以位于验证终端之中,也可以位于验证终端之外的物理机之中。该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
图2示出了本公开一实施例的体系构架组成:开发终端10、验证终端10,开发终端10与验证终端10在物理上为同一终端。其中,开发人员可于开发终端10上进行新版本的静态链接库的开发,开发完成后,开发终端10作为验证终端10,将该新版本的静态链接库作为待验证静态链接库,使用该待验证静态链接库重新编译业务系统,进而将重新编译后的业务系统部署于虚拟化环境中;获取该虚拟化环境中该重新编译后的业务系统的业务表现,进而根据该业务表现验证该待验证静态链接库的功能。
该实施例的优点在于,降低了对待验证静态链接库进行功能验证时,对硬件条件的要求。
需要说明的是,该实施例中的虚拟化环境在物理上可以位于验证终端之中,也可以位于验证终端之外的物理机之中。该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
下面对本公开实施例的具体实施过程进行描述。
如图3所示,一种静态链接库功能验证方法,包括:
步骤S310、获取待验证静态链接库;
步骤S320、基于所述待验证静态链接库对预设的第一业务系统进行编译,获取对应的第二业务系统;
步骤S330、将所述第二业务系统部署于预设的虚拟化环境,获取所述虚拟化环境中的所述第二业务系统的业务表现;
步骤S340、基于所述第二业务系统的业务表现验证所述待验证静态链接库的功能。
本公开实施例中,验证终端获取到待验证静态链接库后,基于该待验证静态链接库对预设的第一业务系统进行编译,获取到集成了该待验证静态链接库的第二业务系统;将该第二业务系统部署于预设的虚拟化环境,获取该第二业务系统于该虚拟化环境中的业务表现;进而根据第二业务系统于该虚拟化环境中的业务表现,对该待验证静态链接库的功能进行验证。本公开实施例通过于虚拟化环境中进行静态链接库的功能验证,提前发现待上线业务系统集成入该待验证静态链接库后可能存在的问题,提高了该待上线业务系统上线后的稳定性。
在步骤S310中,获取待验证的静态链接库。
在一实施例中,获取待验证静态链接库,包括:
获取该待验证静态链接库的库名;
获取该待验证静态链接库的版本号;
获取该待验证静态链接库的存放路径;
基于该库名、该版本号及该存放路径,获取该待验证静态链接库。
库名指的是对应的静态链接库的命名名称,例如:库名为libhello;版本号指的是对应的静态链接库的版本的编号,例如:版本号为2.0;存放路径指的是对应的静态链接库所被存储的文件路径,例如:存放路径为E:\sscsd。
该实施例中,开发人员可以在开发待验证静态链接库之后,于开发终端配置以下参数——待验证静态链接库的库名、版本号、存放路径,进而通过开发终端将这些参数发送给验证终端。从而验证终端根据获取到的库名、版本号、存放路径,定位并获取到该静态数据库。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
在步骤S320中,基于该待验证静态链接库对预设的第一业务系统进行编译,获取对应的第二业务系统。
本公开实施例中,验证终端在验证静态链接库时,是通过将静态链接库对第一业务系统重新编译,获取到集成了该待验证静态链接库的第二业务系统,进而可以通过第二业务系统的业务表现,间接验证该待验证静态链接库的功能。具体的,可以将各业务系统在编译过程中所用到的静态链接库进行记录,生成各业务系统分别对应的业务系统信息。可以理解,通过查询该业务系统信息,即可确定对应的业务系统在编译过程中会用到哪些静态链接库。
验证终端获取到待验证静态链接库后,通过该待验证静态链接库的库名与各业务系统信息进行对比——若一业务系统信息中存在库名与该待验证静态链接库的库名相同的已记录静态链接库,则说明该业务系统信息对应的业务系统在编译过程中使用到了该静态链接库。进而可以将该业务系统作为第一业务系统,使用待验证静态链接库相应替代对应的已记录静态链接库,进而对第一业务系统重新进行编译,从而获取到对应的第二业务系统。
在一实施例中,确定出的能够通过待验证静态链接库重新编译的第一业务系统存在至少两个。该实施例中,针对每一第一业务系统,均基于该待验证静态链接库对该第一业务系统进行编译,获取对应的第二业务系统,进而能够通过第二业务系统的业务表现,间接验证该待验证静态链接库在该对应业务系统中的功能。
例如:待验证静态链接库为版本为2.0、库名为libhello.a的静态链接库。在各业务系统中,登录业务系统在编译过程中使用了版本为1.5、库名亦为libhello.a的静态链接库;转账业务系统在编译过程中使用了版本为1.7、库名亦为libhello.a的静态链接库。
对于登录业务系统——使用待验证静态链接库替换掉版本为1.5、库名亦为libhello.a的静态链接库,对登录业务系统(即,第一业务系统)重新编译,得到集成了该待验证静态链接库的登录业务系统(即,对应的第二业务系统)。进而可以通过集成了该待验证静态链接库的登录业务系统的业务表现,间接验证该待验证静态链接库在登录业务系统中的功能。
对于转账业务系统——使用待验证静态链接库替换掉版本为1.7、库名亦为libhello.a的静态链接库,对转账业务系统(即,第一业务系统)重新编译,得到集成了该待验证静态链接库的转账业务系统(即,对应的第二业务系统)。进而可以通过集成了该待验证静态链接库的转账业务系统的业务表现,间接验证该待验证静态链接库在转账业务系统中的功能。
可以理解的,第一业务系统与对应的第二业务系统只是在编译时内部所集成的函数存在差异,在应用层面,二者所实现的业务仍然保持一致。理想情况下,若待验证静态链接库功能正常,则第二业务系统的业务表现不劣于第一业务系统的业务表现;而且根据开发待验证静态链接库的预期目的,若待验证静态链接库功能正常,则第二业务系统能够达到该预期目的。例如:开发待验证静态链接库的预期目的为——使得业务系统在进行转账业务时,能够增添聊天功能;若该待验证静态链接库功能正常,则第二业务系统能够在进行转账业务时支持聊天。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
在步骤S330中,将该第二业务系统部署于预设的虚拟化环境,获取该虚拟化环境中的该第二业务系统的业务表现。
在步骤S340中,基于该第二业务系统的业务表现验证该待验证静态链接库的功能。
本公开实施例中,要验证待验证静态链接库的功能,就需要通过第二业务系统(第二业务系统中集成了该待验证静态链接库)的业务表现间接验证。获取第二业务系统的业务表现时,是通过将第二业务系统部署于预设的虚拟化环境,进而可以通过对该虚拟化环境中的该第二业务系统进行测试,获取该虚拟化环境中的该第二业务系统的业务表现。通过在第二业务系统上线前即于该虚拟化环境中测试得到第二业务系统的业务表现,而不是在第二业务系统上线后再根据真实的运行情况得到业务表现,从而能够提前发现第二业务系统集成入该待验证静态链接库后可能存在的问题,提高了该第二业务系统上线后的稳定性。
在一实施例中,将该第二业务系统部署于预设的虚拟化环境,获取该虚拟化环境中的该第二业务系统的业务表现,包括:
获取预设的测试用例;
将该第二业务系统部署于该虚拟化环境;
基于该测试用例对该虚拟化环境中的该第二业务系统进行测试,获取该虚拟化环境中的该第二业务系统的业务表现。
该实施例中,预设有隐藏了底层硬件信息的虚拟化环境;针对预设的第一业务系统,预设有对应的测试用例。
获取到第二业务系统(第二业务系统中集成了该待验证静态链接库)后,将该第二业务系统部署于预设的虚拟化环境,进而使用预设的测试用例对该虚拟化环境中的该第二业务系统进行测试——将测试用例描述的输入数据输入该业务系统,根据测试用例描述的测试步骤控制该业务系统的运行。进而根据该第二业务系统在运行过程中的表现、输出,获取该虚拟化环境中的该第二业务的业务表现(例如:任务处理速率、任务处理正确率)。
在一实施例中,基于该测试用例对该虚拟化环境中的该第二业务系统进行测试,获取该虚拟化环境中的该第二业务系统的业务表现,包括:基于该测试用例对该虚拟化环境中的该第二业务系统进行测试,获取该虚拟化环境中的该第二业务系统在预设时间段内、分别在各预设业务属性上的实际表现。
该实施例中,使用测试用例对该虚拟化环境中的该第二业务系统进行测试的过程中,该第二业务系统按照测试用例的要求持续运行。该第二业务系统运行预设时间段后,验证终端对该第二业务系统在该时间段内的业务表现进行统计,从而获取该虚拟化环境中的该第二业务系统在该时间段内、分别在各预设业务属性上的实际表现。
例如:测试用例描述了作为输入的50000份订单、以及具体的如何处理这5000份订单的步骤;预设时间段为5分钟;预设业务属性包括处理速率、处理准确率。
将这50000份订单输入该虚拟化环境中的该第二业务系统,使得该第二业务系统按照测试用例描述的步骤对这50000份订单进行处理。处理进行5分钟后,验证终端对这5分钟内该第二业务系统处理订单的表现进行统计,从而获取该虚拟化环境中该第二业务系统在这5分钟内对订单的实际处理速率(在处理速率上的实际表现)、实际处理准确率(在处理准确率上的实际表现)。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
在一实施例中,该第二业务系统的业务表现为该第二业务系统在预设时间段内、分别在各预设业务属性上的实际表现,基于该第二业务系统的业务表现验证该待验证静态链接库的功能,包括:
获取分别对该各预设业务属性预设的、在该预设时间段的目标表现;
基于该实际表现与该目标表现的对比,验证该待验证静态链接库的功能。
该实施例中,根据第二业务系统在预设时间段内、分别在各预设业务属性上的实际表现验证待验证静态链接库的功能。具体的,针对每一预设业务属性,预设在该预设时间段的目标表现。即,目标表现描述的是若待验证静态链接库功能正常,该虚拟化环境中的该第二业务系统在对应业务属性所应达到的表现。进而,根据实际表现与目标表现的对比,验证该待验证静态链接库的功能。
例如:预设的时间段为5分钟;预设在这5分钟内、在处理速率上的目标表现,即目标处理速率,为“每分钟处理120份”;预设在这5分钟内、在处理准确率上的目标表现,即目标处理准确率,为“准确率98%”。
获取到该虚拟化环境中该第二业务系统在这5分钟内对订单的实际处理速率(在处理速率上的实际表现)为“每分钟处理125份”、实际处理准确率(在处理准确率上的实际表现)为“准确率99%”。可以理解的,处理速率越快说明业务表现越好;处理准确率越高说明业务表现越好。根据实际处理速率与目标处理速率的对比——实际处理速率大于目标处理速率,以及实际处理准确率与目标处理准确率的对比——实际处理准确率大于目标处理准确率,可确定——该虚拟化环境中的该第二业务系统的业务表现满足预期,从而间接验证了该待验证静态链接库的功能正常。
该实施例的优点在于,通过阶段性的、在预设时间段上的业务表现的对比,从而实现了从第二业务系统的整体业务表现对待验证静态链接库的功能验证。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
在一实施例中,基于该测试用例对该虚拟化环境中的该第二业务系统进行测试,获取该虚拟化环境中的该第二业务系统的业务表现,包括:基于该测试用例对该虚拟化环境中的该第二业务系统进行测试,获取该虚拟化环境中的该第二业务系统分别在各预设业务属性上的实时表现。
该实施例中,使用测试用例对该虚拟化环境中的该第二业务系统进行测试的过程中,该第二业务系统按照测试用例的要求持续运行。该第二业务系统运行期间,验证终端实时对该第二业务系统的业务表现进行统计,从而获取该虚拟化环境中的该第二业务系统分别在各预设业务属性上的实时表现。
例如:测试用例描述了作为输入的50000份订单、以及具体的如何处理这5000份订单的步骤;预设业务属性包括处理速率、处理准确率。
将这50000份订单输入该虚拟化环境中的该第二业务系统,使得该第二业务系统按照测试用例描述的步骤对这50000份订单进行处理。处理过程中,验证终端对该第二业务系统处理订单的实时表现进行统计,从而获取该虚拟化环境中该第二业务系统对订单的实时处理速率、实时处理准确率。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
在一实施例中,该第二业务系统的业务表现为该第二业务系统分别在各预设业务属性上的实时表现,基于该第二业务系统于该虚拟化环境中的业务表现验证该待验证静态链接库的功能,包括:
基于该实时表现,获取该第二业务系统分别在该各预设业务属性上的业务曲线;
基于该业务曲线,验证该待验证静态链接库的功能。
该实施例中,根据第二业务系统分别在各预设业务属性上的实时表现验证待验证静态链接库的功能。具体的,针对每一预设业务属性,基于第二业务系统在该业务属性上的实时表现,获取该第二业务系统在该业务属性上的业务曲线。进而,基于该业务曲线,验证该待验证静态链接库的功能。例如:对业务曲线上各点的斜率变化进行分析,从而确定该虚拟化环境中的该第二业务系统的业务表现是否正常(或者是否达到预期目的),进而间接验证待验证静态链接库的功能;或者将生成的业务曲线呈现给开发人员,由开发人员自行根据业务曲线判断该虚拟化环境中的该第二业务系统的业务表现是否正常(或者是否达到预期目的),进而间接验证待验证静态链接库的功能。
可以理解的,上述有关获取虚拟化环境中的第二业务系统的业务表现进而在此基础上验证待验证静态链接库的功能的过程只是示例性的。可以将虚拟化环境中的第二业务系统在预设时间段内的实际表现、虚拟化环境中的第二业务系统在预设时间段内的目标表现、与虚拟化环境中的第二业务系统的实时表现相结合,进而验证待验证静态链接库的功能。
该实施例的优点在于,通过业务曲线,呈现出第二业务系统的实时业务表现,即可以更细致地对第二业务系统的实时业务表现进行分析,也可以更直观地将第二业务系统的实时业务表现呈现给开发人员,提高了对待验证静态链接库进行功能验证的准确率。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
在一实施例中,在基于该第二业务系统的业务表现验证该待验证静态链接库的功能之前,该方法还包括:将该第一业务系统部署于该虚拟化环境,获取该虚拟化环境中的该第一业务系统的业务表现;
基于该第二业务系统的业务表现验证该待验证静态链接库的功能,包括:基于该第一业务系统的业务表现与该第二业务系统的业务表现的对比,验证该待验证静态链接库的功能。
该实施例中,验证终端除了将第二业务系统部署于虚拟化环境外,还将第一业务系统部署于该虚拟化环境。
可以对该虚拟化环境中的该第二业务系统进行测试的同时,也对该虚拟化环境中的该第一业务系统进行同样的测试。从而获取到该虚拟化环境中该第一业务系统的业务表现、以及该虚拟化环境中该第二业务系统的业务表现,进而将二者进行对比,验证该待验证静态链接库的功能。具体的,由于第一业务系统是已上线的能够正常运行的业务系统,因此第一业务系统的业务表现可以作为对比的基准——若第二业务系统的业务表现不劣于第一业务系统的业务表现,则说明第二业务系统的业务表现正常,进而间接证明待验证静态链接库的功能正常;若第二业务系统的业务表现劣于第一业务系统的业务表现,则说明第二业务系统的业务表现不正常,进而间接证明待验证静态链接库的功能不正常。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
参考图4所示,图4示出了本公开一实施例的虚拟化环境中的业务系统的更新过程。该实施例中,预先在物理机上设置有多个虚拟机——虚拟机1、虚拟机2、一直到虚拟机n。将已上线的、正常运行的业务系统作为用于参考的“基线版本的业务系统”部署于虚拟机2中,并维护该“基线版本的业务系统”在虚拟机2中的环境中可用,保证“基线版本的业务系统”在虚拟机2的环境中能正常运行。
当更新了一待验证静态链接库,而该待验证静态链接库正是该“基线版本的业务系统”在编译过程中会使用到的时,就需要验证该待验证静态链接库在“基线版本的业务系统”中是否能够行使正常的功能。
具体的,使用该待验证静态链接库,对“基线版本的业务系统”重新编译,得到“待更新版本的业务系统”。进而更新虚拟机2中的可执行文件——将虚拟机2中的“基线版本的业务系统”替换为“待更新版本的业务系统”,对虚拟机2中的该“待更新版本的业务系统”进行测试,根据该“待更新版本的业务系统”的业务表现与“基线版本的业务系统”的业务表现的对比,确定该“待更新版本的业务系统”的业务表现是否正常,进而间接验证该待验证静态链接库的功能。
当对该待验证静态链接库的功能验证完成后,将虚拟机2中的该“待更新版本的业务系统”还原为“基线版本的业务系统”,以在“基线版本的业务系统”的基础上继续对其他待验证静态链接库进行验证。
该实施例的优点在于,通过设置、维护作为参考的“基线版本的业务系统”(即,第一业务系统),使得对于待验证静态链接库的功能验证具有更高的灵活性与更强的对比度。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
图5示出了本公开一实施例的验证静态链接库的功能的完整流程图。该实施例中,开发人员设置新版本的静态链接库的信息(例如:库名、版本号、存放路径);验证终端获取各业务系统的业务系统信息,进而根据业务系统信息,确定哪些业务系统会使用该新版本的静态链接库——需要验证该新版本的静态链接库,在这些会使用该新版本的静态链接库的业务系统中是否能够正常行使功能;使用该新版本的静态链接库对这些业务系统重新编译;将重新编译后的业务系统部署到虚拟化环境中;执行测试用例对虚拟化环境中的这些业务系统进行测试,将测试得到的这些业务系统的业务表现作为结果进行展示,进而能够根据结果验证该新版本的静态链接库的功能。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
根据本公开一实施例,如图6所示,还提供了一种静态链接库功能验证装置,所述装置包括:
第一获取模块410,配置为获取待验证静态链接库;
第二获取模块420,配置为基于所述待验证静态链接库对预设的第一业务系统进行编译,获取对应的第二业务系统;
第三获取模块430,配置为将所述第二业务系统部署于预设的虚拟化环境,获取所述第二业务系统于所述虚拟化环境中的业务表现;
验证模块440,配置为基于所述第二业务系统于所述虚拟化环境中的业务表现验证所述待验证静态链接库的功能。
在本公开的一示例性实施例中,所述第三获取模块430配置为:
获取预设的测试用例;
将所述第二业务系统部署于所述虚拟化环境;
基于所述测试用例对所述虚拟化环境中的所述第二业务系统进行测试,获取所述虚拟化环境中的所述第二业务系统的业务表现。
在本公开的一示例性实施例中,所述第三获取模块430配置为:基于所述测试用例对所述虚拟化环境中的所述第二业务系统进行测试,获取所述虚拟化环境中的所述第二业务系统在预设时间段内、分别在各预设业务属性上的实际表现。
在本公开的一示例性实施例中,所述第三获取模块430配置为:基于所述测试用例对所述虚拟化环境中的所述第二业务系统进行测试,获取所述虚拟化环境中的所述第二业务系统分别在各预设业务属性上的实时表现。
在本公开的一示例性实施例中,所述第二业务系统的业务表现为所述第二业务系统在预设时间段内、分别在各预设业务属性上的实际表现,所述验证模块440配置为:
获取分别对所述各预设业务属性预设的、在所述预设时间段的目标表现;
基于所述实际表现与所述目标表现的对比,验证所述待验证静态链接库的功能。
在本公开的一示例性实施例中,所述第二业务系统的业务表现为所述第二业务系统分别在各预设业务属性上的实时表现,所述验证模块440配置为:
基于所述实时表现,获取所述第二业务系统分别在所述各预设业务属性上的业务曲线;
基于所述业务曲线,验证所述待验证静态链接库的功能。
在本公开的一示例性实施例中,所述装置配置为:
将所述第一业务系统部署于所述虚拟化环境,获取所述虚拟化环境中的所述第一业务系统的业务表现;
基于所述第一业务系统的业务表现与所述第二业务系统的业务表现的对比,验证所述待验证静态链接库的功能。
下面参考图7来描述根据本公开实施例的静态链接库功能验证电子设备50。图7显示的静态链接库功能验证电子设备50仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,静态链接库功能验证电子设备50以通用计算设备的形式表现。静态链接库功能验证电子设备50的组件可以包括但不限于:上述至少一个处理单元510、上述至少一个存储单元520、连接不同系统组件(包括存储单元520和处理单元510)的总线530。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元510执行,使得所述处理单元510执行本说明书上述示例性方法的描述部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元510可以执行如图3中所示的各个步骤。
存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)5201和/或高速缓存存储单元5202,还可以进一步包括只读存储单元(ROM)5203。
存储单元520还可以包括具有一组(至少一个)程序模块5205的程序/实用工具5204,这样的程序模块5205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
静态链接库功能验证电子设备50也可以与一个或多个外部设备600(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该静态链接库功能验证电子设备50交互的设备通信,和/或与使得该静态链接库功能验证电子设备50能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口550进行。输入/输出(I/O)接口550与显示单元540相连。并且,静态链接库功能验证电子设备50还可以通过网络适配器560与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器560通过总线530与静态链接库功能验证电子设备50的其它模块通信。应当明白,尽管图中未示出,可以结合静态链接库功能验证电子设备50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述方法实施例部分描述的方法。
根据本公开的一个实施例,还提供了一种用于实现上述方法实施例中的方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RGM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如JAVA、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(KGN)或广域网(WGN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种静态链接库功能验证方法,其特征在于,所述方法包括:
将第一业务系统部署至预设的虚拟机,并维护所述第一业务系统在所述虚拟机中的可用性;
获取待验证静态链接库;
基于所述待验证静态链接库对所述第一业务系统进行编译,获取对应的集成有所述静态链接库的第二业务系统;
在所述虚拟机中使用所述第二业务系统替换所述第一业务系统,并获取所述虚拟机中的所述第二业务系统的业务表现;
基于所述第二业务系统的业务表现验证所述待验证静态链接库的功能;
在功能验证完成后,将所述虚拟机中的所述第二业务系统还原为所述第一业务系统。
2.根据权利要求1所述的方法,其特征在于,获取所述虚拟机中的所述第二业务系统的业务表现,包括:
获取预设的测试用例;
基于所述测试用例对所述虚拟机中的所述第二业务系统进行测试,获取所述虚拟机中的所述第二业务系统的业务表现。
3.根据权利要求2所述的方法,其特征在于,基于所述测试用例对所述虚拟机中的所述第二业务系统进行测试,获取所述虚拟机中的所述第二业务系统的业务表现,包括:基于所述测试用例对所述虚拟机中的所述第二业务系统进行测试,获取所述虚拟机中的所述第二业务系统在预设时间段内、分别在各预设业务属性上的实际表现。
4.根据权利要求2所述的方法,其特征在于,基于所述测试用例对所述虚拟机中的所述第二业务系统进行测试,获取所述虚拟机中的所述第二业务系统的业务表现,包括:基于所述测试用例对所述虚拟机中的所述第二业务系统进行测试,获取所述虚拟机中的所述第二业务系统分别在各预设业务属性上的实时表现。
5.根据权利要求1所述的方法,其特征在于,所述第二业务系统的业务表现为所述第二业务系统在预设时间段内、分别在各预设业务属性上的实际表现,基于所述第二业务系统的业务表现验证所述待验证静态链接库的功能,包括:
获取分别对所述各预设业务属性预设的、在所述预设时间段的目标表现;
基于所述实际表现与所述目标表现的对比,验证所述待验证静态链接库的功能。
6.根据权利要求1所述的方法,其特征在于,所述第二业务系统的业务表现为所述第二业务系统分别在各预设业务属性上的实时表现,基于所述第二业务系统的业务表现验证所述待验证静态链接库的功能,包括:
基于所述实时表现,获取所述第二业务系统分别在所述各预设业务属性上的业务曲线;
基于所述业务曲线,验证所述待验证静态链接库的功能。
7.根据权利要求1所述的方法,其特征在于,在基于所述第二业务系统的业务表现验证所述待验证静态链接库的功能之前,所述方法还包括:获取所述虚拟机中的所述第一业务系统的业务表现;
基于所述第二业务系统的业务表现验证所述待验证静态链接库的功能,包括:基于所述第一业务系统的业务表现与所述第二业务系统的业务表现的对比,验证所述待验证静态链接库的功能。
8.一种静态链接库功能验证装置,其特征在于,所述装置包括:
部署维护模块,配置为将第一业务系统部署至预设的虚拟机,并维护所述第一业务系统在所述虚拟机中的可用性;
第一获取模块,配置为获取待验证静态链接库;
第二获取模块,配置为基于所述待验证静态链接库对所述第一业务系统进行编译,获取对应的集成有所述静态链接库的第二业务系统;
第三获取模块,配置为在所述虚拟机中使用所述第二业务系统替换所述第一业务系统,并获取所述虚拟机中的所述第二业务系统的业务表现;
验证模块,配置为基于所述第二业务系统的业务表现验证所述待验证静态链接库的功能;
还原模块,配置为在功能验证完成后,将所述虚拟机中的所述第二业务系统还原为所述第一业务系统。
9.一种静态链接库功能验证电子设备,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求1-7中的任一个所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1-7中的任一个所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010089328.0A CN111258910B (zh) | 2020-02-12 | 2020-02-12 | 静态链接库功能验证方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010089328.0A CN111258910B (zh) | 2020-02-12 | 2020-02-12 | 静态链接库功能验证方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258910A CN111258910A (zh) | 2020-06-09 |
CN111258910B true CN111258910B (zh) | 2021-11-05 |
Family
ID=70952579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010089328.0A Active CN111258910B (zh) | 2020-02-12 | 2020-02-12 | 静态链接库功能验证方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258910B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391692A (zh) * | 2014-11-10 | 2015-03-04 | 上海交通大学 | 用于读写psd-bpa数据文件的面向对象编程方法 |
CN105825085A (zh) * | 2016-03-16 | 2016-08-03 | 广州彩瞳网络技术有限公司 | 应用程序的处理方法及装置 |
US20170331850A1 (en) * | 2016-05-12 | 2017-11-16 | Synopsys, Inc. | Systems and methods for analyzing software using queries |
-
2020
- 2020-02-12 CN CN202010089328.0A patent/CN111258910B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391692A (zh) * | 2014-11-10 | 2015-03-04 | 上海交通大学 | 用于读写psd-bpa数据文件的面向对象编程方法 |
CN105825085A (zh) * | 2016-03-16 | 2016-08-03 | 广州彩瞳网络技术有限公司 | 应用程序的处理方法及装置 |
US20170331850A1 (en) * | 2016-05-12 | 2017-11-16 | Synopsys, Inc. | Systems and methods for analyzing software using queries |
Also Published As
Publication number | Publication date |
---|---|
CN111258910A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10606739B2 (en) | Automated program code analysis and reporting | |
US11151024B2 (en) | Dynamic automation of DevOps pipeline vulnerability detecting and testing | |
KR102077360B1 (ko) | 애플리케이션에 대한 중간 언어 코드로부터 네이티브 코드를 생성하는 기법 | |
US10255086B2 (en) | Determining optimal methods for creating virtual machines | |
US11675575B2 (en) | Checking source code validity at time of code update | |
US9898258B2 (en) | Versioning of build environment information | |
CN110674047B (zh) | 软件测试方法、装置及电子设备 | |
CN110058861B (zh) | 源码处理方法及装置、存储介质、电子设备 | |
US10380313B1 (en) | Implementation and evaluation of designs for heterogeneous computing platforms with hardware acceleration | |
US11030074B2 (en) | Code update based on detection of change in runtime code during debugging | |
CN108089870B (zh) | 用于修复应用的方法和装置 | |
US11042466B2 (en) | Exception prediction before an actual exception during debugging | |
CN111258910B (zh) | 静态链接库功能验证方法、装置、电子设备及存储介质 | |
US11947966B2 (en) | Identifying computer instructions enclosed by macros and conflicting macros at build time | |
US10248554B2 (en) | Embedding profile tests into profile driven feedback generated binaries | |
CN114174983B (zh) | 用于高级构造的优化的自动验证的方法和系统 | |
EP3379409A1 (en) | Automated program code analysis and reporting | |
US20230267066A1 (en) | Software anomaly detection | |
US11269596B2 (en) | Automated microservice creation based on user interaction | |
US20230229581A1 (en) | Identifying regression test failures | |
CN117453302A (zh) | 导入软件开发包的方法、装置、设备及计算机可读介质 | |
CN114327648A (zh) | 一种驱动调试方法、装置、电子设备及存储介质 | |
Huang et al. | Binary analysis and automated hot patching for Web-based applications |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |