System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件测试领域,尤其涉及一种基于分支覆盖的自动化软件测试平台。
技术介绍
1、一直以来,大多数公司和研究所在测试用例编写上需要测试人员进行人工编写,这就使得生成的测试用例有较多的不确定性,受到测试人员的影响较大。测试人员编写的测试用例并不能在第一次执行中就达到要求的覆盖率,通常需要进行多次迭代。在高频率需求版本的迭代下,测试人员的工作量往往较大,加快用例生成效率并提高其覆盖率成为需要解决的问题。
2、现有的用于测试用例生成的测试工具大多针对判定、路径等覆盖准则生成的测试用例,pict使用正交设计法设计测试用例,在组合覆盖中可以有较好的效果;agitar主要是针对java语言编写的被测代码,该工具可以达到80%的路径覆盖,但是这些测试工具在测试过程中的静态分析过程复杂且易出错、测试用例生成困难且覆盖率不足、测试用例管理不便和复用性差等一系列技术问题。
技术实现思路
1、本专利技术要解决的技术问题是:现有的测试用例生成工具在测试过程中测试例覆盖率不足。
2、为此,本专利技术提供一种基于分支覆盖的自动化软件测试平台。
3、本专利技术解决其技术问题所采用的技术方案是:
4、一种基于分支覆盖的自动化软件测试平台,包括,
5、登录模块,所述登录模块用于验证测试人员的身份信息并触发测试用例生成操作;
6、源文件模块,所述源文件模块用于获取及储存被测程序;
7、静态分析模块,所述静态分析模块主要是对被测
8、测试用例生成模块,所述测试用例生成模块采用分支覆盖准则对测试目标进行覆盖,生成能满足覆盖准则的测试用例。
9、进一步地,所述静态分析模块中主要包括analysistestfile类、generate_cfg类、cfggraph类、generate_branchcoverage类以及displaycoverage类,所述analysistestfile类主要对被测文件进行解析和分析,所述generate_cfg类对ast进行遍历,生成包含各分支的控制流图(cfg),所述cfggraph类对控制流图的节点和边进行管理,所述generate_branchcoverage类基于cfg对各分支进行覆盖分析,并生成覆盖准则分析图,所述displaycoverage类将覆盖分析结果进行展示,方便测试人员查看覆盖情况。
10、进一步地,所述测试用例生成模块根据静态分析模块得到被测程序的测试目标,并对被测程序进行插桩,利用改进的算法生成满足分支覆盖准则的测试用例。
11、进一步地,所述测试用例生成模块包括tc_generation类、gasa类、parameter类、tc_display类、tc_report类以及tc类。
12、进一步地,还包括测试用例管理模块,所述测试用例管理模块包括tc类、edittc类、tc_display类和generatereport类
13、进一步地,还包括机器学习模块,所述机器学习算法模块包括dataprocessor类、modeltrainer类、modelpredictor类、apiserver类和testplatform类,所述dataprocessor类负责数据收集、预处理和特征提取,所述modeltrainer类负责模型选择、训练和评估所述,modelpredictor类负责加载已训练模型并进行预测,所述apiserver类负责提供预测服务的api接口,所述testplatform负责集成模块并管理测试用例生成流程。
14、进一步地,所述机器学习模块利用机器学习算法模型对历史测试数据进行训练,确保模型能够准确预测代码中的潜在问题和高风险区域。
15、进一步地,所述机器学习模块使用随机森林模型,对代码特征进行提取,使用历史数据训练集进行训练,通过交叉验证优化模型参数,并在测试集上使用准确性标准评估模型性能,调整模型参数,将训练好的模型集成到测试平台中。
16、一种计算机设备,包括:
17、处理器;
18、存储器,用于存储可执行指令;
19、其中,所述处理器用于从所述存储器中读取所述可执行指令,并执行所述可执行指令以实现基于分支覆盖的自动化软件测试平台的功能。
20、一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得处理器实现所述的基于分支覆盖的自动化软件测试平台的功能。
21、本专利技术的有益效果是,本专利技术的软件测试系统通过集成登录、静态分析、测试用例生成和管理等多个模块,显著提高了测试效率和质量,增加了测试覆盖率,增强了代码的质量和稳定性,并有效缩短了软件开发周期。
22、其中静态分析模块中采用generate_branchcoverage类基于cfg对各分支进行覆盖分析,并生成覆盖准则分析图,解决传统软件测试过程中的静态分析过程复杂且易出错、测试用例生成困难且覆盖率不足、测试用例管理不便和复用性差等一系列技术问题。
本文档来自技高网...【技术保护点】
1.一种基于分支覆盖的自动化软件测试平台,其特征在于,包括,
2.根据权利要求1所述的基于分支覆盖的自动化软件测试平台,其特征在于,所述静态分析模块中主要包括AnalysisTestFile类、Generate_CFG类、CFGGraph类、Generate_BranchCoverage类以及DisplayCoverage类,所述AnalysisTestFile类主要对被测文件进行解析和分析,所述Generate_CFG类对AST进行遍历,生成包含各分支的控制流图(CFG),所述CFGGraph类对控制流图的节点和边进行管理,所述Generate_BranchCoverage类基于CFG对各分支进行覆盖分析,并生成覆盖准则分析图,所述DisplayCoverage类将覆盖分析结果进行展示,方便测试人员查看覆盖情况。
3.根据权利要求1所述的基于分支覆盖的自动化软件测试平台,其特征在于,所述测试用例生成模块根据静态分析模块得到被测程序的测试目标,并对被测程序进行插桩,利用改进的算法生成满足分支覆盖准则的测试用例。
4.根据权利要求3所述的基于分支
5.根据权利要求1所述的基于分支覆盖的自动化软件测试平台,其特征在于,还包括测试用例管理模块,所述测试用例管理模块包括TC类、EditTC类、TC_display类和GenerateReport类。
6.根据权利要求1所述的基于分支覆盖的自动化软件测试平台,其特征在于,还包括机器学习模块,所述机器学习算法模块包括DataProcessor类、ModelTrainer类、ModelPredictor类、APIServer类和TestPlatform类,所述DataProcessor类负责数据收集、预处理和特征提取,所述ModelTrainer类负责模型选择、训练和评估所述,ModelPredictor类负责加载已训练模型并进行预测,所述APIServer类负责提供预测服务的API接口,所述TestPlatform负责集成模块并管理测试用例生成流程。
7.根据权利要求6所述的基于分支覆盖的自动化软件测试平台,其特征在于,所述机器学习模块利用机器学习算法模型对历史测试数据进行训练,确保模型能够准确预测代码中的潜在问题和高风险区域。
8.根据权利要求7所述的基于分支覆盖的自动化软件测试平台,其特征在于,所述机器学习模块使用随机森林模型,对代码特征进行提取,使用历史数据训练集进行训练,通过交叉验证优化模型参数,并在测试集上使用准确性标准评估模型性能,调整模型参数,将训练好的模型集成到测试平台中。
9.一种计算机设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得处理器实现如权利要求1至8中任一项所述的基于分支覆盖的自动化软件测试平台的功能。
...【技术特征摘要】
1.一种基于分支覆盖的自动化软件测试平台,其特征在于,包括,
2.根据权利要求1所述的基于分支覆盖的自动化软件测试平台,其特征在于,所述静态分析模块中主要包括analysistestfile类、generate_cfg类、cfggraph类、generate_branchcoverage类以及displaycoverage类,所述analysistestfile类主要对被测文件进行解析和分析,所述generate_cfg类对ast进行遍历,生成包含各分支的控制流图(cfg),所述cfggraph类对控制流图的节点和边进行管理,所述generate_branchcoverage类基于cfg对各分支进行覆盖分析,并生成覆盖准则分析图,所述displaycoverage类将覆盖分析结果进行展示,方便测试人员查看覆盖情况。
3.根据权利要求1所述的基于分支覆盖的自动化软件测试平台,其特征在于,所述测试用例生成模块根据静态分析模块得到被测程序的测试目标,并对被测程序进行插桩,利用改进的算法生成满足分支覆盖准则的测试用例。
4.根据权利要求3所述的基于分支覆盖的自动化软件测试平台,其特征在于,所述测试用例生成模块包括tc_generation类、gasa类、parameter类、tc_display类、tc_report类以及tc类。
5.根据权利要求1所述的基于分支覆盖的自动化软件测试平台,其特征在于,还包括测试用例管理模块,所述测试用例管理模块包括tc类、edittc类、tc_displ...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。