发明内容
有鉴于此,本发明的主要目的在于提供具备自主学习能力的产品性能评价***及方法,其具备自动识别代码改变,自动进行代码测试,以及自动校正测试结果的功能,具有智能化程度高和测试结果准确的优点。
为达到上述目的,本发明的技术方案是这样实现的:
具备自主学习能力的产品性能评价***,所述***包括:监视模块,配置用于监视软件的代码是否发生改变;版本标识生成模块,配置用于当所述代码改变时,生成与所述代码相关的版本标识,测试场景部署模块,配置用于部署第一测试场景和第二测试场景;预测模块,配置用于基于部署的第一测试场景和第二测试场景,以及软件代码发生改变的部分占所有代码的百分比,基于预设的测试模型,生成多个预测测试结果;测试模块,配置用于在所述第一测试场景运行与所述版本标识相关联的代码,以及在所述第二测试场景中运行与先前版本标识相关联的代码,以对所述代码进行对比测试,得到多个对比测试结果,将对比测试结果与预测测试结果进行差异比对,若两者的差异在设定的阈值范围内,则将测试结果作为最终的结果,若两者的差异超过设定的阈值范围,则调整测试模块的参数,直到测试模块生成的测试结果与预测测试结果的差异在设定的阈值范围内。
进一步的,所述测试模块包括以下多项模块中的至少一项:功能对比测试模块,被配置用于对所述代码进行功能对比测试;性能对比测试模块,被配置用于对所述代码进行性能对比测试;以及压力对比测试模块,被配置用于对所述代码进行压力对比测试。
进一步的试模块中的功能对比测试模块、性能对比测试模块和压力对比测试模块均包括以下模块:权重计算模块、隶属度计算模块和综合分析模块;所述软件评价设定模块,配置用于设定软件性能的评价对象与评价因子集,以及设定评价因子的评价指标;所述权重计算模块,配置用于计算评价因子的权重;所述隶属度计算模块,配置用于计算评价对象对评价因子的隶属度;所述综合分析模块与权重计算模块与隶属度计算模块连接,用于根据所述权重和隶属度得到评价结果。
进一步的,所述综合分析模块具体用于根据所述权重组成的模糊权重向量和所述隶属度组成的模糊评价矩阵得到模糊综合评价结果向量,并根据模糊综合评价结果向量计算综合评价得分。
进一步的,所述测试模块将对比测试结果与预测测试结果进行差异比对的方法包括:采用如下公式,计算测试结果与预测测试结果的差异,即得到
得分,得分越高,差异越小:
;其中,
为测试结果,
为预测测试结果,
为测试结果的平均值,
为预测测试结果的平均值,
为测试结果和预测测试结果的个数中的较小值。
具备自主学习能力的产品性能评价方法,所述方法执行以下步骤:
步骤1:监视软件的代码是否发生改变;
步骤2:当所述代码改变时,生成与所述代码相关的版本标识;
步骤3:部署第一测试场景和第二测试场景;
步骤4:基于部署的第一测试场景和第二测试场景,以及软件代码发生改变的部分占所有代码的百分比,基于预设的测试模型,生成多个预测测试结果;
步骤5:在所述第一测试场景运行与所述版本标识相关联的代码,以及在所述第二测试场景中运行与先前版本标识相关联的代码,以对所述代码进行对比测试,得到多个对比测试结果,将对比测试结果与预测测试结果进行差异比对,若两者的差异在设定的阈值范围内,则将测试结果作为最终的结果,若两者的差异超过设定的阈值范围,则调整进行对比测试的参数,直到生成的测试结果与预测测试结果的差异在设定的阈值范围内。
进一步的,所述将对比测试结果与预测测试结果进行差异比对的方法包括:采用如下公式,计算测试结果与预测测试结果的差异,即得到
得分,得分越高,差异越小:
;其中,
为测试结果,
为预测测试结果,
为测试结果的平均值,
为预测测试结果的平均值,
为测试结果和预测测试结果的个数中的较小值。
进一步的,所述预测测试结果和测试结果至少包括以下结果中的一项:功能对比测试结果,该测试结果评价代码的功能是否出现异常;性能对比测试结果,该测试结果评价代码的性能是否满足要求;压力对比测试结果,该测试结果评价代码的稳定性是否满足要求。
进一步的,步骤1在监视软件的代码是否发生改变时,还将统计软件中改变的代码占所有代码的百分比。
进一步的,所述步骤4中预设的预测模型为一个神经网络模型,该模型基于历史数据进行训练后,能够对代码进行预测测试,生成预测测试结果。
本发明的具备自主学习能力的产品性能评价***及方法,具有如下有益效果:其具备自动识别代码改变,自动进行代码测试,以及自动校正测试结果的功能,具有智能化程度高和测试结果准确的优点。主要通过以下过程实现:1.代码改变的自动识别和测试场景的构建:本发明能够自动识别代码的改变,从而开启测试流程;自动化程度高;2.测试的自动化:本发明在测试过程中,自动进行测试,同时,测试能够多方面进行,至少包括:对所述代码进行功能对比测试;对所述代码进行性能对比测试;对所述代码进行压力对比测试;3.测试结果的校正:本发明针对软件进行测试过程中,首先基于历史数据训练了一个预测模型,该预测模型能够预测软件测试的结果,得到一个预测测试结果;同时,测试模块在所述第一测试场景运行与所述版本标识相关联的代码,以及在所述第二测试场景中运行与先前版本标识相关联的代码,以对所述代码进行对比测试,得到多个对比测试结果,将对比测试结果与预测测试结果进行差异比对,若两者的差异在设定的阈值范围内,则将测试结果作为最终的结果,若两者的差异超过设定的阈值范围,则调整测试模块的参数,直到测试模块生成的测试结果与预测测试结果的差异在设定的阈值范围内;这样得到的结果更加准确。
具体实施方式
下面结合附图及本发明的实施例对本发明的方法作进一步详细的说明。
实施例1
如图1所示,具备自主学习能力的产品性能评价***,所述***包括:监视模块,配置用于监视软件的代码是否发生改变;版本标识生成模块,配置用于当所述代码改变时,生成与所述代码相关的版本标识,测试场景部署模块,配置用于部署第一测试场景和第二测试场景;预测模块,配置用于基于部署的第一测试场景和第二测试场景,以及软件代码发生改变的部分占所有代码的百分比,基于预设的测试模型,生成多个预测测试结果;测试模块,配置用于在所述第一测试场景运行与所述版本标识相关联的代码,以及在所述第二测试场景中运行与先前版本标识相关联的代码,以对所述代码进行对比测试,得到多个对比测试结果,将对比测试结果与预测测试结果进行差异比对,若两者的差异在设定的阈值范围内,则将测试结果作为最终的结果,若两者的差异超过设定的阈值范围,则调整测试模块的参数,直到测试模块生成的测试结果与预测测试结果的差异在设定的阈值范围内。
采用上述技术方案,本发明具备自动识别代码改变,自动进行代码测试,以及自动校正测试结果的功能,具有智能化程度高和测试结果准确的优点。主要通过以下过程实现:1.代码改变的自动识别和测试场景的构建:本发明能够自动识别代码的改变,从而开启测试流程;自动化程度高;2.测试的自动化:本发明在测试过程中,自动进行测试,同时,测试能够真多多个方面进行,至少包括:对所述代码进行功能对比测试;对所述代码进行性能对比测试;对所述代码进行压力对比测试;3.测试结果的校正:本发明针对软件进行测试过程中,首先基于历史数据训练了一个预测模型,该预测模型能够预测软件测试的结果,得到一个预测测试结果;同时,测试模块在所述第一测试场景运行与所述版本标识相关联的代码,以及在所述第二测试场景中运行与先前版本标识相关联的代码,以对所述代码进行对比测试,得到多个对比测试结果,将对比测试结果与预测测试结果进行差异比对,若两者的差异在设定的阈值范围内,则将测试结果作为最终的结果,若两者的差异超过设定的阈值范围,则调整测试模块的参数,直到测试模块生成的测试结果与预测测试结果的差异在设定的阈值范围内;这样得到的结果更加准确。
实施例2
在上一实施例的基础上,所述测试模块包括以下多项模块中的至少一项:功能对比测试模块,被配置用于对所述代码进行功能对比测试;性能对比测试模块,被配置用于对所述代码进行性能对比测试;以及压力对比测试模块,被配置用于对所述代码进行压力对比测试。
具体的,性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对***的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下***的性能,目标是测试当负载逐渐增加时,***各项性能指标的变化情况。压力测试是通过确定一个***的瓶颈或者不能接受的性能点,来获得***能提供的最大服务级别的测试。
具体的,在软件测试中:压力测试(Stress Test),也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的***负荷,长时间或超大负荷地运行测试软件,来测试被测***的性能、可靠性、稳定性等。
具体的,功能测试,也称为behavioral testing(行为测试),根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。功能测试是为了确保程序以期望的方式运行而按功能要求对软件进行的测试,通过对一个***的所有的特性和功能都进行测试确保符合需求和规范。
实施例3
在上一实施例的基础上试模块中的功能对比测试模块、性能对比测试模块和压力对比测试模块均包括以下模块:权重计算模块、隶属度计算模块和综合分析模块;所述软件评价设定模块,配置用于设定软件性能的评价对象与评价因子集,以及设定评价因子的评价指标;所述权重计算模块,配置用于计算评价因子的权重;所述隶属度计算模块,配置用于计算评价对象对评价因子的隶属度;所述综合分析模块与权重计算模块与隶属度计算模块连接,用于根据所述权重和隶属度得到评价结果。
实施例4
在上一实施例的基础上,所述综合分析模块具体用于根据所述权重组成的模糊权重向量和所述隶属度组成的模糊评价矩阵得到模糊综合评价结果向量,并根据模糊综合评价结果向量计算综合评价得分。
实施例5
在上一实施例的基础上,所述测试模块将对比测试结果与预测测试结果进行差异比对的方法包括:采用如下公式,计算测试结果与预测测试结果的差异,即得到
得分,得分越高,差异越小:
;其中,
为测试结果,
为预测测试结果,
为测试结果的平均值,
为预测测试结果的平均值,
为测试结果和预测测试结果的个数中的较小值。
实施例6
如图2所示,具备自主学习能力的产品性能评价方法,所述方法执行以下步骤:
步骤1:监视软件的代码是否发生改变;
步骤2:当所述代码改变时,生成与所述代码相关的版本标识;
步骤3:部署第一测试场景和第二测试场景;
步骤4:基于部署的第一测试场景和第二测试场景,以及软件代码发生改变的部分占所有代码的百分比,基于预设的测试模型,生成多个预测测试结果;
步骤5:在所述第一测试场景运行与所述版本标识相关联的代码,以及在所述第二测试场景中运行与先前版本标识相关联的代码,以对所述代码进行对比测试,得到多个对比测试结果,将对比测试结果与预测测试结果进行差异比对,若两者的差异在设定的阈值范围内,则将测试结果作为最终的结果,若两者的差异超过设定的阈值范围,则调整进行对比测试的参数,直到生成的测试结果与预测测试结果的差异在设定的阈值范围内。
具体的,本发明具备自动识别代码改变,自动进行代码测试,以及自动校正测试结果的功能,具有智能化程度高和测试结果准确的优点。
实施例7
在上一实施例的基础上,所述将对比测试结果与预测测试结果进行差异比对的方法包括:采用如下公式,计算测试结果与预测测试结果的差异,即得到
得分,得分越高,差异越小:
;其中,
为测试结果,
为预测测试结果,
为测试结果的平均值,
为预测测试结果的平均值,
为测试结果和预测测试结果的个数中的较小值。
具体的,代码改变的自动识别和测试场景的构建:本发明能够自动识别代码的改变,从而开启测试流程;自动化程度高;测试的自动化:本发明在测试过程中,自动进行测试,同时,测试能够多方面进行,至少包括:对所述代码进行功能对比测试;对所述代码进行性能对比测试;对所述代码进行压力对比测试。
实施例8
在上一实施例的基础上,所述预测测试结果和测试结果至少包括以下结果中的一项:功能对比测试结果,该测试结果评价代码的功能是否出现异常;性能对比测试结果,该测试结果评价代码的性能是否满足要求;压力对比测试结果,该测试结果评价代码的稳定性是否满足要求。
实施例9
在上一实施例的基础上,步骤1在监视软件的代码是否发生改变时,还将统计软件中改变的代码占所有代码的百分比。
具体的,本发明针对软件进行测试过程中,首先基于历史数据训练了一个预测模型,该预测模型能够预测软件测试的结果,得到一个预测测试结果;同时,测试模块在所述第一测试场景运行与所述版本标识相关联的代码,以及在所述第二测试场景中运行与先前版本标识相关联的代码,以对所述代码进行对比测试,得到多个对比测试结果,将对比测试结果与预测测试结果进行差异比对,若两者的差异在设定的阈值范围内,则将测试结果作为最终的结果,若两者的差异超过设定的阈值范围,则调整测试模块的参数,直到测试模块生成的测试结果与预测测试结果的差异在设定的阈值范围内;这样得到的结果更加准确。
实施例10
在上一实施例的基础上,所述步骤4中预设的预测模型为一个神经网络模型,该模型基于历史数据进行训练后,能够对代码进行预测测试,生成预测测试结果。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,上述实施例提供的***,仅以上述各功能单元的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能单元来完成,即将本发明实施例中的单元或者步骤再分解或者组合,例如,上述实施例的单元可以合并为一个单元,也可以进一步拆分成多个子单元,以完成以上描述的全单元或者单元功能。对于本发明实施例中涉及的单元、步骤的名称,仅仅是为了区分各个单元或者步骤,不视为对本发明的不当限定。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储模块、处理模块的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的单元、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件单元、方法步骤对应的程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
术语“第一”、“另一单元分”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者单元/模块不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者单元/模块所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术标记作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。