CN103377121B - 一种耦合风险的检测方法和装置 - Google Patents

一种耦合风险的检测方法和装置 Download PDF

Info

Publication number
CN103377121B
CN103377121B CN201210123533.XA CN201210123533A CN103377121B CN 103377121 B CN103377121 B CN 103377121B CN 201210123533 A CN201210123533 A CN 201210123533A CN 103377121 B CN103377121 B CN 103377121B
Authority
CN
China
Prior art keywords
module
function
detected
communication interface
determining
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
Application number
CN201210123533.XA
Other languages
English (en)
Other versions
CN103377121A (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201210123533.XA priority Critical patent/CN103377121B/zh
Publication of CN103377121A publication Critical patent/CN103377121A/zh
Application granted granted Critical
Publication of CN103377121B publication Critical patent/CN103377121B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种耦合风险的检测方法和装置,其中检测方法包括:确定待检测模块中发生变更的函数,并读取所述待检测模块的接口注册信息;基于所述接口注册信息判断所述函数变更的影响是否可达所述待检测模块外部,如果是,则确定所述待检测模块与影响可达的模块之间存在耦合风险;否则,确定所述待检测模块与其他模块不存在耦合风险。本发明实现了耦合风险的自动检测,不再依靠开发人员的主观感觉或经验,避免了准确性受人为因素的影响。

Description

一种耦合风险的检测方法和装置
【技术领域】
本发明涉及计算机应用技术领域,特别涉及一种耦合风险的检测方法和装置。
【背景技术】
在多模块的项目开发中,模块之间因为通信关系产生耦合。假设模块1和模块2发生耦合,如果模块1被模块2调用的通信接口if发生变更,如果这种变更对模块2不透明时,如果开发人员因沟通不畅或者没有意识而不知道本次变更,导致模块2没有进行接口的相应升级,这可能带来模块之间通信失败或不畅的风险,因此模块之间耦合风险的检测十分重要。
在现有技术中,模块之间耦合风险的检测主要依靠开发人员的主观感觉或经验,准确性受人为因素影响较大。
【发明内容】
本发明提供了一种耦合风险的检测方法和装置,以便于避免准确性受人为因素的影响。
具体技术方案如下:
一种耦合风险的检测方法,该检测方法包括:
S1、确定待检测模块中发生变更的函数,并读取所述待检测模块的接口注册信息;
S2、基于所述接口注册信息判断所述函数变更的影响是否可达所述待检测模块外部,如果是,则确定所述待检测模块与影响可达的模块之间存在耦合风险;否则,确定所述待检测模块与其他模块不存在耦合风险。
根据本发明一优选实施例,在所述步骤S2之后还包括:
S3、对存在耦合风险的模块之间调用相应的集成测试用例进行测试,如果测试失败,则验证确实存在耦合风险。
根据本发明一优选实施例,步骤S1中所述确定待检测模块中发生变更的函数具体包括:
通过diff工具比较所述待检测模块的两个版本,获取到发生变更的函数集合;所述发生变更的函数包括:删除的函数集合、修改的函数集合和新增的函数集合。
根据本发明一优选实施例,所述步骤S2包括:
判断删除的函数集合中是否存在对外通信接口,如果是,则确定函数删除的影响可达所述待检测模块外部,通过所述接口注册信息确定该对外通信接口对应的外部模块,检测到所述待检测模块与确定的该外部模块之间存在耦合风险。
根据本发明一优选实施例,所述步骤S2包括:
判断修改的函数集合中是否有函数存在于通信接口语法树的非根节点上,如果是,则确定函数修改的影响可达所述待检测模块外部,确定所述通信接口语法树的根节点以及通过接口注册信息确定以该根节点为对外通信接口对应的外部模块,检测到所述待检测模块与确定的该外部模块之间存在耦合风险。
根据本发明一优选实施例,所述步骤S2包括针对新增的函数集合中的函数逐一执行以下检测步骤:
A1、判断当前函数是否存在调用者,如果否,执行步骤A2;否则,执行步骤A3;
A2、判断当前函数是否为对外通信接口,如果是,确定函数新增的影响可达所述待检测模块外部,通过接口注册信息确定该对外通信接口对应的外部模块,检测出所述待检测模块与确定出的该外部模块之间存在耦合风险,结束对当前函数的检测;
A3、判断调用者是否为新增函数,如果是,结束对当前函数的检测,否则,执行步骤A4;
A4、判断调用者是否存在于通信接口语法树的非根节点上,如果是,则确定函数新增的影响可达所述待检测模块外部,确定所在的通信接口语法树的根节点以及通过接口注册信息确定以该根节点为对外通信接口对应的外部模块,检测出所述待检测模块与确定出的该外部模块之间存在耦合风险。
根据本发明一优选实施例,该方法进一步包括:
将存在耦合风险的模块之间的函数调用关系通过图表进行展现;或者,
检测出所述待检测模块与确定出的该外部模块之间存在耦合风险后,发送耦合风险通知。
一种耦合风险的检测装置,该检测装置包括:
变更函数确定单元,用于确定待检测模块中发生变更的函数;
注册信息读取单元,用于读取所述待检测模块的接口注册信息;
耦合风险检测单元,用于基于所述接口注册信息判断所述函数变更的影响是否可达所述待检测模块外部,如果是,则确定所述待检测模块与影响可达的模块之间存在耦合风险;否则,确定所述待检测模块与其他模块不存在耦合风险。
根据本发明一优选实施例,该装置还包括:耦合风险验证单元,用于对存在耦合风险的模块之间调用相应的集成测试用例进行测试,如果测试失败,则验证确实存在耦合风险。
根据本发明一优选实施例,变更函数确定单元通过diff工具比较所述待检测模块的两个版本,获取到发生变更的函数集合;所述发生变更的函数包括:删除的函数集合、修改的函数集合和新增的函数集合。
根据本发明一优选实施例,所述耦合风险检测单元包括:删除函数检测子单元,用于判断删除的函数集合中是否存在对外通信接口,如果是,则确定函数删除的影响可达所述待检测模块外部,通过所述接口注册信息确定该对外通信接口对应的外部模块,检测到所述待检测模块与确定的该外部模块之间存在耦合风险。
根据本发明一优选实施例,所述耦合风险检测单元包括:修改函数检测子单元,用于判断修改的函数集合中是否有函数存在于通信接口语法树的非根节点上,如果是,则确定函数修改的影响可达所述待检测模块外部,确定所述通信接口语法树的根节点以及通过接口注册信息确定以该根节点为对外通信接口对应的外部模块,检测到所述待检测模块与确定的该外部模块之间存在耦合风险。
根据本发明一优选实施例,所述耦合风险检测单元包括:新增函数检测子单元,用于针对新增的函数集合中的函数逐一执行以下检测操作:
A1、判断当前函数是否存在调用者,如果否,执行操作A2;否则,执行操作A3;
A2、判断当前函数是否为对外通信接口,如果是,确定函数新增的影响可达所述待检测模块外部,通过接口注册信息确定该对外通信接口对应的外部模块,检测出所述待检测模块与确定出的该外部模块之间存在耦合风险,结束对当前函数的检测;
A3、判断调用者是否为新增函数,如果是,结束对当前函数的检测,否则,执行操作A4;
A4、判断调用者是否存在于通信接口语法树的非根节点上,如果是,则确定函数新增的影响可达所述待检测模块外部,确定所在的通信接口语法树的根节点以及通过接口注册信息确定以该根节点为对外通信接口对应的外部模块,检测出所述待检测模块与确定出的该外部模块之间存在耦合风险。
根据本发明一优选实施例,该装置进一步包括:图表展现单元或者风险通知单元;
所述图表展现单元,用于将存在耦合风险的模块之间的函数调用关系通过图表进行展现;
所述风险通知单元,用于检测出所述待检测模块与确定出的该外部模块之间存在耦合风险后,发送耦合风险通知。
由以上技术方案可以看出,本发明能够基于接口注册信息检测出待检测模块中函数变更的影响是否可达待检测模块外部,如果是,则确定出待检测模块与影响可达的模块之间存在耦合风险,从而实现了耦合风险的自动检测,不再依靠开发人员的主观感觉或经验,避免了准确性受人为因素的影响。
【附图说明】
图1为本发明实施例一提供的主要方法流程图;
图2为本发明实施例二提供的基于函数变更计算模块之间是否存在耦合风险的流程图;
图3为本发明实施例提供的耦合风险模块之间的函数调用关系图表的实例图;
图4为本发明实施例三提供的检测装置结构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
对于模块之间耦合的方式主要分为两种:一种为静态耦合,即两个模块之间至少一方的配置文件或代码中指明另一方通信的参数,例如域名、ip端口、端口名称等,可简单归纳为配置指定;另一种为动态耦合,即两个模块通过中间层程序进行服务注册,然后通过中间层服务获取另一方通信参数。本发明实施例所提供的检测方法和检测装置仅支持静态耦合的方式。
实施例一、
图1为本发明实施例一提供的主要方法流程图,如图1所示,该方法包括以下步骤:
步骤101:确定待检测模块中发生变更的函数,并读取待检测模块的接口注册信息。
在本步骤中首先确定出待检测模块中发生变更的函数,发生变更的函数主要包括:删除的函数、新增的函数和修改的函数。发生变更的函数可以通过将待检测模块的两个版本进行比较的方式确定,即当代码文件进行修改之后,比较修改前的版本和修改后的版本的代码文件的差异,比较的方式可以通过diff工具,从而获取到发生变更的函数集合。然后针对集合中的各函数逐一执行本实施例中的以下步骤。
模块的接口注册信息中主要包括但不限于:模块名<name>,代码库地址<svn_addr>,模块内接口被调用的外部模块数量<dependency_number>,与外部模块的通信关系<call1>以及每个外部模块的获取地址<svn_addr>。其中,通过与外部模块的通信关系<call1>能够查询出该模块的对外通信接口信息,以及该对外通信接口对应的外部模块(即通过该对外通信接口所连接的外部模块)。举一个接口注册信息的实例:
该接口注册信息表通常是xml文件的形式,本发明通过解析该xml文件的描述能够定位外部模块集合以及影响外部模块的方式,具体参见以下各步骤。
步骤102:基于接口注册信息判断该函数变更的影响是否可达待检测模块外部,如果是,执行步骤103,否则,确定该待检测模块与其他模块不存在耦合风险。
本步骤采用的是基于函数变更的计算,即指定某个函数,得到函数变更时影响波及的范围,如果可达模块外部,则影响到了模块间的耦合,存在耦合风险。具体的计算过程参见实施例二。
步骤103:确定待检测模块与影响可达的模块之间存在耦合风险。
还可以进一步包括一个验证的步骤,即步骤104:对存在耦合风险的模块之间调用相应的集成测试用例进行测试,如果测试失败,则验证确实存在耦合风险。
集成测试用例是为了验证一些模块本身功能正常的情况下,模块之间连接是否正常的用例,主要是针对某些局部反映不出来的问题有可能在全局暴露出来影响功能的实现。在本步骤中,利用存在耦合风险的模块之间的集成测试用例进行测试,如果测试失败,则说明两模块之间通信异常,验证了两模块之间确实存在耦合风险。
实施例二、
图2为本发明实施例二提供的基于函数变更计算模块之间是否存在耦合风险的流程图,如图2所示,该流程包括:
步骤201:通过diff工具将发生变更的函数集合划分为删除的函数集合、修改的函数集合以及新增的函数集合,针对删除的函数集合,执行步骤202;针对修改的函数集合,则执行步骤203;针对新增的函数集合,则执行步骤204。
diff工具是一个现有的文件解析工具,通过diff工具能够得到任意两个文件的差别,其以行为单位展示两个文件之间新增、修改和删除的行的详情。
步骤202:判断删除的函数集合中是否存在对外通信接口,如果是,则确定函数删除的影响可达待检测模块外部,通过接口注册信息获取该对外通信接口对应的外部模块,检测到待检测模块与该外部模块之间存在耦合风险;否则,结束对删除的函数集合的检测。
如果删除的函数本身是对外通信接口,则该函数(即对外通信接口)的删除必定会对其他外部模块产生影响,则可以确定待检测模块的影响可达检测模块外部。如果删除的函数本身不是对外通信接口,则该函数的删除不会直接影响到外部模块,但会造成其调用者进行修改,也就是说,其调用者必定会存在与修改的函数集合中。
步骤203:判断修改的函数集合中是否有函数存在于通信接口语法树的非根节点上,如果是,则确定函数修改的影响可达待检测模块外部,确定所在的通信接口语法树的根节点以及通过接口注册信息获取该根节点为对外通信接口对应的外部模块,检测到待检测模块与该外部模块之间存在耦合风险;否则,结束对修改的函数集合的检测。
通信接口语法树是以通信接口为根节点所计算的函数调用树,这棵树的父节点对孩子节点的函数存在调用关系,即如果某个函数func1存在于通信接口语法树的孩子节点上,则说明作为根节点的通信接口对该函数func1存在调用关系,那么如果函数func1进行了修改,则会对根节点的通信接口返回值或性能带来潜在影响。
步骤204:针对新增的函数集合中的函数逐一执行以下检测步骤:
步骤205:判断当前新增的函数是否存在调用者,如果否,执行步骤206;如果是,执行步骤207。
步骤206:判断当前新增的函数是否为对外通信接口,如果是,说明当前新增的函数变更会存在潜在的耦合风险,进一步通过接口注册信息获取该对外通信接口对应的外部模块,检测出待检测模块与该外部模块之间存在耦合风险;否则,结束对当前新增的函数的检测,针对新增的函数集合中下一个新增的函数执行步骤205,直至没有下一个新增的函数。
步骤207:判断调用者是否为新增函数,如果是,说明当前新增的函数对通信接口透明,结束对当前新增的函数的检测,针对新增的函数集合中下一个新增的函数执行步骤205,直至没有下一个新增的函数;否则,执行步骤208。
如果调用者不是新增的函数,而是原有的函数,则说明该新增的函数影响了已经存在的函数,即原有的函数,这时候检测就变为调用者是否会影响到通信接口,即执行步骤208。
步骤208:判断调用者是否存在于通信接口语法树的非根节点上,如果是,则确定函数新增的影响可达待检测模块外部,确定所在的通信接口语法树的根节点以及通过接口注册信息确定以该根节点为对外通信接口对应的外部模块,检测出待检测模块与该外部模块之间存在耦合风险;否则,结束对当前新增的函数的检测,针对新增的函数集合中下一个新增的函数执行步骤205,直至没有下一个新增的函数。
步骤208实际上就是分析调用者是否影响到通信接口,其操作和原理与对修改的函数的检测相同。
在通过实施例一和实施例二所示流程确定出模块之间存在耦合风险之后,可以将存在耦合风险的模块之间的函数调用关系展现给开发人员,供开发人员直观地分析耦合风险状况。例如,经过上述流程确定出函数func1被函数func2调用,函数func2被函数func3调用,最终函数func3被对外通信接口TargetIF调用,则可以采用如图3所示的图表展示给开发人员。
另外,一旦确定出模块之间存在耦合风险,则可以进一步发送耦合风险通知,该通知中可以进一步包含如图3所示的图表,该通知可以以邮件、对话框等任意形式发送。
以上是对本发明所提供的检测方法进行的详细描述,下面通过实施例三对本发明所提供的检测装置进行详细描述。
实施例三、
图4为本发明实施例三提供的检测装置结构图,如图4所示,该检测装置包括:变更函数确定单元400、注册信息读取单元410和耦合风险检测单元420。
变更函数确定单元400,用于确定待检测模块中发生变更的函数。
具体地,变更函数确定单元400可以通过diff工具比较待检测模块的两个版本,获取到发生变更的函数集合;发生变更的函数包括:删除的函数集合、修改的函数集合和新增的函数集合。diff工具是一个现有的文件解析工具,通过diff工具能够得到任意两个文件的差别,其以行为单位展示两个文件之间新增、修改和删除的行的详情。
注册信息读取单元410,用于读取待检测模块的接口注册信息。通过该接口注册信息能够获知待检测模块的对外通信接口信息以及该对外通信接口对应的外部模块。
耦合风险检测单元420,用于基于接口注册信息判断函数变更的影响是否可达待检测模块外部,如果是,则确定待检测模块与影响可达的模块之间存在耦合风险;否则,确定待检测模块与其他模块不存在耦合风险。
该装置还可以进一步包括:耦合风险验证单元430,用于对存在耦合风险的模块之间调用相应的集成测试用例进行测试,如果测试失败,则验证确实存在耦合风险。
本发明实施例中耦合风险检测单元420采用的是基于函数变更的计算,即指定某个函数,得到函数变更时影响波及的范围,如果可达模块外部,则影响到了模块间的耦合,存在耦合风险。具体地,耦合风险检测单元420可以包括:删除函数检测子单元421,用于判断删除的函数集合中是否存在对外通信接口,如果是,则确定函数删除的影响可达待检测模块外部,通过接口注册信息确定该对外通信接口对应的外部模块,检测到待检测模块与确定的该外部模块之间存在耦合风险。
或者,耦合风险检测单元420可以包括:修改函数检测子单元422,用于判断修改的函数集合中是否有函数存在于通信接口语法树的非根节点上,如果是,则确定函数修改的影响可达待检测模块外部,确定通信接口语法树的根节点以及通过接口注册信息确定以该根节点为对外通信接口对应的外部模块,检测到待检测模块与确定的该外部模块之间存在耦合风险。
或者,耦合风险检测单元420可以包括:新增函数检测子单元423,用于针对新增的函数集合中的函数逐一执行以下检测操作:
操作A1、判断当前函数是否存在调用者,如果否,执行操作A2;否则,执行操作A3。
操作A2、判断当前函数是否为对外通信接口,如果是,确定函数新增的影响可达待检测模块外部,通过接口注册信息确定该对外通信接口对应的外部模块,检测出待检测模块与确定出的该外部模块之间存在耦合风险,结束对当前函数的检测。
操作A3、判断调用者是否为新增函数,如果是,结束对当前函数的检测,否则,执行操作A4。
操作A4、判断调用者是否存在于通信接口语法树的非根节点上,如果是,则确定函数新增的影响可达待检测模块外部,确定所在的通信接口语法树的根节点以及通过接口注册信息确定以该根节点为对外通信接口对应的外部模块,检测出待检测模块与确定出的该外部模块之间存在耦合风险。
上述涉及到的通信接口语法树是以通信接口为根节点所计算的函数调用树,这棵树的父节点对孩子节点的函数存在调用关系,即如果某个函数func1存在于通信接口语法树的孩子节点上,则说明作为根节点的通信接口对该函数func1存在调用关系。
在确定出模块之间存在耦合风险之后,还可以进一步通过该装置中进一步包括的图表展现单元440将存在耦合风险的模块之间的函数调用关系通过图表进行展现,供开发人员直观地分析耦合风险状况,展示的图标可以如图3所示。
另外,一旦确定出模块之间存在耦合风险,还可以进一步通过该装置中的风险通知单元450检测出待检测模块与确定出的该外部模块之间存在耦合风险后,发送耦合风险通知。
由以上描述可以看出,本发明提供的检测方法和检测装置具备以下优点:
1)现了耦合风险的自动检测,不再依靠开发人员的主观感觉或经验,避免了准确性受人为因素的影响。
2)对于任何代码修改都可以通过本发明充分了解是否影响到耦合接口(对外通信接口)以及影响的方式,有助于多模块集成风险的及时暴露和解决。
3)为是否需要进行集成测试提供了自动化评价指标
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (14)

