本发明专利技术提供了一种基于代码注入方式的测试方法,包括以下步骤:将驱动模块和桩模块编译成动态链接库;在被测单元运行后,使用注入工具将动态链接库加载至被测单元中;使用注入工具指定驱动模块和桩模块要替换的被测单元中的函数;以及对被测单元进行测试。
【技术实现步骤摘要】
本专利技术总体上涉及计算机领域,更具体地,涉及基于代码注入方式的测试方法和>J-U装直。
技术介绍
软件测试是软件质量保证的重要手段,是软件工程中不可分割的一个重要组成部分。软件测试是一个程序或系统的执行过程,这个过程不仅仅是发现错误,更主要的,是评测一个程序或系统的品质和性能以判定其是否符合质量要求的所有活动。随着测试过程的逐步深入,缺陷的逐步修复,软件质量也在逐步的提高和改善。从测试级别软件测试可以归纳如下单元测试,组件测试,集成测试和系统测试。单元测试针对程序单元,而程序单元并不是一个独立可运行的程序,因此,在考虑测试模块时,同时要考虑到和其他模块的联系,用一些辅助模块去模拟与被测模块关联的其他模块。这些模块分为两种驱动模块和桩模块。单元测试,需要将这些模块替换程序中的相关模块,因此每次测试时都需要重新编译。
技术实现思路
为此,本专利技术提供了一种基于代码注入方式的测试方法,包括以下步骤将驱动模块和桩模块编译成动态链接库;在被测单元运行后,使用注入工具将动态链接库加载至被测单元中;使用注入工具指定驱动模块和桩模块要替换的被测单元中的函数;以及对被测单元进行测试。其中,动态链接库是包含由多个程序同时使用的代码和数据的库。其中,测试方法基于Windows系统。其中,测试方法基于Iinux系统。此外,还提供了一种基于代码注入方式的测试装置,包括编译模块,用于将驱动模块和桩模块编译成动态链接库;加载模块,用于在被测单元运行后使用注入工具将动态链接库加载至被测单元中;指定模块,用于使用注入工具指定驱动模块和桩模块要替换的被测单元中的函数;以及测试模块,用于对被测单元进行测试。其中,动态链接库是包含由多个程序同时使用的代码和数据的库。其中,测试装置基于Windows系统。其中,测试装置基于Iinux系统。附图说明当结合附图进行阅读时,根据下面详细的描述可以更好地理解本专利技术。应该强调的是,根据工业中的标准实践,各种部件没有被按比例绘制。实际上,为了清楚的讨论,各种部件的尺寸可以被任意增加或减少图1是示出了根据本专利技术的示例性实施例的基于代码注入方式的测试方法的流程图;以及图2是示出了根据本专利技术的示例性实施例的基于代码注入方式的测试装置的框图。具体实施例方式为了实施本专利技术的不同部件,以下描述提供了许多不同的实施例或示例。以下描述元件和布置的特定示例以简化本专利技术。当然这些仅仅是示例并不打算限定。再者,以下描述中第一部件形成在第二部件上可包括其中第一和第二部件以直接接触形成的实施例,并且也可包括其中额外的部件形成插入到第一和第二部件中的实施例,使得第一和第二部件不直接接触。为了简明和清楚,可以任意地以不同的尺寸绘制各种部件。关于第一实施例,提供了一种基于代码注入方式的测试方法,如图1所示,包括以下步骤S101,将驱动模块和桩模块编译成动态链接库;S103,在被测单元运行后,使用注入工具将动态链接库加载至被测单元中;S105,使用注入工具指定驱动模块和桩模块要替换的被测单元中的函数;以及S107,对被测单元进行测试。优选地,动态链接库是包含由多个程序同时使用的代码和数据的库。优选地,测试方法基于Windows系统。优选地,测试方法基于Iinux系统。关于第二实施例,提供了一种基于代码注入方式的测试装置,如图2所示,包括编译模块201,用于将驱动模块和桩模块编译成动态链接库;加载模块203,用于在被测单元运行后使用注入工具将动态链接库加载至被测单元中;指定模块205,用于使用注入工具指定驱动模块和桩模块要替换的被测单元中的函数;以及测试模块207,用于对被测单元进行测试。优选地,动态链接库是包含由多个程序同时使用的代码和数据的库。其中,windows平台下动态链接库英文为DLL,是Dynamic Link Library的缩写形式,Linux平台下动态链接库英文为SO,是Shared Object的缩写形式。动态链接库是一个包含可由多个程序同时使用的代码和数据的库,动态链接库DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个动态链接库DLL中,该动态链接库DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。动态链接库DLL还有助于共享数据和资源。多个应用程序可同时访问内存中单个动态链接库DLL副本的内容。动态链接库DLL是一个包含可由多个程序同时使用的代码和数据的库。驱动模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块,并打印出相应的结果。桩模块(Stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。主模块作为驱动模块,与之直接相连的模块用桩模块代替。在集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。具体地,可以按如下方式实施本专利技术(I)将驱动模块和桩模块编译成动态链接库(2)被测试程序运行后,使用Inject工具将动态链接库加载至被测试程序中。(3)使用Inject工具,指定驱动模块和桩模块要替换的被测试程序中的函数。(4)对被测试程序进行测试。本专利技术使用代码注入的方式,动态的进行模块替换,无需重新编译,在程序运行过程中随时可以进行测试,提高了测试效率。本专利技术的关键点在于使用代码注入方式,在程序运行过程中动态替换模块,进行测试。上面论述了若干实施例的部件,使得本领域普通技术人员可以更好地理解本专利技术的各个方面。本领域普通技术人员应该理解,可以很容易地使用本专利技术作为基础来设计或更改其他用于达到与这里所介绍实施例相同的目的和/或实现相同优点的处理和结构。本领域普通技术人员也应该意识到,这种等效构造并不背离本专利技术的精神和范围,并且在不背离本专利技术的精神和范围的情况下,可以进行多种变化、替换以及改变。本文档来自技高网...
【技术保护点】
一种基于代码注入方式的测试方法,其特征在于,包括以下步骤:将驱动模块和桩模块编译成动态链接库;在被测单元运行后,使用注入工具将所述动态链接库加载至所述被测单元中;使用所述注入工具指定所述驱动模块和所述桩模块要替换的所述被测单元中的函数;以及对所述被测单元进行测试。
【技术特征摘要】
1.一种基于代码注入方式的测试方法,其特征在于,包括以下步骤 将驱动模块和桩模块编译成动态链接库; 在被测单元运行后,使用注入工具将所述动态链接库加载至所述被测单元中; 使用所述注入工具指定所述驱动模块和所述桩模块要替换的所述被测单元中的函数;以及 对所述被测单元进行测试。2.根据权利要求1所述的方法,其特征在于,所述动态链接库是包含由多个程序同时使用的代码和数据的库。3.根据权利要求1所述的方法,其特征在于,所述测试方法基于Windows系统。4.根据权利要求1所述的方法,其特征在于,所述测试方法基于Iinux系统。5.一种基于代码注入方...
【专利技术属性】
技术研发人员:彭成,付根希,姜国梁,苗艳超,刘新春,邵宗有,
申请(专利权)人:曙光信息产业北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。