一种解除函数外部耦合及测试方法技术

技术编号:18367270 阅读:29 留言:0更新日期:2018-07-05 08:23
本发明专利技术为一种解除函数外部耦合及测试方法,包括以下步骤:函数分类:分析被测源文件,并对待测函数进行分类;函数耦合:根据函数分类进行耦合,如果待测函数本身是非耦合函数,则进行下一步骤;如果函数存在耦合,则设立外部耦合函数,然后再进行下一步骤;函数测试:利用测试单元工具生成测试用例,并根据函数分类和函数耦合情况进行测试;本方法在函数解耦后间接初始化了外部变量或公共数据,不需要人工添加初始化,单元测试效率得到大幅度提高。

A method of external coupling and testing of relieving function

The present invention is a method of external coupling and testing of the release function, including the following steps: Function Classification: analyzing the measured source files and classifying the measurement functions; function coupling: coupling according to the function classification, if the function itself is a non coupling function, the next step is carried out; if the function exists coupling, Then the external coupling function is set up, and then the next step is carried out; function test: test use case is generated by using test unit tool and tested according to function classification and function coupling. This method initializes external variables or public data indirectly after function decoupling, and does not need artificial adding initialization and unit testing. The efficiency has been greatly improved.

【技术实现步骤摘要】
一种解除函数外部耦合及测试方法
本专利技术涉及嵌入式软件领域,尤其是一种解除函数外部耦合及测试方法。技术背景在嵌入式软件领域,单元测试技术已经被广泛应用,在现有软件产品中,存在着大量高外部耦合的函数,即这些函数在函数内部直接调用访问外部变量或者公共数据。目前,大多数的单元测试工具,在为这些外部耦合函数自动生成单元测试用例时,测试工具只能对函数的形参列表进行初始化并测试,并不能自动初始化函数内部访问到的外部数据,而现有的解决方案是,在工具生成测试用例后,人工在测试用例中添加被测函数使用到的外部变量的初始化,当测试用例有成千上万条时,这个方案效率低下,维护困难。
技术实现思路
为了解决上述问题,本专利技术的目的是提供一种解除函数外部耦合及测试方法,本方法在函数解耦后,并对外部数据分析,达到函数低耦合高内聚的效果,提高函数的复用性,降低软件后期维护成本,而且,解耦后的函数通过工具生成单元测试用例,包含了函数形参的各种初始化组合,间接初始化了外部变量或公共数据,不需要人工添加初始化,单元测试效率得到大幅度提高。本专利技术的技术方案如下:一种解除函数外部耦合及测试方法,包括以下步骤:首先,函数分类:分析被测源文件,并对待测函数进行分类;然后,函数耦合:根据函数分类进行耦合,如果待测函数本身是非耦合函数,则进行下一步骤;如果函数存在耦合,则设立外部耦合函数,然后再进行下一步骤;最后,函数测试:利用测试单元工具生成测试用例,并根据函数分类和函数耦合情况进行测试。进一步的,所述函数耦合的待测函数存在外部数据变量,通过外部数据变量对待测函数进行解耦封装,并把外部数据以形式参数的方式引入设立的外部耦合函数。进一步的,所述外部耦合函数的形参列表通过测试单元直接自动生成。采用以上技术方案的有益效果是:本方法在函数解耦后,并对外部数据分析,达到函数低耦合高内聚的效果,提高函数的复用性,降低软件后期维护成本,而且,解耦后的函数通过工具生成单元测试用例,包含了函数形参的各种初始化组合,间接初始化了外部变量或公共数据,不需要人工添加初始化,单元测试效率得到大幅度提高。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成本申请的不当限定。在附图中:图1为本专利技术的整体流程图;图2为本专利技术的一个举例的流程图。图中的数字或字母代表的相应部件的名称:S100.函数分类,S200.函数耦合,S300.函数测试。具体实施例如附图1所示,一种解除函数外部耦合及测试方法,为了省略在测试函数时,需要人工在测试用例中初始化外部数据变量的步骤,提供以下解除函数外部耦合的步骤:首先,函数分类S100:分析被测源文件,并对待测函数进行分类;然后,函数耦合S200:函数分类进行耦合,如果待测函数本身是非耦合函数,则进行下一步;如果函数存在耦合,则设立外部耦合函数,待测函数存在外部数据变量,通外部数据变量对待测函数进行解耦封装,并把外部数据以形式参数的方式引入设立的外部耦合函数,然后再进行下一步;最后,函数测试S300:利用测试单元工具生成测试用例,并根据函数耦合情况进行测试,外部耦合函数的形参列表通过测试单元直接自动生成。本专利技术的以待测函数为f()和耦合后的函数为f(x,y)为例,如图2所示:首先,获取全局变量X和Y,然后,对函数进行解耦封装,把外部数据通过形式参数的方式引入函数f(x,y),最后,利用单元测试工具测试用例,自动初始化函数形参列表。单元测试工具:常用的单元测工具主要有C++Test和CppUnit两种,其中又以前者为主。本专利技术在函数解耦后,并对外部数据分析,达到函数低耦合高内聚的效果,提高函数的复用性,降低软件后期维护成本,而且,解耦后的函数通过工具生成单元测试用例,包含了函数形参的各种初始化组合,间接初始化了外部变量或公共数据,不需要人工添加初始化,单元测试效率得到大幅度提高。以下是结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本文档来自技高网...
一种解除函数外部耦合及测试方法

【技术保护点】
1.一种解除函数外部耦合及测试方法,其特征在于,包括以下步骤:函数分类:分析被测源文件,并对待测函数进行分类;函数耦合:根据函数分类进行耦合,如果待测函数本身是非耦合函数,则进行下一步骤;如果函数存在耦合,则设立外部耦合函数,然后再进行下一步骤;函数测试:利用测试单元工具生成测试用例,并根据函数分类和函数耦合情况进行测试。

【技术特征摘要】
1.一种解除函数外部耦合及测试方法,其特征在于,包括以下步骤:函数分类:分析被测源文件,并对待测函数进行分类;函数耦合:根据函数分类进行耦合,如果待测函数本身是非耦合函数,则进行下一步骤;如果函数存在耦合,则设立外部耦合函数,然后再进行下一步骤;函数测试:利用测试单元工具生成测试用例,并根据函数分类和函数耦合情况进行测试...

【专利技术属性】
技术研发人员:方加强方泽文
申请(专利权)人:惠州市德赛西威汽车电子股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1