1.一种耦合风险的检测方法,其特征在于,该检测方法包括:
S1、确定待检测模块中发生变更的函数,并读取所述待检测模块的接口注册信息;
S2、从所述接口注册信息中查询出该模块的对外通信接口信息;基于所述对外通信接口信息,判断所述函数变更的影响是否可达所述待检测模块外部,如果是,则确定所述待检测模块与影响可达的模块之间存在耦合风险;否则,确定所述待检测模块与其他模块不存在耦合风险。
2.根据权利要求1所述的方法,其特征在于,在所述步骤S2之后还包括:
S3、对存在耦合风险的模块之间调用相应的集成测试用例进行测试,如果测试失败,则验证确实存在耦合风险。
3.根据权利要求1所述的方法,其特征在于,步骤S1中所述确定待检测模块中发生变更的函数具体包括:
通过diff工具比较所述待检测模块的两个版本,获取到发生变更的函数集合;所述发生变更的函数包括:删除的函数集合、修改的函数集合和新增的函数集合。
4.根据权利要求3所述的方法,其特征在于,所述步骤S2包括:
判断删除的函数集合中是否存在对外通信接口,如果是,则确定函数删除的影响可达所述待检测模块外部,通过所述接口注册信息确定该对外通信接口对应的外部模块,检测到所述待检测模块与确定的该外部模块之间存在耦合风险。
5.根据权利要求3所述的方法,其特征在于,所述步骤S2包括:
判断修改的函数集合中是否有函数存在于通信接口语法树的非根节点上,如果是,则确定函数修改的影响可达所述待检测模块外部,确定所述通信接口语法树的根节点以及通过接口注册信息确定以该根节点为对外通信接口对应的外部模块,检测到所述待检测模块与确定的该外部模块之间存在耦合风险。
6.根据权利要求3所述的方法,其特征在于,所述步骤S2包括针对新增的函数集合中的函数逐一执行以下检测步骤:
A1、判断当前函数是否存在调用者,如果否,执行步骤A2;否则,执行步骤A3;
A2、判断当前函数是否为对外通信接口,如果是,确定函数新增的影响可达所述待检测模块外部,通过接口注册信息确定该对外通信接口对应的外部模块,检测出所述待检测模块与确定出的该外部模块之间存在耦合风险,结束对当前函数的检测;
A3、判断调用者是否为新增函数,如果是,结束对当前函数的检测,否则,执行步骤A4;
A4、判断调用者是否存在于通信接口语法树的非根节点上,如果是,则确定函数新增的影响可达所述待检测模块外部,确定所在的通信接口语法树的根节点以及通过接口注册信息确定以该根节点为对外通信接口对应的外部模块,检测出所述待检测模块与确定出的该外部模块之间存在耦合风险。
7.根据权利要求4、5或6中任一权项所述的方法,其特征在于,该方法进一步包括:
将存在耦合风险的模块之间的函数调用关系通过图表进行展现;或者,
检测出所述待检测模块与确定出的该外部模块之间存在耦合风险后,发送耦合风险通知。
8.一种耦合风险的检测装置,其特征在于,该检测装置包括:
变更函数确定单元,用于确定待检测模块中发生变更的函数;
注册信息读取单元,用于读取所述待检测模块的接口注册信息,从所述接口注册信息中查询出该模块的对外通信接口信息;
耦合风险检测单元,用于基于所述对外通信接口信息,判断所述函数变更的影响是否可达所述待检测模块外部,如果是,则确定所述待检测模块与影响可达的模块之间存在耦合风险;否则,确定所述待检测模块与其他模块不存在耦合风险。
9.根据权利要求8所述的装置,其特征在于,该装置还包括:耦合风险验证单元,用于对存在耦合风险的模块之间调用相应的集成测试用例进行测试,如果测试失败,则验证确实存在耦合风险。
10.根据权利要求8所述的装置,其特征在于,变更函数确定单元通过diff工具比较所述待检测模块的两个版本,获取到发生变更的函数集合;所述发生变更的函数包括:删除的函数集合、修改的函数集合和新增的函数集合。
11.根据权利要求10所述的装置,其特征在于,所述耦合风险检测单元包括:删除函数检测子单元,用于判断删除的函数集合中是否存在对外通信接口,如果是,则确定函数删除的影响可达所述待检测模块外部,通过所述接口注册信息确定该对外通信接口对应的外部模块,检测到所述待检测模块与确定的该外部模块之间存在耦合风险。
12.根据权利要求10所述的装置,其特征在于,所述耦合风险检测单元包括:修改函数检测子单元,用于判断修改的函数集合中是否有函数存在于通信接口语法树的非根节点上,如果是,则确定函数修改的影响可达所述待检测模块外部,确定所述通信接口语法树的根节点以及通过接口注册信息确定以该根节点为对外通信接口对应的外部模块,检测到所述待检测模块与确定的该外部模块之间存在耦合风险。
13.根据权利要求10所述的装置,其特征在于,所述耦合风险检测单元包括:新增函数检测子单元,用于针对新增的函数集合中的函数逐一执行以下检测操作:
A1、判断当前函数是否存在调用者,如果否,执行操作A2;否则,执行操作A3;
A2、判断当前函数是否为对外通信接口,如果是,确定函数新增的影响可达所述待检测模块外部,通过接口注册信息确定该对外通信接口对应的外部模块,检测出所述待检测模块与确定出的该外部模块之间存在耦合风险,结束对当前函数的检测;
A3、判断调用者是否为新增函数,如果是,结束对当前函数的检测,否则,执行操作A4;
A4、判断调用者是否存在于通信接口语法树的非根节点上,如果是,则确定函数新增的影响可达所述待检测模块外部,确定所在的通信接口语法树的根节点以及通过接口注册信息确定以该根节点为对外通信接口对应的外部模块,检测出所述待检测模块与确定出的该外部模块之间存在耦合风险。
14.根据权利要求11、12或13任一权项所述的装置,其特征在于,该装置进一步包括:图表展现单元或者风险通知单元;
所述图表展现单元,用于将存在耦合风险的模块之间的函数调用关系通过图表进行展现;
所述风险通知单元,用于检测出所述待检测模块与确定出的该外部模块之间存在耦合风险后,发送耦合风险通知。
CN201210123533.XA 2012-04-24 2012-04-24 一种耦合风险的检测方法和装置 Active CN103377121B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210123533.XA CN103377121B (zh) 2012-04-24 2012-04-24 一种耦合风险的检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210123533.XA CN103377121B (zh) 2012-04-24 2012-04-24 一种耦合风险的检测方法和装置

