CN107133179B - 一种基于贝叶斯网络的网站缺陷预测方法及其实现系统 - Google Patents
一种基于贝叶斯网络的网站缺陷预测方法及其实现系统 Download PDFInfo
- Publication number
- CN107133179B CN107133179B CN201710417699.5A CN201710417699A CN107133179B CN 107133179 B CN107133179 B CN 107133179B CN 201710417699 A CN201710417699 A CN 201710417699A CN 107133179 B CN107133179 B CN 107133179B
- Authority
- CN
- China
- Prior art keywords
- html
- code
- node
- bayesian network
- metric
- 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/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- 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/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于贝叶斯网络的网站缺陷预测方法及其实现系统,所述方法建立HTML贝叶斯网络结构以及代码贝叶斯网络结构,并对所述HTML贝叶斯网络结构以及代码贝叶斯网络结构输入历史度量元状态值进行最大似然性估算学习,构成贝叶斯网络模型;将待测网页的度量元状态值代入贝叶斯网络模型,得到预测的缺陷情况;所述实现系统包含度量元采集模块、度量元处理模块、HTML贝叶斯网络模块以及代码贝叶斯网络模块,所述度量元采集模块对HTML及代码的各度量元进行采集,并由度量元处理模块转换成度量元状态值,输入到HTML贝叶斯网络模块以及代码贝叶斯网络模块中进行缺陷预测。
Description
技术领域
本发明涉及软件缺陷预测领域,更具体地,涉及一种基于贝叶斯网络的网站缺陷预测方法及其实现系统。
背景技术
软件缺陷在软件开发中不可避免,尽早发现、修复软件缺陷,一直是软件开发所追寻的目标,而软件缺陷预测技术,可在测试的前期,通过对软件特性进行分析,判断哪些模块有无缺陷或推算模块所含缺陷数,为测试、开发人员寻找、修复软件缺陷,进行人员安排,制定测试计划、测试充分性等方面提供参考。也是使得软件开发方降低日后测试代价和周期、提高软件质量的重要依据。网页开发作为软件开发的一个方向,其网页缺陷预测也是网页开发者需要面对和解决的重要问题。而目前用于网页缺陷预测的技术方法,所使用的度量元均是针对常规软件各模块所设计的,对网页缺陷预测泛化能力不足,针对性差,预测效果差;而现有提出的针对现有网页的缺陷预测方法理论上可行,但其度量元在实际中难以测量,对信息要求高,使得其在实际预测中实用性不强。
发明内容
为了解决背景技术存在的度量元针对性差以及难以测量,预测方法实用性不强等问题,本发明提供了一种基于贝叶斯网络的网站缺陷预测方法及其实现系统,该方法及其实现系统对已有的信息要求低,可以在信息不完全、不确定情况下对网站缺陷情况进行预测。
一种基于贝叶斯网络的网站缺陷预测方法,所述方法包含:
建立HTML贝叶斯网络结构,所述HTML贝叶斯网络结构的节点为网页的HTML度量元以及HTML缺陷数;
建立代码贝叶斯网络结构,所述代码贝叶斯网络结构的节点为网页的代码度量元以及代码缺陷数;
HTML贝叶斯网络结构使用历史网页的HTML度量元状态值作为训练样本进行最大似然估计算法的参数学习,获得HTML度量元的条件概率分布表,所述HTML贝叶斯网络结构与HTML度量元的条件概率分布表组成HTML贝叶斯网络子模型;
代码贝叶斯网络结构使用历史网页的代码度量元状态值作为训练样本进行最大似然估计算法的参数学习,获得代码度量元的条件概率分布表,所述代码贝叶斯网络结构与代码度量元的条件概率分布表组成代码贝叶斯网络子模型;以及
将待测网页的HTML度量元状态值以及代码度量元状态值代入HTML贝叶斯子模型以及代码贝叶斯子模型,得到待测网页的HTML缺陷预测以及代码缺陷预测。
进一步的,所述网页HTML的度量元包含:
行数(Ls),所述行数为网页文件除去空行的总行数;
HTML标签数(Tag),所述HTML标签数为网页文件中所有标签数;
复合标签百分数(CTag),所述复合标签百分数为网页文件中名称为FORM、SELECT、TABLE、MAP、FRAME以及MARQUEE的标签数之和与总标签数的百分比;
其他标签数(OTag),所述其他标签数为网页文件中HREF、SRC、SCRIPT以及APPLET标签数的总和;
进一步的,所述网页代码的度量元包括:
语句数(Ss),所述语句数为以分号结尾的语句、未以分号结尾的方法语句与属性语句、预处理语句#include、#define以及#undef数量之和,其中在#else和#endif之间以及#elif和#endif之间的语句不计算在内;
方法总数(Ms),所述方法总数指代码文件中所有类方法的数量之和;
方法的平均语句数(MAs),所述方法的平均语句数指代码文件中所有类方法中的语句数量之和除以方法总数所得的值;
方法的平均调用数(MCs),所述方法的平均调用数指代码文件中调用方法的总数除以方法总数所得的值;
圈复杂度总和(Mc),所述圈复杂度总和指代码文件中所有方法的圈复杂度累加之和;
最大圈复杂度(MMc),所述最大圈复杂度指代码文件中所有方法中最大的圈复杂度的值;
最大模块深度(MDs),所述最大模块深度指代码文件中模块嵌套的最大深度数;
平均模块深度(ADs),所述平均模块深度指代码文件中所有方法中模块嵌套深度的平均值;
可维护性指数(MI),所述可维护性指数是指通过软件结构、文档注释、命名规范、系统配置管理以及版本管理等的优良程度来确认的维护代码的相对难易度,0≤MI≤100,MI越大表示维护性越好;
继承深度(ID),所述继承深度指代码文件中派生层次最多的类或对象的层次数;
类耦合(CC),所述类耦合是指通过参数、局部变量、返回类型、方法调用、泛型或模板实例化、基类、接口实现、在外部类型上定义的字段以及特性修饰来衡量与唯一类的耦合程度;
进一步的,度量元状态值包括除去其他标签数状态值的HTML度量元状态值、代码度量元状态值以及代码缺陷预测状态值,所述度量元状态值根据对与度量元对应的度量元数据进行状态划分得到,当所述度量元或代码缺陷数在历史数据中数量大小占据前25%位置,其度量元状态值为“多”,当所述度量元或代码缺陷数在历史数据中数量大小占据中间50%位置,其度量元状态值为“中”,当所述度量元或代码缺陷数在历史数据中数量大小占据最后25%位置,其度量元状态值为“少”;所述除去其他标签数状态值的HTML度量元状态值指行数、HTML标签数以及复合标签百分数;
进一步的,所述HTML缺陷预测为3个以上缺陷时所述HTML缺陷预测状态值为“多”,所述HTML缺陷预测为1~2个缺陷时所述HTML缺陷预测状态值为“中”,所述HTML缺陷预测为0个缺陷时,所述HTML缺陷预测为“少”;所述其他标签数的值大于0时,其度量元状态值为“有”,否则其度量元状态值为“无”;
进一步的,所述HTML贝叶斯网络结构中,各度量元节点均与HTML缺陷节点相连,HTML标签数节点、复合标签百分数节点以及其他标签数节点与行数节点相连,复合标签百分数节点与HTML标签数节点相连、其他标签数节点与HTML标签数节点相连;
进一步的,所述代码贝叶斯网络结构中,各度量元节点均与代码缺陷节点相连,方法总数节点与语句数节点相连,方法的平均语句数节点与语句数节点相连,最大圈复杂度节点与圈复杂度总和节点相连,最大模块深度节点与平均模块深度节点;
进一步的,所述待测网页的缺陷实测结果与各度量值作为新的样品加入训练集,用于使贝叶斯网络模型进行重新学习,以修正各节点的条件概率。
一种用于实现基于贝叶斯网络的网站缺陷预测方法的系统,所述系统包含:
HTML贝叶斯网络结构模块,所述HTML贝叶斯网络结构模块的节点为为网页HTML的度量元以及HTML缺陷数;所述HTML贝叶斯网络结构模块的输出为HTML贝叶斯网络结构,所述HTML贝叶斯网络结构模块的输出与HTML度量元概率分布模块的输入端以及预测模块输入端相连;
代码贝叶斯网络结构模块,所述代码贝叶斯网络结构模块的节点为为网页代码的度量元以及代码缺陷数,所述代码贝叶斯网络结构模块的输出为代码贝叶斯网络结构,所述代码贝叶斯网络结构模块的输出与代码度量元概率分布模块的输入端以及预测模块输入端相连;
HTML度量元概率分布模块,所述HTML度量元概率分布模块用于使HTML贝叶斯网络结构对历史网页的HTML度量元状态值进行最大似然估计算法的参数学习,所述HTML度量元概率分布模块的输出为HTML度量元条件概率分布表,所述HTML度量元概率分布模块的输出端与预测模块的输入端相连;
代码度量元概率分布模块,所述代码度量元概率分布模块用于使代码贝叶斯网络结构对历史网页的代码度量元状态值进行最大似然估计算法的参数学习,所述代码度量元概率分布模块的输出为代码度量元条件概率分布表,所述代码度量元概率分布模块的输出端与预测模块的输入端相连;
预测模块,所述预测模块用于根据待测网页的HTML度量元状态值以及代码度量元状态值进行预测,得到HTML缺陷以及代码缺陷。
进一步的,所述HTML贝叶斯网络结构模块中的贝叶斯节点为HTML度量元,所述HTML度量元包含行数、HTML标签数、复合标签百分数以及其他标签数;所述代码贝叶斯网络结构模块中的贝叶斯节点为代码度量元,所述代码度量元包含语句数、方法总数、方法的平均语句数、方法的平均调用数、圈复杂度总和、最大圈复杂度、最大模块深度、平均模块深度、可维护性指数、继承深度以及类耦合;
进一步的,度量元状态值包括除去其他标签数状态值的HTML度量元状态值、代码度量元状态值以及代码缺陷预测状态值,所述度量元状态值根据对与度量元对应的度量元数据进行状态划分得到,当所述度量元或代码缺陷数在历史数据中占据前25%位置,其度量元状态值为“多”,当所述度量元或代码缺陷数在历史数据中占据中间50%位置,其度量元状态值为“中”,当所述度量元或代码缺陷数在历史数据中占据最后25%位置,其度量元状态值为“少”;所述除去其他标签数状态值的HTML度量元状态值指行数、HTML标签数以及复合标签百分数;
进一步的,所述HTML缺陷预测为3个以上缺陷时所述HTML缺陷预测状态值为“多”,所述HTML缺陷预测为1~2个缺陷时所述HTML缺陷预测状态值为“中”,所述HTML缺陷预测为0个缺陷时,所述HTML缺陷预测为“少”;;所述其他标签数的值大于0时,其度量元状态值为“有”,否则其度量元状态值为“无”;
进一步的,所述HTML贝叶斯网络结构模块中,各度量元节点均与HTML缺陷节点相连,HTML标签数节点、复合标签百分数节点以及其他标签数节点与行数节点相连,复合标签百分数节点与HTML标签数节点相连、其他标签数节点与HTML标签数节点相连;
进一步的,所述代码贝叶斯网络结构模块中,各度量元节点均与代码缺陷节点相连,方法总数节点与语句数节点相连,方法的平均语句数节点与语句数节点相连,最大圈复杂度节点与圈复杂度总和节点相连,最大模块深度节点与平均模块深度节点。
本发明的有益效果为:本发明的技术方案,给出了一种基于贝叶斯网络的网站缺陷预测方法及其实现系统,所述方法可预测得到网站HTML缺陷以及代码缺陷情况,预测准确率高;所述方法对测试结果进行重新学习以不断修正模型预测能力;所述方法中的度量元易获得,方法的实用性强。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1为本发明具体实施方式的一种基于贝叶斯网络的网站缺陷预测方法的流程图;以及
图2为本发明具体实施方式的一种用于实现基于贝叶斯网络的网站缺陷预测方法的结构图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图1为本发明具体实施方式的一种基于贝叶斯网络的网站缺陷预测方法的流程图,所述方法包括以下步骤:
步骤101,建立HTML贝叶斯网络结构,所述HTML贝叶斯网络结构的节点为网页HTML的度量元以及HTML缺陷数;
步骤102,建立代码贝叶斯网络结构,所述代码贝叶斯网络结构的节点为网页代码的度量元以及代码缺陷数;
步骤103,HTML贝叶斯网络结构使用历史网页的HTML度量元状态值作为训练样本进行最大似然估计算法的参数学习,获得HTML度量元的条件概率分布表,所述HTML贝叶斯网络结构与HTML度量元的条件概率分布表组成HTML贝叶斯网络子模型;
步骤104,代码贝叶斯网络结构使用历史网页的代码度量元状态值作为训练样本进行最大似然估计算法的参数学习,获得代码度量元的条件概率分布表,所述代码贝叶斯网络结构与代码度量元的条件概率分布表组成代码贝叶斯网络子模型;以及
步骤105,将待测网页的HTML度量元状态值以及代码度量元状态值代入HTML贝叶斯子模型以及代码贝叶斯子模型,得到待测网页的HTML缺陷预测以及代码缺陷预测。
进一步的,所述网页HTML的度量元包含:
行数(Ls),所述行数为网页文件除去空行的总行数;
HTML标签数(Tag),所述HTML标签数为网页文件中所有标签数;
复合标签百分数(CTag),所述复合标签百分数为网页文件中名称为FORM、SELECT、TABLE、MAP、FRAME以及MARQUEE的标签数之和与总标签数的百分比;
其他标签数(OTag),所述其他标签数为网页文件中HREF、SRC、SCRIPT以及APPLET标签数的总和;
进一步的,所述网页代码的度量元包括:
语句数(Ss),所述语句数为以分号结尾的语句、未以分号结尾的方法语句与属性语句、预处理语句#include、#define以及#undef数量之和,其中在#else和#endif之间以及#elif和#endif之间的语句不计算在内;
方法总数(Ms),所述方法总数指代码文件中所有类方法的数量之和;
方法的平均语句数(MAs),所述方法的平均语句数指代码文件中所有类方法中的语句数量之和除以方法总数所得的值;
方法的平均调用数(MCs),所述方法的平均调用数指代码文件中调用方法的总数除以方法总数所得的值;
圈复杂度总和(Mc),所述圈复杂度总和指代码文件中所有方法的圈复杂度累加之和;
最大圈复杂度(MMc),所述最大圈复杂度指代码文件中所有方法中最大的圈复杂度的值;
最大模块深度(MDs),所述最大模块深度指代码文件中模块嵌套的最大深度数;
平均模块深度(ADs),所述平均模块深度指代码文件中所有方法中模块嵌套深度的平均值;
可维护性指数(MI),所述可维护性指数是指通过软件结构、文档注释、命名规范、系统配置管理以及版本管理等的优良程度来确认的维护代码的相对难易度,0≤MI≤100,MI越大表示维护性越好;
继承深度(ID),所述继承深度指代码文件中派生层次最多的类或对象的层次数;
类耦合(CC),所述类耦合是指通过参数、局部变量、返回类型、方法调用、泛型或模板实例化、基类、接口实现、在外部类型上定义的字段以及特性修饰来衡量与唯一类的耦合程度;
进一步的,度量元状态值包括除去其他标签数状态值的HTML度量元状态值、代码度量元状态值以及代码缺陷预测状态值,所述度量元状态值根据对与度量元对应的度量元数据进行状态划分得到,当所述度量元或代码缺陷数在历史数据中数量大小占据前25%位置,其度量元状态值为“多”,当所述度量元或代码缺陷数在历史数据中数量大小占据中间50%位置,其度量元状态值为“中”,当所述度量元或代码缺陷数在历史数据中数量大小占据最后25%位置,其度量元状态值为“少”;所述除去其他标签数状态值的HTML度量元状态值指行数、HTML标签数以及复合标签百分数;
进一步的,对于所述HTML缺陷预测状态值:所述HTML缺陷预测为3个以上缺陷时所述HTML缺陷预测状态值为“多”,所述HTML缺陷预测为1~2个缺陷时所述HTML缺陷预测状态值为“中”,所述HTML缺陷预测为0个缺陷时,所述HTML缺陷预测为“少”;所述其他标签数的值大于0时,其度量元状态值为“有”,否则其度量元状态值为“无”;
进一步的,所述HTML贝叶斯网络结构中,各度量元节点均与HTML缺陷节点相连,HTML标签数节点、复合标签百分数节点以及其他标签数节点与行数节点相连,复合标签百分数节点与HTML标签数节点相连、其他标签数节点与HTML标签数节点相连;
进一步的,所述代码贝叶斯网络结构中,各度量元节点均与代码缺陷节点相连,方法总数节点与语句数节点相连,方法的平均语句数节点与语句数节点相连,最大圈复杂度节点与圈复杂度总和节点相连,最大模块深度节点与平均模块深度节点;
进一步的,所述待测网页的缺陷实测结果与各度量值作为新的样品加入训练集,用于使贝叶斯网络模型进行重新学习,以修正各节点的条件概率。
图2为本发明具体实施方式的一种用于实现基于贝叶斯网络的网站缺陷预测方法的装置的结构图,所述装置包括:
HTML贝叶斯网络结构模块,所述HTML贝叶斯网络结构模块的节点为为网页HTML的度量元以及HTML缺陷数;所述HTML贝叶斯网络结构模块的输出为HTML贝叶斯网络结构,所述HTML贝叶斯网络结构模块的输出与HTML度量元概率分布模块的输入端以及预测模块输入端相连;
代码贝叶斯网络结构模块,所述代码贝叶斯网络结构模块的节点为为网页代码的度量元以及代码缺陷数,所述代码贝叶斯网络结构模块的输出为代码贝叶斯网络结构,所述代码贝叶斯网络结构模块的输出与代码度量元概率分布模块的输入端以及预测模块输入端相连;
HTML度量元概率分布模块,所述HTML度量元概率分布模块用于使HTML贝叶斯网络结构对历史网页的HTML度量元状态值进行最大似然估计算法的参数学习,所述HTML度量元概率分布模块的输出为HTML度量元条件概率分布表,所述HTML度量元概率分布模块的输出端与预测模块的输入端相连;
代码度量元概率分布模块,所述代码度量元概率分布模块用于使代码贝叶斯网络结构对历史网页的代码度量元状态值进行最大似然估计算法的参数学习,所述代码度量元概率分布模块的输出为代码度量元条件概率分布表,所述代码度量元概率分布模块的输出端与预测模块的输入端相连;
预测模块,所述预测模块用于根据待测网页的HTML度量元状态值以及代码度量元状态值进行预测,得到HTML缺陷以及代码缺陷。
进一步的,所述HTML贝叶斯网络结构模块中的贝叶斯节点为HTML度量元,所述HTML度量元包含行数、HTML标签数、复合标签百分数以及其他标签数;所述代码贝叶斯网络结构模块中的贝叶斯节点为代码度量元,所述代码度量元包含语句数、方法总数、方法的平均语句数、方法的平均调用数、圈复杂度总和、最大圈复杂度、最大模块深度、平均模块深度、可维护性指数、继承深度以及类耦合;
进一步的,度量元状态值包括除去其他标签数状态值的HTML度量元状态值、代码度量元状态值以及代码缺陷预测状态值,所述度量元状态值根据对与度量元状态值对应的度量元数据进行状态划分得到,当所述度量元或代码缺陷数在历史数据中数量大小占据前25%位置,其度量元状态值为“多”,当所述度量元或代码缺陷数在历史数据中数量大小占据中间50%位置,其度量元状态值为“中”,当所述度量元或代码缺陷数在历史数据中数量大小占据最后25%位置,其度量元状态值为“少”;所述除去其他标签数状态值的HTML度量元状态值指行数、HTML标签数以及复合标签百分数;
进一步的,所述HTML缺陷预测为3个以上缺陷时所述HTML缺陷预测状态值为“多”,所述HTML缺陷预测为1~2个缺陷时所述HTML缺陷预测状态值为“中”,所述HTML缺陷预测为0个缺陷时,所述HTML缺陷预测为“少”;所述其他标签数的值大于0时,其度量元状态值为“有”,否则其度量元状态值为“无”;
进一步的,所述HTML贝叶斯网络结构模块中,各度量元节点均与HTML缺陷节点相连,HTML标签数节点、复合标签百分数节点以及其他标签数节点与行数节点相连,复合标签百分数节点与HTML标签数节点相连、其他标签数节点与HTML标签数节点相连;
进一步的,所述代码贝叶斯网络结构模块中,各度量元节点均与代码缺陷节点相连,方法总数节点与语句数节点相连,方法的平均语句数节点与语句数节点相连,最大圈复杂度节点与圈复杂度总和节点相连,最大模块深度节点与平均模块深度节点。
根据本发明的实施方式,对招生系统的一组网页进行缺陷数预测。
待测的招生系统共有228个HTML网页以及515个代码模块,根据本发明的方法,建立HTML贝叶斯网络模型以及代码贝叶斯网络模型,使用度量工具SourceMonitor和微软的VS对同一项目组开发的信息化平台系统进行度量元的测度,将这些数据转换为节点的相应状态值,作为贝叶斯网络模型输入的训练样本,所述模型使用最大似然性估计算法学习后,对所述招生系统各HTML网页和代码模块进行了缺陷预测。
预测结束后对所述招生系统进行实际缺陷测试,所述228个HTML网页中有191个页面的预测结果与实际测试结果一致,所述515个代码模块有399个模块的预测结果与实际测试结果一致,总体正确率为80%。
同时,将招生系统的实测结果继续学习后对同项目组开发的其他项目做缺陷预测,得到的总体正确率达到85%左右,对其他项目组开发的项目进行缺陷预测,得到总体正确率达到70%左右。
Claims (13)
1.一种基于贝叶斯网络的网站缺陷预测方法,所述方法包含:
建立HTML贝叶斯网络结构,所述HTML贝叶斯网络结构的节点为网页的HTML度量元以及HTML缺陷数;所述HTML度量元包含行数、HTML标签数、复合标签百分数以及其他标签数;
建立代码贝叶斯网络结构,所述代码贝叶斯网络结构的节点为网页的代码度量元以及代码缺陷数;所述代码度量元包含语句数、方法总数、方法的平均语句数、方法的平均调用数、圈复杂度总和、最大圈复杂度、 最大模块深度、平均模块深度、可维护性指数、继承深度以及类耦合;
HTML贝叶斯网络结构使用历史网页的HTML度量元状态值作为训练样本进行最大似然估计算法的参数学习,获得HTML度量元的条件概率分布表,所述HTML贝叶斯网络结构与HTML度量元的条件概率分布表组成HTML贝叶斯网络子模型;所述HTML度量元状态值根据对与HTML度量元对应的HTML度量元数据进行状态划分得到;
代码贝叶斯网络结构使用历史网页的代码度量元状态值作为训练样本进行最大似然估计算法的参数学习,获得代码度量元的条件概率分布表,所述代码贝叶斯网络结构与代码度量元的条件概率分布表组成代码贝叶斯网络子模型;以及
将待测网页的HTML度量元状态值以及代码度量元状态值代入HTML贝叶斯子模型以及代码贝叶斯子模型,得到待测网页的HTML缺陷预测以及代码缺陷预测。
2.根据权利要求1所述的方法,其特征在于:所述网页的HTML度量元包含:
行数(Ls),所述行数为网页文件除去空行的总行数;
HTML标签数(Tag),所述HTML标签数为网页文件中所有标签数;
复合标签百分数(CTag),所述复合标签百分数为网页文件中名称为FORM、SELECT、TABLE、MAP、FRAME以及MARQUEE的标签数之和与总标签数的百分比;
其他标签数(OTag),所述其他标签数为网页文件中HREF、SRC、SCRIPT以及APPLET标签数的总和。
3.根据权利要求1所述的方法,其特征在于:所述网页的代码度量元包括:
语句数(Ss),所述语句数为以分号结尾的语句、未以分号结尾的方法语句与属性语句、预处理语句#include、#define以及#undef数量之和,其中在#else和#endif之间以及#elif和#endif之间的语句不计算在内;
方法总数(Ms),所述方法总数指代码文件中所有类方法的数量之和;
方法的平均语句数(MAs),所述方法的平均语句数指代码文件中所有类方法中的语句数量之和除以方法总数所得的值;
方法的平均调用数(MCs),所述方法的平均调用数指代码文件中调用方法的总数除以方法总数所得的值;
圈复杂度总和(Mc),所述圈复杂度总和指代码文件中所有方法的圈复杂度累加之和;
最大圈复杂度(MMc),所述最大圈复杂度指代码文件中所有方法中最大的圈复杂度的值;
最大模块深度(MDs),所述最大模块深度指代码文件中模块嵌套的最大深度数;
平均模块深度(ADs),所述平均模块深度指代码文件中所有方法中模块嵌套深度的平均值;
可维护性指数(MI),所述可维护性指数是指通过软件结构、文档注释、命名规范、系统配置管理以及版本管理的优良程度来确认的维护代码的相对难易度,0≤MI≤100,MI越大表示维护性越好;
继承深度(ID),所述继承深度指代码文件中派生层次最多的类或对象的层次数;
类耦合(CC),所述类耦合是指通过参数、局部变量、返回类型、方法调用、泛型或模板实例化、基类、接口实现、在外部类型上定义的字段以及特性修饰来衡量与唯一类的耦合程度。
4.根据权利要求1所述的方法,其特征在于:当所述HTML度量元在历史数据中数量大小占据前25%位置,其HTML度量元状态值为“多”,当所述HTML度量元在历史数据中数量大小占据中间50%位置,其HTML度量元状态值为“中”,当所述HTML度量元在历史数据中数量大小占据最后25%位置,其HTML度量元状态值为“少”。
5.根据权利要求2所述的方法,其特征在于:所述HTML缺陷预测为3个以上缺陷时所述HTML缺陷预测状态值为“多”,所述HTML缺陷预测为1~2个缺陷时所述HTML缺陷预测状态值为“中”,所述HTML缺陷预测为0个缺陷时,所述HTML缺陷预测状态值为“少”;所述其他标签数的值大于0时,其他标签数状态值为“有”,所述其他标签数的值小于等于0时其他标签数状态值为“无”。
6.根据权利要求2所述的方法,其特征在于:所述HTML贝叶斯网络结构中,各度量元节点均与HTML缺陷节点相连,HTML标签数节点、复合标签百分数节点以及其他标签数节点与行数节点相连,复合标签百分数节点与HTML标签数节点相连、其他标签数节点与HTML标签数节点相连。
7.根据权利要求3所述的方法,其特征在于:所述代码贝叶斯网络结构中,各度量元节点均与代码缺陷节点相连,方法总数节点与语句数节点相连,方法的平均语句数节点与语句数节点相连,最大圈复杂度节点与圈复杂度总和节点相连,最大模块深度节点与平均模块深度节点。
8.根据权利要求1所述的方法,其特征在于:所述待测网页的缺陷实测结果与各度量值作为新的样品加入训练集,用于使贝叶斯网络模型进行重新学习,以修正各节点的条件概率。
9.一种用于实现基于贝叶斯网络的网站缺陷预测方法的系统,所述系统包含:
HTML贝叶斯网络结构模块,所述HTML贝叶斯网络结构模块的节点为网页的HTML度量元以及HTML缺陷数;所述HTML度量元包含行数、HTML标签数、复合标签百分数以及其他标签数;所述HTML贝叶斯网络结构模块的输出为HTML贝叶斯网络结构,所述HTML贝叶斯网络结构模块的输出端与HTML度量元概率分布模块的输入端以及预测模块输入端相连;
代码贝叶斯网络结构模块,所述代码贝叶斯网络结构模块的节点为网页的代码度量元以及代码缺陷数,所述代码度量元包含语句数、方法总数、方法的平均语句数、方法的平均调用数、圈复杂度总和、最大圈复杂度、 最大模块深度、平均模块深度、可维护性指数、继承深度以及类耦合;所述代码贝叶斯网络结构模块的输出为代码贝叶斯网络结构,所述代码贝叶斯网络结构模块的输出端与代码度量元概率分布模块的输入端以及预测模块输入端相连;
HTML度量元概率分布模块,所述HTML度量元概率分布模块用于使HTML贝叶斯网络结构对历史网页的HTML度量元状态值进行最大似然估计算法的参数学习,所述HTML度量元概率分布模块的输出为HTML度量元条件概率分布表,所述HTML度量元概率分布模块的输出端与预测模块的输入端相连;
代码度量元概率分布模块,所述代码度量元概率分布模块用于使代码贝叶斯网络结构对历史网页的代码度量元状态值进行最大似然估计算法的参数学习,所述代码度量元概率分布模块的输出为代码度量元条件概率分布表,所述代码度量元概率分布模块的输出端与预测模块的输入端相连;
预测模块,所述预测模块用于根据待测网页的HTML度量元状态值以及代码度量元状态值进行预测,得到HTML缺陷以及代码缺陷。
10.根据权利要求9所述的系统,其特征在于:所述HTML度量元状态值根据对与所述度量元对应的度量元数据进行状态划分得到,当所述HTML度量元在历史数据中占据前25%位置,其HTML度量元状态值为“多”,当所述HTML度量元在历史数据中占据中间50%位置,其HTML度量元状态值为“中”,当所述HTML度量元在历史数据中占据最后25%位置,其HTML度量元状态值为“少”。
11.根据权利要求9所述的系统,其特征在于:所述HTML缺陷预测为3个以上缺陷时所述HTML缺陷预测状态值为“多”,所述HTML缺陷预测为1~2个缺陷时所述HTML缺陷预测状态值为“中”,所述HTML缺陷预测为0个缺陷时,所述HTML缺陷预测为“少”;所述其他标签数的值大于0时,其他标签数状态值为“有”,所述其他标签数的值小于等于0时其他标签数状态值为“无”。
12.根据权利要求9所述的系统,其特征在于:所述HTML贝叶斯网络结构模块中,各度量元节点均与HTML缺陷节点相连,HTML标签数节点、复合标签百分数节点以及其他标签数节点与行数节点相连,复合标签百分数节点与HTML标签数节点相连、其他标签数节点与HTML标签数节点相连。
13.根据权利要求9所述的系统,其特征在于:所述代码贝叶斯网络结构模块中,各度量元节点均与代码缺陷节点相连,方法总数节点与语句数节点相连,方法的平均语句数节点与语句数节点相连,最大圈复杂度节点与圈复杂度总和节点相连,最大模块深度节点与平均模块深度节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710417699.5A CN107133179B (zh) | 2017-06-06 | 2017-06-06 | 一种基于贝叶斯网络的网站缺陷预测方法及其实现系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710417699.5A CN107133179B (zh) | 2017-06-06 | 2017-06-06 | 一种基于贝叶斯网络的网站缺陷预测方法及其实现系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107133179A CN107133179A (zh) | 2017-09-05 |
CN107133179B true CN107133179B (zh) | 2020-12-08 |
Family
ID=59734328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710417699.5A Active CN107133179B (zh) | 2017-06-06 | 2017-06-06 | 一种基于贝叶斯网络的网站缺陷预测方法及其实现系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107133179B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1667587A (zh) * | 2005-04-11 | 2005-09-14 | 北京航空航天大学 | 基于扩展的马尔克夫贝叶斯网的软件可靠性评估方法 |
CN103810102A (zh) * | 2014-02-19 | 2014-05-21 | 北京理工大学 | 一种用于预测软件缺陷的方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071807A1 (en) * | 2003-09-29 | 2005-03-31 | Aura Yanavi | Methods and systems for predicting software defects in an upcoming software release |
-
2017
- 2017-06-06 CN CN201710417699.5A patent/CN107133179B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1667587A (zh) * | 2005-04-11 | 2005-09-14 | 北京航空航天大学 | 基于扩展的马尔克夫贝叶斯网的软件可靠性评估方法 |
CN103810102A (zh) * | 2014-02-19 | 2014-05-21 | 北京理工大学 | 一种用于预测软件缺陷的方法和系统 |
Non-Patent Citations (3)
Title |
---|
Software defect prediction using Bayesian networks;Okutan A等;《Empirical Software Engineering》;20140228;正文第10-14页,图3 * |
Towards building a universal defect prediction model;Zhang等;《Empirical Software Engineering》;20150830;全文 * |
静态软件缺陷预测方法研究;陈翔等;《软件学报》;20151104;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107133179A (zh) | 2017-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111881023B (zh) | 一种基于多模型对比的软件老化预测方法及装置 | |
CN110942086A (zh) | 数据预测优化方法、装置、设备及可读存储介质 | |
CN112906375A (zh) | 文本数据标注方法、装置、设备及存储介质 | |
CN112163377A (zh) | 变压器温度预警模型的获取方法和装置及温度预测方法 | |
CN113515402A (zh) | 用于工程设备的故障信息分类方法、装置及工程设备 | |
CN117724980A (zh) | 软件框架性能的测试方法、装置、电子设备和存储介质 | |
CN117593115A (zh) | 信贷风险评估模型的特征值确定方法、装置、设备和介质 | |
CN115114124A (zh) | 主机风险的评估方法及评估装置 | |
CN107133179B (zh) | 一种基于贝叶斯网络的网站缺陷预测方法及其实现系统 | |
CN110135592B (zh) | 分类效果确定方法、装置、智能终端及存储介质 | |
US7797136B2 (en) | Metrics to evaluate process objects | |
CN104123469B (zh) | 一种普适计算环境上下文一致性检测调度系统及方法 | |
CN114896024B (zh) | 基于核密度估计的虚拟机运行状态检测方法和装置 | |
CN114757166A (zh) | 自然语言理解系统的评估方法、装置及网络设备 | |
CN117807545B (zh) | 一种基于数据挖掘的异常检测方法及系统 | |
CN109614328B (zh) | 用于处理测试数据的方法和装置 | |
CN116755910B (zh) | 基于冷启动的宿主机高可用预测方法、装置和电子设备 | |
CN102129651A (zh) | 一种智能确定离群点和优化显示方式的财务预测方法 | |
CN117745438A (zh) | 模型表现衰减风险预测方法、装置、电子设备和介质 | |
CN115730245A (zh) | 一种油浸式电力变压器故障诊断方法、装置、设备及介质 | |
CN118378952A (zh) | 一种数字员工评价方法及装置 | |
CN116737580A (zh) | 一种回归测试范围确定方法、装置、设备及存储介质 | |
CN117648252A (zh) | 软件应用的功能测试方法、装置、电子设备及存储介质 | |
CN105281977A (zh) | 一种基于二叉树算法的智能性能测试方法及系统 | |
CN117854280A (zh) | 交通流预测方法、装置、电子设备及可读存储介质 |
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 |