一种基于机器学习的软件质量评估方法及系统与流程
- 国知局
- 2024-08-05 11:50:18
本发明涉及软件质量评估,具体为一种基于机器学习的软件质量评估方法及系统。
背景技术:
1、软件质量是与软件产品满足规定的或隐含的能力要求有关的特征与特征综合;保证软件质量是贯穿整个软件生命周期的重要问题,对软件质量进行有效评估,也日益成为保证软件质量的一种重要手段。
2、基于机器学习方法可以自动化地对大量的软件数据进行评估和分析,从而提高评估的效率和速度。相比传统的手动评估方法,机器学习可以处理更多的数据,并在较短的时间内生成评估结果。机器学习方法使用数据驱动的方式进行评估,减少了主观因素的影响。可以提供客观、一致的评估结果,避免了人为的偏见和误差。
3、虽然基于机器学习的软件质量评估方法相对于传统的软件质量评估方法有众多优点,但是对于快速提高软件质量,缩短软件开发周期帮助甚微,因此需要一种基于机器学习的软件质量评估方法及系统。
技术实现思路
1、针对现有技术的不足,本发明提供了一种基于机器学习的软件质量评估方法及系统,能够有效地快速提高软件质量,缩短软件开发周期。
2、为实现以上目的,本发明通过以下技术方案予以实现,一种基于机器学习的软件质量评估方法,预先设置运行时间阈值,在软件持续运行时间超过时间阈值后,对软件质量进行评估,软件质量评估包括静态测试和动态测试;
3、在对软件代码进行静态测试时,获取并汇总复杂度cr、重复率dm及耦合度cd,建立代码静态数据集,并生成第一质量系数;若生成第一质量系数小于第一质量阈值,对软件代码进行初次优化,优化完成后的代码再次进行静态测试,第一质量系数不小于第一质量阈值时,静态测试通过;若静态测试结果仍未通过则重复上述步骤若干次,若仍难以通过,则获取当前状态下的第一质量系数;
4、生成第一质量系数建立方式如下:由所述代码静态数据集生成第一质量系数,具体方式如下:将复杂度cr、重复率dm及耦合度cd相关联,关联公式如下所示:
5、;
6、其中,参数意义为:复杂度因子,,重复率因子,,耦合度因子,,为常数修正系数;
7、对软件代码进行动态测试时,获取并汇总缺陷密度qd、响应时间xt及资源利用率zv,建立代码动态数据集,并生成第二质量系数;第二质量系数的生成方式如下:由所述代码动态数据集生成第二质量系数,具体方式如下:将缺陷密度qd、响应时间xt及资源利用率zv相关联,关联公式如下所示:
8、;
9、其中,参数意义为:密度因子,,响应因子,,利用率因子,,为常数修正系数;若生成第二质量系数小于第二质量阈值,对软件代码进行二次优化,第二质量系数不小于第二质量阈值时,动态测试通过;若仍难以通过,则获取当前状态下的第二质量系数;
10、若软件代码未同时通过静态测试和动态测试,则基于当前状态下的第一质量系数及第二质量系数生成软件质量值rj;分别获取相应的当前状态下的第一质量系数及第二质量系数,依照如下方式关联获取软件质量值rj,;
11、其中,、均为权重系数,,,为常数修正系数;以软件质量值rj与预设阈值进行比对,并生成软件质量评估结果;依据软件质量评估结果,向外部发出报警信息,并对软件进行修正。
12、进一步的,代码静态数据集的建立方式如下:在对软件质量进行静态测试时,对软件代码进行复杂度分析,获取代码复杂度cr,依照各组代码的不同功能将软件代码等量的分割为若干个检测段,获取各个检测段内重复代码的数量,进而生成检测段内的代码重复率,计算各个检测段的代码重复率的平均值,得到代码的重复率dm;测试和识别各个检测段间的耦合度,并在平均后,获取代码的耦合度cd;获取并汇总复杂度cr、重复率dm及耦合度cd,建立代码静态数据集。
13、进一步的,预先设置第一质量阈值,将第一质量系数与第一质量阈值对比,存在两种比对结果,具体如下:第一质量系数小于第一质量阈值时,检索、收集及制定与当前代码相关的代码优化方案,汇总后建立代码优化方案库;若当前代码需要进一步优化,则获取当前代码的优化特征;
14、使用训练后的匹配模型,依据当前的软件代码的优化特征,从代码优化方案库匹配出优化方案,再次对软件代码进行静态测试,若静态测试结果仍未通过则重复上述步骤若干次,若仍难以通过,则获取当前状态下的第一质量系数;第一质量系数不小于第一质量阈值时,静态测试通过。
15、进一步的,在软件处于运行状态时,对软件代码进行动态测试,依据测试结果建立代码动态数据集,并生成第二质量系数;其中,代码动态数据集建立方式如下:对软件进行性能测试,分别获取软件代码的缺陷密度qd,软件代码的响应时间xt及资源利用率zv;获取并汇总缺陷密度qd、响应时间xt及资源利用率zv,建立代码动态数据集。
16、进一步的,预先设置第二质量阈值,将第二质量系数与第二质量阈值对比,存在两种比对结果,具体如下:第二质量系数小于第二质量阈值时,检索、收集及制定与当前代码相关的代码优化方案,汇总后建立代码优化方案库;若当前代码需要进一步优化,则获取当前代码的优化特征;使用训练后的匹配模型,依据当前的软件代码的优化特征,从代码优化方案库匹配出优化方案,执行该优化方案以对软件代码进行优化后;
17、再次对软件代码进行动态测试,若动态测试结果仍未通过则重复上述步骤若干次,若仍难以通过,则获取当前状态下的第二质量系数;第二质量系数不小于第二质量阈值时,动态测试通过。
18、进一步的,预先设置第三质量阈值及第四质量阈值,其中,第三质量阈值小于第四质量阈值;当软件质量值rj小于等于第三质量阈值,将该软件确定为不合格产品;当软件质量值rj在第三质量阈值与第四质量阈值之间时,将该软件标记为瑕疵产品;当软件质量值rj大于等于第四质量阈值时,将该软件标记为微瑕产品。
19、进一步的,获取经过两次优化后的软件代码,依据功能将软件代码分割为若个功能区域,对各个功能区域进行软件功能测试,对于不合格产品;将测试不通过的功能区域确定为不合格区域;从现有的代码库中,选功能相对应的代码模块对瑕疵区域进行替换;形成修正后软件产品;
20、对于瑕疵产品;将测试不通过的功能区域确定为瑕疵区域,识别出各个瑕疵区域内的缺陷及相应的位置信息,对缺陷所在区域的缺陷代码进行替换;形成修正后软件产品;
21、对于微瑕产品;将测试不通过的功能区域确定为微瑕区域,识别出各个微瑕区域内的缺陷区域并进行标记,对标记的缺陷代码进行修正;形成修正后软件产品。
22、一种基于机器学习的软件质量评估系统,包括静态测试单元、动态测试单元、第一优化单元、第二优化单元、处理单元和软件修正单元;
23、静态测试单元用于建立代码静态数据集,并生成第一质量系数;动态测试单元用于建立代码动态数据集,并生成第二质量系数;第一优化单元用于优化未通过静态测试的软件代码,并在软件代码多次未通过获取当前状态下的第一质量系数;第二优化单元用于优化未通过动态测试的软件代码,并在软件代码多次未通过获取当前状态下的第二质量系数;
24、处理单元在软件代码未同时通过静态测试和动态测试,则分别获取相应的当前状态下的第一质量系数及第二质量系数,并形成软件质量值rj,依据软件质量值rj与阈值比对结果判定软件质量;软件修正单元依据处理单元对软件质量的判定结果进行软件修正。
25、本发明提供了一种基于机器学习的软件质量评估方法及系统。具备以下有益效果:
26、(1)本发明中利用静态测试单元、动态测试单元,每一步优化完善后再进行下一步的测试,使得软件质量评估早期软件质量就得到有效改善,有效地快速提高软件质量,缩短软件开发周期;
27、(2)本发明中通过全面的测试,可以帮助发现软件中存在的问题和缺陷,包括代码错误、功能缺失、性能瓶颈等,通过及早发现和纠正这些问题,可以提高软件的可靠性和稳定性,减少后期修复成本,通过测试可以识别出软件中的改进区域,通过针对性的改进措施,可以提高软件的可维护性、可用性、性能和安全性,从而提升用户体验和用户满意度。
本文地址:https://www.jishuxx.com/zhuanli/20240802/259690.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。