Publications (2)

Publication Number Publication Date
CN103377121A CN103377121A (zh) 2013-10-30
CN103377121B true CN103377121B (zh) 2016-03-16

Family

ID=49462271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210123533.XA Active CN103377121B (zh) 2012-04-24 2012-04-24 一种耦合风险的检测方法和装置

Country Status (1)

Country Link
CN (1) CN103377121B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111258876B (zh) * 2018-11-30 2023-08-01 中国移动通信集团浙江有限公司 一种微服务架构下的精确回归测试方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3869330B2 (ja) * 2002-07-26 2007-01-17 株式会社東芝 凝集度測定装置
CN101894064B (zh) * 2009-05-21 2013-01-02 北京邮电大学 应用跨函数分析的软件测试方法
CN101620536B (zh) * 2009-08-17 2012-11-14 用友软件股份有限公司 一种调用功能函数的方法和装置
CN102110048B (zh) * 2009-12-28 2014-07-09 国际商业机器公司 用于基于框架的应用程序的回归测试选择方法和装置

Also Published As

Publication number Publication date
CN103377121A (zh) 2013-10-30

Similar Documents

Publication Publication Date Title
WO2020000706A1 (zh) 基于数据库比对的接口测试方法、系统、设备和存储介质
WO2017000424A1 (zh) 协议检测方法及装置
US10268570B2 (en) Methods, systems, and computer readable media for automated generation of test files and testing network equipment using same
US20170039129A1 (en) Processing automation scripts of software
US9201757B2 (en) Offline type checking in programming languages
AU2016250350A1 (en) Orchestrating and providing a regression test
CN111045921A (zh) 自动化接口测试方法、装置、计算机设备及存储介质
CN106940695A (zh) 数据源信息的校验方法及装置
US10823782B2 (en) Ensuring completeness of interface signal checking in functional verification
US12079298B2 (en) Methods and systems for browser extension used to generate relative XPath, absolute XPath and/or CSS selectors
CN110889116B (zh) 一种广告拦截方法、装置及电子设备
US20150007145A1 (en) Computing system with instrumentation mechanism and capture mechanism and method of operation thereof
CN114185791A (zh) 一种数据映射文件的测试方法、装置、设备及存储介质
CN101673200B (zh) 用户输入模型的检测方法及装置
CN113778897A (zh) 接口的自动测试方法、装置、设备及存储介质
CN103377121B (zh) 一种耦合风险的检测方法和装置
CN110716912A (zh) 一种sql性能检测方法及服务器
US8464103B2 (en) Generating a functional coverage model from a trace
TW201415051A (zh) 印刷電路板電性測試系統及其方法
US9058184B2 (en) Run time generation and functionality validation of device drivers
CN106940647B (zh) 代码管理方法和装置
CN112256554B (zh) 一种基于场景测试用例进行测试的方法及设备
CN109165127B (zh) 问题接口的定位方法、装置及电子设备
CN117112435B (zh) 一种漏洞联动检测结果的融合方法、存储介质及电子设备
CN113094281B (zh) 一种混合式App的测试方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant