CN113918205A - 一种自动生成软件功能耦合矩阵的方法 - Google Patents
一种自动生成软件功能耦合矩阵的方法 Download PDFInfo
- Publication number
- CN113918205A CN113918205A CN202111050572.7A CN202111050572A CN113918205A CN 113918205 A CN113918205 A CN 113918205A CN 202111050572 A CN202111050572 A CN 202111050572A CN 113918205 A CN113918205 A CN 113918205A
- Authority
- CN
- China
- Prior art keywords
- coupling
- function
- software
- priority
- transactions
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出了一种自动生成软件功能耦合矩阵的方法,用于解得软件产品的功能运行过程中真实耦合的耦合关系和耦合概率,生成耦合矩阵并给出耦合点的耦合优先级来指导后续的软件产品开发和测试;所述方法首先建立软件产品功能和功能点与代码接口的对应关系,并在软件运行时记录软件的代码接口之间的调用关系在日志中;然后,通过分析日志得出代码接口间的调用关系和对应的发生概率;最后,再通过代码接口与功能、功能点和子功能点的映射关系,按照发生概率的大小设定耦合优先级后自动生成功能耦合矩阵,并使用功能耦合矩阵和对应的耦合优先级来指导后续的软件产品的开发和测试。
Description
技术领域
本发明属于计算机软件开发技术领域,具体地说,涉及一种自动生成软件功能耦合矩阵的方法。
背景技术
在软件开发和测试时场景下存在大量的功能耦合分析不足导致的问题,以及在工作经常出现大量人力解决功能耦合问题,而该耦合点在实际应用基本不会使用,导致软件开发和测试人力的浪费。
发明内容
本发明针对现有技术的上述缺陷和需求,提供了一种自动生成软件耦合矩阵方法,本发明通过建立软件功能和功能点与代码接口的对应关系,并在软件运行时记录软件接口之间的调用关系通过分析日志得出接口间的调用关系和发生概率。再通过接口与功能、功能点和子功能点的映射关系自动生成功能耦合矩阵。
本发明具体实现内容如下:
本发明提出了一种自动生成软件功能耦合矩阵的方法,用于解得软件产品的功能运行过程中真实耦合的耦合关系和耦合概率,生成耦合矩阵并给出耦合点的耦合优先级来指导后续的软件产品开发和测试;所述方法首先建立软件产品功能和功能点与代码接口的对应关系,并在软件运行时记录软件的代码接口之间的调用关系在日志中;然后,通过分析日志得出代码接口间的调用关系和对应的发生概率;最后,再通过代码接口与功能、功能点和子功能点的映射关系,按照发生概率的大小设定耦合优先级后自动生成功能耦合矩阵,并使用功能耦合矩阵和对应的耦合优先级来指导后续的软件产品的开发和测试。
为了更好地实现本发明,进一步地,具体包括以下步骤:
步骤1:对软件产品进行功能、功能点和子功能点的多级划分,并建立对应的多级功能目录;
步骤2:建立软件产品的多级功能与代码接口的对应关系表,并在代码接口中注明代码接口的测试点;
步骤3:在软件产品使用过程中将接口调用关系记录在日志中;
步骤4:通过分析日志得出代码接口间的调用关系和对应的发生概率;
步骤5:通过代码接口与功能、功能点和子功能点的映射关系,按照发生概率的大小设定耦合优先级后自动生成功能耦合矩阵;
步骤6:使用功能耦合矩阵和对应的耦合优先级来指导后续的软件产品的开发和测试。
为了更好地实现本发明,进一步地,所述步骤3的具体操作为:
步骤3.1:根据软件的功能特性定义事务类型,具体包括配置事务、状态迁移事务、业务转发事务;
步骤3.2:将代码接口对应的记录日志功能开启,当软件产品检测到对应类型的事务开始时,对该事务进行日志记录;所述日志中记录有对应事务执行过程中调用的代码接口和调用代码接口的参数。
为了更好地实现本发明,进一步地,在所述步骤3.2中,对于所述配置事务,需要记录配置的代码接口和代码接口操作的对象,并记录操作对象当前的标记,并在操作后生成新的标记记录到日志中;同时记录当前配置事务中所有代码接口之间的调用树。
为了更好地实现本发明,进一步地,所述步骤3.2中,对于所述状态迁移事务,在检测到对象的状态发生变化时,需要记录状态发生的对象,状态迁移的原因和状态迁移的原因关联的代码接口。
为了更好地实现本发明,进一步地,所述步骤3.2中,对于所述转发事务,将转发事务划分成多种不同场景的转发事务,对于不同转发事务在设备中经历的节点进行记录,并记录经历的节点对应的代码接口。
为了更好地实现本发明,进一步地,所述转发事务被划分为以太转发事务、IP转发事务、IPv4转发事务、IPv6转发事务、IP4in6转发事务、tcp转发事务和udp转发事务。
为了更好地实现本发明,进一步地,使用所述日志进行以下分析操作:
操作1:根据事务中操作的对象和对象的标记判断事务之间是否产生耦合,如果产生了耦合可以生成事务之间的耦合关系;
操作2:可以根据事务之间的关联关系生成不同事务间发生耦合接口之间的关联关系,并计算出关联深度和关联次数;
操作3:在研发过程需要将发现问题时的日志上传到问题单库中,工具可以根据问题单库中记录的日志获取事务发生问题的数量、严重程度和发生时间。
为了更好地实现本发明,进一步地,所述步骤5中,设置研发问题库,并设置对应的事务权重比例;然后对于不同的事务类型设置不同的初始权重,再将初始权重与事务权重比例叠加得到最终的权重,最终的权重越高的,耦合优先级越高。
为了更好地实现本发明,进一步地,所述事务权重比例的计算方法为:自动收集各种类型的事务在研发问题库中对应代码接口耦合产生问题的数量和严重程度,不同严重程度对应的软件缺陷率DI值不同;问题数量越多的事务的事务权重比例越大;软件缺陷率DI值越高的事务的研发问题库权重越大;
并设定关联深度和关联系数;所述关联深度为代码接口之间调用层级,调用层级越大,耦合优先级越低;所述关联次数为在日志中发生关联次数,关联次数越大,耦合优先级越高;
然后得到优先级系数,耦合优先级系数的计算方法如下:
优先级系数=初始权重*事务权重比例 – 关联深度*比例 + 关联次数*比例;
根据得出的优先级系数设定对应的耦合优先级:
优先级系数>100 为耦合优先级1;
优先级系数在50~100之间为耦合优先级2;
优先级系数在10~50之间为耦合优先级3;
优先级系数为0~10之间为耦合优先级4;
并备案。
本发明与现有技术相比具有以下有点及有益效果:
(1)指导软件开发过程作为参考功能间耦处理的参考,并根据优先级处理耦合点之间的关系,减少功能间耦合的问题。同时为解决功能耦合问题时提供优先级的参考,避免将人力投入到解决不重要的耦合点中。
(2)指导软件测试的用例设计,提升用例设计的准确性。
(3)指导软件测试策略的制定,在代码变更时可以准确的评估出修改代码影响的范围。
附图说明
图1为多级功能目录的示意图;
图2为接口对应关系的表格示意图;
图3为耦合矩阵的结构示意图。
具体实施方式
为了更清楚地说明本发明实施例的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,应当理解,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,因此不应被看作是对保护范围的限定。基于本发明中的实施例,本领域普通技术工作人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“设置”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;也可以是直接相连,也可以是通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1:
本实施例提出了一种自动生成软件功能耦合矩阵的方法,用于解得软件产品的功能运行过程中真实耦合的耦合关系和耦合概率,生成耦合矩阵并给出耦合点的耦合优先级来指导后续的软件产品开发和测试;所述方法首先建立软件产品功能和功能点与代码接口的对应关系,并在软件运行时记录软件的代码接口之间的调用关系在日志中;然后,通过分析日志得出代码接口间的调用关系和对应的发生概率;最后,再通过代码接口与功能、功能点和子功能点的映射关系,按照发生概率的大小设定耦合优先级后自动生成功能耦合矩阵,并使用功能耦合矩阵和对应的耦合优先级来指导后续的软件产品的开发和测试。
工作原理:现有技术通过人为经验分析或者代码分析生成软件功能耦合矩阵。但该矩阵存在主观或者不准确的问题,在后续工作中会导致不能将主要精力聚焦在最重要的功能耦合上。以导致人力浪费在不重要的功能耦合开发和测试上。本发明提供了一种自动生成软件耦合矩阵方法,并解得出功能运行过程中真实耦合的耦合关系和耦合概率,生成耦合矩阵并给出耦合点的优先级指导后续的产品开发和测试。建立软件功能和功能点与代码接口的对应关系,并在软件运行时记录软件接口之间的调用关系通过分析日志得出接口间的调用关系和发生概率。再通过接口与功能、功能点和子功能点的映射关系自动生成功能耦合矩阵。关键点是通过软件运行过程中真实发生的接口调用关系得到功能真实正确的耦合关系。在后续开发和测试过程中提供准确的指导,该耦合矩阵可用于指导软件联调、问题解决、测试用例设计和测试策略制定,可大幅减少软件开发中因为耦合分析缺失引入的问题,以及因为耦合分析不准确导致大部分代码解决耦合概率低的耦合电容,同时为软件测试提供精准的测试设计和测试策略参考,避免测试人力浪费在不重要的耦合点上。
实施例2:
本实施例在上述实施例1的基础上,如图1、图2、图3所示,为了更好地实现本发明,进一步地,具体包括以下步骤:
步骤1:对软件产品进行功能、功能点和子功能点的多级划分,并建立对应的多级功能目录;
步骤2:建立软件产品的多级功能与代码接口的对应关系表,并在代码接口中注明代码接口的测试点;
步骤3:在软件产品使用过程中将接口调用关系记录在日志中;
步骤4:通过分析日志得出代码接口间的调用关系和对应的发生概率;
步骤5:通过代码接口与功能、功能点和子功能点的映射关系,按照发生概率的大小设定耦合优先级后自动生成功能耦合矩阵;
步骤6:使用功能耦合矩阵和对应的耦合优先级来指导后续的软件产品的开发和测试。
本实施例的其他部分与上述实施例1相同,故不再赘述。
实施例3:
本实施例在上述实施例1-2任一项的基础上,为了更好地实现本发明,进一步地,所述步骤3的具体操作为:
步骤3.1:根据软件的功能特性定义事务类型,具体包括配置事务、状态迁移事务、业务转发事务;
步骤3.2:将代码接口对应的记录日志功能开启,当软件产品检测到对应类型的事务开始时,对该事务进行日志记录;所述日志中记录有对应事务执行过程中调用的代码接口和调用代码接口的参数。
本实施例的其他部分与上述实施例1-2任一项相同,故不再赘述。
实施例4:
本实施例在上述实施例1-3任一项的基础上,为了更好地实现本发明,进一步地,在所述步骤3.2中,对于所述配置事务,需要记录配置的代码接口和代码接口操作的对象,并记录操作对象当前的标记,并在操作后生成新的标记记录到日志中;同时记录当前配置事务中所有代码接口之间的调用树。
为了更好地实现本发明,进一步地,所述步骤3.2中,对于所述状态迁移事务,在检测到对象的状态发生变化时,需要记录状态发生的对象,状态迁移的原因和状态迁移的原因关联的代码接口。
为了更好地实现本发明,进一步地,所述步骤3.2中,对于所述转发事务,将转发事务划分成多种不同场景的转发事务,对于不同转发事务在设备中经历的节点进行记录,并记录经历的节点对应的代码接口。
为了更好地实现本发明,进一步地,所述转发事务被划分为以太转发事务、IP转发事务、IPv4转发事务、IPv6转发事务、IP4in6转发事务、tcp转发事务和udp转发事务。
本实施例的其他部分与上述实施例1-3任一项相同,故不再赘述。
实施例5:
本实施例在上述实施例1-4任一项的基础上,为了更好地实现本发明,进一步地,使用所述日志进行以下分析操作:
操作1:根据事务中操作的对象和对象的标记判断事务之间是否产生耦合,如果产生了耦合可以生成事务之间的耦合关系;
操作2:可以根据事务之间的关联关系生成不同事务间发生耦合接口之间的关联关系,并计算出关联深度和关联次数;
操作3:在研发过程需要将发现问题时的日志上传到问题单库中,工具可以根据问题单库中记录的日志获取事务发生问题的数量、严重程度和发生时间。
为了更好地实现本发明,进一步地,所述步骤5中,设置研发问题库,并设置对应的事务权重比例;然后对于不同的事务类型设置不同的初始权重,再将初始权重与事务权重比例叠加得到最终的权重,最终的权重越高的,耦合优先级越高。
为了更好地实现本发明,进一步地,所述事务权重比例的计算方法为:自动收集各种类型的事务在研发问题库中对应代码接口耦合产生问题的数量和严重程度,不同严重程度对应的软件缺陷率DI值不同;问题数量越多的事务的事务权重比例越大;软件缺陷率DI值越高的事务的研发问题库权重越大;
并设定关联深度和关联系数;所述关联深度为代码接口之间调用层级,调用层级越大,耦合优先级越低;所述关联次数为在日志中发生关联次数,关联次数越大,耦合优先级越高;
然后得到优先级系数,耦合优先级系数的计算方法如下:
优先级系数=初始权重*事务权重比例 – 关联深度*比例 + 关联次数*比例;
同时设定:问题发生时间越近的事务的耦合优先级越高、问题发生时间越远耦合耦合优先级越低;
根据得出的优先级系数设定对应的耦合优先级:
优先级系数>100 为耦合优先级1;
优先级系数在50~100之间为耦合优先级2;
优先级系数在10~50之间为耦合优先级3;
优先级系数为0~10之间为耦合优先级4;
并备案。
本实施例的其他部分与上述实施例1-4任一项相同,故不再赘述。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。最后,图1、图2、图3仅为用于示例展示的计算机实际页面截图,对于方案的实质内容并不会造成影响。
Claims (10)
1.一种自动生成软件功能耦合矩阵的方法,用于解得软件产品的功能运行过程中真实耦合的耦合关系和耦合概率,生成耦合矩阵并给出耦合点的耦合优先级来指导后续的软件产品开发和测试;其特征在于,首先建立软件产品功能和功能点与代码接口的对应关系,并在软件运行时记录软件的代码接口之间的调用关系在日志中;然后,通过分析日志得出代码接口间的调用关系和对应的发生概率;最后,再通过代码接口与功能、功能点和子功能点的映射关系,按照发生概率的大小设定耦合优先级后自动生成功能耦合矩阵,并使用功能耦合矩阵和对应的耦合优先级来指导后续的软件产品的开发和测试。
2.如权利要求1所述的一种自动生成软件功能耦合矩阵的方法,其特征在于,具体包括以下步骤:
步骤1:对软件产品进行功能、功能点和子功能点的多级划分,并建立对应的多级功能目录;
步骤2:建立软件产品的多级功能与代码接口的对应关系表,并在代码接口中注明代码接口的测试点;
步骤3:在软件产品使用过程中将接口调用关系记录在日志中;
步骤4:通过分析日志得出代码接口间的调用关系和对应的发生概率;
步骤5:通过代码接口与功能、功能点和子功能点的映射关系,按照发生概率的大小设定耦合优先级后自动生成功能耦合矩阵;
步骤6:使用功能耦合矩阵和对应的耦合优先级来指导后续的软件产品的开发和测试。
3.如权利要求2所述的一种自动生成软件功能耦合矩阵的方法,其特征在于,所述步骤3的具体操作为:
步骤3.1:根据软件的功能特性定义事务类型,具体包括配置事务、状态迁移事务、业务转发事务;
步骤3.2:将代码接口对应的记录日志功能开启,当软件产品检测到对应类型的事务开始时,对该事务进行日志记录;所述日志中记录有对应事务执行过程中调用的代码接口和调用代码接口的参数。
4.如权利要求3所述的一种自动生成软件功能耦合矩阵的方法,其特征在于,在所述步骤3.2中,对于所述配置事务,需要记录配置的代码接口和代码接口操作的对象,并记录操作对象当前的标记,并在操作后生成新的标记记录到日志中;同时记录当前配置事务中所有代码接口之间的调用树。
5.如权利要求3所述的一种自动生成软件功能耦合矩阵的方法,其特征在于,所述步骤3.2中,对于所述状态迁移事务,在检测到对象的状态发生变化时,需要记录状态发生的对象,状态迁移的原因和状态迁移的原因关联的代码接口。
6.如权利要求3所述的一种自动生成软件功能耦合矩阵的方法,其特征在于,所述步骤3.2中,对于所述转发事务,将转发事务划分成多种不同场景的转发事务,对于不同转发事务在设备中经历的节点进行记录,并记录经历的节点对应的代码接口。
7.如权利要求6所述的一种自动生成软件功能耦合矩阵的方法,其特征在于,所述转发事务被划分为以太转发事务、IP转发事务、IPv4转发事务、IPv6转发事务、IP4in6转发事务、tcp转发事务和udp转发事务。
8.如权利要求2或3或4或5或6或7所述的一种自动生成软件功能耦合矩阵的方法,其特征在于,使用所述日志进行以下分析操作:
操作1:根据事务中操作的对象和对象的标记判断事务之间是否产生耦合,如果产生了耦合可以生成事务之间的耦合关系;
操作2:可以根据事务之间的关联关系生成不同事务间发生耦合接口之间的关联关系,并计算出关联深度和关联次数;
操作3:在研发过程需要将发现问题时的日志上传到问题单库中,工具可以根据问题单库中记录的日志获取事务发生问题的数量、严重程度和发生时间。
9.如权利要求8所述的一种自动生成软件功能耦合矩阵的方法,其特征在于,所述步骤5中,设置研发问题库,并设置对应的事务权重比例;然后对于不同的事务类型设置不同的初始权重,再将初始权重与事务权重比例叠加得到最终的权重,最终的权重越高的,耦合优先级越高。
10.如权利要求9所述的一种自动生成软件功能耦合矩阵的方法,其特征在于,
所述事务权重比例的计算方法为:自动收集各种类型的事务在研发问题库中对应代码接口耦合产生问题的数量和严重程度,不同严重程度对应的软件缺陷率DI值不同;问题数量越多的事务的事务权重比例越大;软件缺陷率DI值越高的事务的研发问题库权重越大;
并设定关联深度和关联系数;所述关联深度为代码接口之间调用层级,调用层级越大,耦合优先级越低;所述关联次数为在日志中发生关联次数,关联次数越大,耦合优先级越高;
然后得到优先级系数,耦合优先级系数的计算方法如下:
优先级系数=初始权重*事务权重比例 – 关联深度*比例 + 关联次数*比例;
根据得出的优先级系数设定对应的耦合优先级:
优先级系数>100 为耦合优先级1;
优先级系数在50~100之间为耦合优先级2;
优先级系数在10~50之间为耦合优先级3;
优先级系数为0~10之间为耦合优先级4;
并备案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111050572.7A CN113918205A (zh) | 2021-09-08 | 2021-09-08 | 一种自动生成软件功能耦合矩阵的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111050572.7A CN113918205A (zh) | 2021-09-08 | 2021-09-08 | 一种自动生成软件功能耦合矩阵的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918205A true CN113918205A (zh) | 2022-01-11 |
Family
ID=79234437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111050572.7A Pending CN113918205A (zh) | 2021-09-08 | 2021-09-08 | 一种自动生成软件功能耦合矩阵的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918205A (zh) |
-
2021
- 2021-09-08 CN CN202111050572.7A patent/CN113918205A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111756582B (zh) | 基于nfv日志告警的业务链监控方法 | |
CN107944005B (zh) | 一种数据展示方法及装置 | |
CN111813655B (zh) | 一种埋点测试方法、装置、埋点管理系统和存储介质 | |
CN110059010B (zh) | 基于动态符号执行与模糊测试的缓冲区溢出检测方法 | |
WO2024104153A1 (zh) | 一种数据增强方法、系统、设备及计算机可读存储介质 | |
CN104796282A (zh) | 一种面向深度包检测产品的评估系统及评估方法 | |
CN116594801A (zh) | 一种大数据云计算的故障分析系统 | |
CN116136950A (zh) | 芯片验证方法、装置、系统、电子设备及存储介质 | |
CN116954624B (zh) | 基于软件开发包的编译方法、软件开发系统及服务器 | |
CN111241432A (zh) | 用户行为分析方法及装置、计算机可读存储介质 | |
CN113934536A (zh) | 面向边缘计算的数据采集方法 | |
CN113918205A (zh) | 一种自动生成软件功能耦合矩阵的方法 | |
CN117499148A (zh) | 一种网络访问控制方法、装置、设备及存储介质 | |
CN112561388A (zh) | 一种基于物联网的信息处理方法、装置及设备 | |
CN115687406B (zh) | 一种调用链数据的采样方法、装置、设备及存储介质 | |
CN116796669A (zh) | 一种电力边缘计算芯片的可靠性校验方法及系统 | |
CN116737549A (zh) | 一种时序数据库稳定性测试方法 | |
CN115983191A (zh) | 测试点验证方法及相关装置 | |
CN114881142A (zh) | 一种配网异常数据的处理方法及装置 | |
CN112905493B (zh) | 一种基于转换测试的结构化模糊测试方法 | |
CN115309638A (zh) | 协助模型优化的方法及装置 | |
CN112787883B (zh) | 一种设备nat故障检测方法、装置及设备 | |
CN115576831A (zh) | 一种测试案例推荐方法、装置、设备及存储介质 | |
CN114331165A (zh) | 一种城市安全绩效评估报告自动生成与分析方法及系统 | |
CN115017047A (zh) | 基于b/s架构的测试方法、系统、设备及介质 |
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 |