首页> 中国专利> 软件系统测试需求评估方法及装置

软件系统测试需求评估方法及装置

摘要

本申请实施例公开了一种软件系统测试需求评估方法及装置,所述方法包括:获取构建软件系统的代码模块和开发人员;提取所述代码模块的可靠性特征值、重要性特征值,以及,所述开发人员的开发质量特征值;根据所述可靠性特征值、重要性特征值以及开发质量特征值,确定所述软件系统的测试量化值,所述测试量化值,用于量化所述软件系统无需测试的程度;如果所述测试量化值小于预设阈值,确定所述软件系统需测试,否则,确定所述软件系统无需测试;采用本申请实施例所公开的方法及装置,可确保所开发软件系统的正常运行。

著录项

  • 公开/公告号CN106649079A

    专利类型发明专利

  • 公开/公告日2017-05-10

    原文格式PDF

  • 申请/专利权人 阿里巴巴集团控股有限公司;

    申请/专利号CN201510737281.3

  • 发明设计人 柯微;

    申请日2015-11-03

  • 分类号G06F11/36;

  • 代理机构北京弘权知识产权代理事务所(普通合伙);

  • 代理人逯长明

  • 地址 开曼群岛大开曼岛

  • 入库时间 2023-06-19 02:09:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-10-25

    授权

    授权

  • 2017-06-06

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20151103

    实质审查的生效

  • 2017-05-10

    公开

    公开

说明书

技术领域

本申请涉及软件测试技术领域,特别是涉及一种软件系统测试需求评估方法及装置。

背景技术

软件开发是指根据用户需求构建软件系统的过程。通常软件系统的开发流程如下:首先由管理人员确定该软件系统的开发人员;然后由开发人员,根据用户需求,确定构建该软件系统的代码模块;最后,由开发人员对上述代码模块修改和搭建,形成软件系统。

为了保证所构建软件系统的正常运行,在软件系统上线前,一般需对软件系统进行功能性测试。但在实际应用中,由于各种原因,比如时间仓促、研发成本较高等,需综合考虑一软件系统的重要性、开发质量以及自测情况等各种因素,确定一软件系统是否需测试。

目前,通常采用两种方式,确定一软件系统是否需测试:一种是开发人员凭经验判断该软件系统是否需测试;另一种是测试人员凭经验判断该软件系统是否需测试。可见,上述两种方式,均是通过个人经验判断所开发的软件系统是否需测试;那么,如果所开发的一软件系统漏洞较大,重要性较高,而判断人员做出无需测试的决定,此时将影响该软件系统的正常运行。

申请内容

本申请实施例中提供了一种软件系统测试需求评估方法及装置,以确保所开发软件系统的正常运行。

为了解决上述技术问题,本申请实施例公开了如下技术方案:

本申请公开了一种软件系统测试需求评估方法,包括:

获取构建软件系统的代码模块和开发人员;

提取所述代码模块的可靠性特征值、重要性特征值,以及,所述开发人员的开发质量特征值;

根据所述可靠性特征值、重要性特征值以及开发质量特征值,确定所述软件系统的测试量化值,所述测试量化值,用于量化所述软件系统无需测试的程度;

如果所述测试量化值小于预设阈值,确定所述软件系统需测试,否则,确定所述软件系统无需测试。

优选的,根据所述可靠性特征值、重要性特征值以及开发质量特征值,确定所述软件系统的测试量化值,包括:

分别确定所述可靠性特征值、重要性特征值以及开发质量特征值的权重;

根据所述特征值以及相应的权重,确定所述软件系统的测试量化值。

优选的,分别确定所述可靠性特征值、重要性特征值以及开发质量特征值的权重,包括:

获取多个软件系统的估计量化值,所述估计量化值为用户估计的所述软件系统的测试量化值;

分别提取每个软件系统的可靠性特征值、重要性特征值以及开发质量特征值;

根据多个软件系统的估计量化值以及相对应的特征值,确定所述可靠性特征值、重要性特征值以及开发质量特征值的权重。

优选的,根据所述可靠性特征值、重要性特征值以及开发质量特征值,确定所述软件系统的测试量化值,包括:

将所述可靠性特征值、重要性特征值以及开发质量特征值量化为同一数据级别;

将所述特征值量化后的结果相加,且将相加之和,作为所述软件系统的测试量化值。

优选的,所述方法还包括:

判断所述软件系统的代码模块或开发人员中是否存在预警项;

如果存在预警项,确定所述软件系统需测试。

优选的,所述重要性特征值包括所述代码模块的访问量、链路依赖值以及故障等级;所述可靠性特征值包括所述代码模块的自测数据、开发测试数据以及所述代码模块的变更数据;所述开发质量特征值包括所述开发人员的历史开发故障率。

本申请还公开了一种软件系统测试需求评估装置,包括:

获取模块,用于获取构建软件系统的代码模块和开发人员;

提取模块,用于提取所述代码模块的可靠性特征值、重要性特征值,以及,所述开发人员的开发质量特征值;

确定测试量化值模块,用于根据所述可靠性特征值、重要性特征值以及开发质量特征值,确定所述软件系统的测试量化值,所述测试量化值,用于量化所述软件系统无需测试的程度;

确定需测试模块,用于当所述测试量化值小于预设阈值时,确定所述软件系统需测试;

确定无需测试模块,用于当所述测试量化值大于等于预设阈值时,确定所述软件系统无需测试。

优选的,所述确定测试量化值模块包括:

确定权重单元,用于分别确定所述可靠性特征值、重要性特征值以及开发质量特征值的权重;

确定测试量化值单元,用于根据所述特征值以及相应的权重,确定所述软件系统的测试量化值。

优选的,其特征在于,所述确定权重单元包括:

获取子单元,用于获取多个软件系统的估计量化值,所述估计量化值为用户估计的所述软件系统的测试量化值;

提取子单元,用于分别提取每个软件系统的可靠性特征值、重要性特征值以及开发质量特征值;

确定权重子单元,用于根据多个软件系统的估计量化值以及相对应的特征值,确定所述可靠性特征值、重要性特征值以及开发质量特征值的权重。

优选的,所述确定测试量化值模块,包括:

量化子单元,用于将所述可靠性特征值、重要性特征值以及开发质量特征值量化为同一数据级别;

相加子单元,用于将所述特征值量化后的结果相加,且将相加之和,作为所述软件系统的测试量化值。

优选的,所述装置还包括:

判断模块,用于判断所述软件系统的代码模块或开发人员中是否存在预警项;

需测试确定模块,用于当所述软件系统中存在预警项时,确定所述软件系统需测试。

由以上技术方案可见,在本申请实施例中,首先获取构建软件系统的代码模块和开发人员;然后,提取所述代码模块的可靠性特征值、重要性特征值,以及,所述开发人员的开发质量特征值;再然后,根据所述可靠性特征值、重要性特征值以及开发质量特征值,确定所述软件系统的测试量化值,所述测试量化值,用于量化所述软件系统无需测试的程度,且所述测试量化值越大,代表所述软件系统越无需测试;最后,根据所述测试量化值与预设阈值的大小关系,确定该软件系统是否需测试。由上可见,采用本申请实施例所提供的方法及装置,可避免由于判断人员的经验不足,做出无需测试的误判,从而保证所开发软件系统的正常运行。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所公开的软件系统测试需求评估方法的一流程示意图;

图2为本申请实施例所公开的软件系统测试需求评估方法的另一流程示意图;

图3为本申请实施例所公开的软件系统测试需求评估方法的又一流程示意图;

图4为本申请实施例所公开的软件系统测试需求评估方法的另一流程示意图;

图5为本申请实施例所公开的软件系统测试需求评估方法的又一流程示意图;

图6为本申请实施例所公开的软件系统测试需求评估装置的一模块示意图;

图7为本申请实施例所公开的软件系统测试需求评估装置的另一模块示意图;

图8为本申请实施例所公开的软件系统测试需求评估装置的又一模块示意图;

图9为本申请实施例所公开的软件系统测试需求评估装置的另一模块示意图;

图10为本申请实施例所公开的软件系统测试需求评估装置的又一模块示意图。

具体实施方式

本申请提供一种软件系统测试需求评估方法及装置,以确保所开发软件系统的正常运行。

首先对本申请实施例所提供的软件系统测试需求评估方法进行说明,如图1所示,所述方法至少包括:

步骤S11:获取构建软件系统的代码模块和开发人员;

在本申请实施例中,所述软件系统可为一个完整的软件系统,也可为一软件系统中的部分应用。

步骤S12:提取所述代码模块的可靠性特征值、重要性特征值,以及,所述开发人员的开发质量特征值;

在本申请实施例中,可具体在所述代码模块相关联的可靠性系统以及重要性系统,分别提取所述代码模块的可靠性特征值以及重要性特征值;可在开发质量系统,提取所述开发人员的开发质量特征值。

在本申请实施例中,所述重要性特征值可包括所述代码模块的访问量、链路依赖值以及故障等级等特征值;所述代码模块的访问量可为所述代码模块的每小时/每天/每周的访问量;所述链路依赖值可为所述代码模块相关联链路的数量;所述故障等级特征值可为所述代码模块允许出现故障的等级。

在本申请实施例中,所述可靠性特征值可包括所述代码模块的自测数据、开发测试数据以及所述代码模块的变更数据等特征值;所述代码模块的自测数据可为所述代码模块的程序代码中可实现自动测试的行数;开发测试数据可为开发人员所测试代码模块中程序代码的行数;变更数据可为开发人员修改代码模块的程序代码的行数。

在本申请实施例中,所述开发质量特征值可包括所述开发人员的历史开发故障率;所述历史开发故障率可为所述开发人员在预设时间段时所开发软件系统的线上故障率与线下故障率的平均值。

步骤S13:根据所述可靠性特征值、重要性特征值以及开发质量特征值,确定所述软件系统的测试量化值,所述测试量化值,用于量化所述软件系统无需测试的程度;

步骤S14:判断所述测试量化值是否小于预设阈值,如果是,执行步骤S15;否则,执行步骤S16;

在本申请实施例中,所述测试量化值用于量化所述软件系统无需测试的程度,该测试量化值越大,可代表该软件系统越无需进行测试,因此,可当一软件系统的测试量化值小于预设阈值时,判定该软件系统需测试。而关于预设阈值的大小,可由本领域技术人员,根据经验自行设置。

步骤S15:确定所述软件系统需测试;

步骤S16:确定所述软件系统无需测试。

由上可见,在本申请实施例中,首先获取构建软件系统的代码模块和开发人员;然后,提取所述代码模块的可靠性特征值、重要性特征值,以及,所述开发人员的开发质量特征值;再然后,根据所述可靠性特征值、重要性特征值以及开发质量特征值,确定所述软件系统的测试量化值,所述测试量化值,用于量化所述软件系统无需测试的程度,且所述测试量化值越大,代表所述软件系统越无需测试;最后,根据所述测试量化值与预设阈值的大小关系,确定该软件系统是否需测试。由上可见,采用本申请实施例所提供的方法,可避免由于判断人员的经验不足,做出无需测试的误判,从而保证所开发软件系统的正常运行。

在本申请的又一可行实施例中,如图2所示,上述所有实施例中的步骤S13可包括:

步骤S21:分别确定所述可靠性特征值、重要性特征值以及开发质量特征值的权重;

在本申请实施例中,可靠性特征值、重要性特征值以及开发质量特征值的权重,可为正数,也可为负数。

步骤S22:根据所述特征值以及相应的权重,确定所述软件系统的测试量化值。

在本申请实施例中,假设一软件系统由代码模块A与代码模块B构建,由开发人员C与开发人员D共同开发。

同时,假设所提取的代码模块A的可靠性特征值为10、重要性特征值为20;提取的代码模块B的可靠性特征值为20、重要性特征值为10;而提取的开发人员C的开发质量特征值为50,提取的开发人员D的开发质量特征值为100;而步骤S41中所确定的可靠性特征值的权重为0.3,重要性特征值的权重为-0.2,开发质量特征值的权重为0.5;那么可利用下述公式计算所述软件系统的测试量化值;

软件系统的测试量化值=代码模块A的测试量化值+代码模块B的测试量化值+开发人员C的测试量化值+开发人员D的测试量化值=(代码模块A的可靠性特征值*权重+代码模块A的重要性特征值*权重)+(代码模块B的可靠性特征值*权重+代码模块B的重要性特征值*权重)+(开发人员C的开发质量特征值*权重)+(开发人员D的开发质量特征值*权重)=(10*0.3+20*-0.2)+(20*0.3+10*-0.2)+(50*0.5)+(100*0.5)=74。

由上可见,采用本申请实施例所公开的方法,可确定一软件系统的测试量化值。

在本申请的另一可行实施例中,如图3所示,上述所有实施例中的步骤S21可包括:

步骤S31:获取多个软件系统的估计量化值,所述估计量化值为用户估计的所述软件系统的测试量化值;

在本申请实施例中,所述估计量化值可为本领域技术人员,综合考虑软件系统的各种因素,估算出的软件系统的测试量化值。

步骤S32:分别提取每个软件系统的可靠性特征值、重要性特征值以及开发质量特征值;

步骤S33:根据多个软件系统的估计量化值以及相对应的特征值,确定所述可靠性特征值、重要性特征值以及开发质量特征值的权重。

在本申请的上述实施例中,已公开,所述测试量化值=可靠性特征值*权重+重要性特征值*权重+开发质量特征值*权重。因此,在本申请实施例中,可利用所述测试量化值的计算公式,建立三个以可靠性特征值权重、重要性特征值权重和开发质量特征值的权重为未知数的,以估计量化值、可靠性特征值、重要性特征值和开发质量特征值为已知数的三元三次方程,通过求解,即可获取上述特征值的权重。

当然,在实际应用中,可利用现有技术中已公开的RX随机分离算法,求解上述特征值的权重。

由上可见,在本申请实施例中,可分别确定可靠性特征值、重要性特征值以及开发质量特征值的权重。

在本申请的又一可行实施例中,如图4所示,上述所有实施例中的步骤S21可包括:

步骤S41:将所述可靠性特征值、重要性特征值以及开发质量特征值量化为同一数据级别;

在实际应用中,由于可靠性特征值、重要性特征值以及开发质量特征值经常位于不同的数据级别,比如可靠性特征值可能为一代码模块的访问量,可能为千位级别,而重要性特征值可能为一代码模块变更的程序代码的行数,可能为个位级别,因此,为了在测试量化值中统一体现可靠性特征值、重要性特征值以及开发质量特征值的作用,需将上述特征值量化为同一数据级别。在本申请实施例中,可将上述特征值均量化为个位级别。

步骤S42:将所述特征值量化后的结果相加,且将相加之和,作为所述软件系统的测试量化值。

由上可见,在本申请实施例中,可确定一软件系统的测试量化值。

在本申请的另一可行实施例中,如图5所示,上述所有实施例中的方法,还可包括:

步骤S51:判断所述软件系统的代码模块或开发人员中是否存在预警项;如果存在,执行步骤S52;否则,结束流程。

在本申请实施例中,预警项可为对软件系统的正常运行或开发质量,存在严重影响的项目。在本申请实施例中,所述预警项可具体为入职3个月的新员工等项目。

步骤S52:确定所述软件系统需测试。

由上可见,本申请实施例中,可当一软件系统中存在预警项时,确定该软件系统需测试,从而保证所开发软件系统的正常运行。

通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

与本申请提供的软件系统测试需求评估方法实施例相对应,本申请还提供了一种软件系统测试需求评估装置,如图6所示,至少包括:

获取模块61,用于获取构建软件系统的代码模块和开发人员;

提取模块62,用于提取所述代码模块的可靠性特征值、重要性特征值,以及,所述开发人员的开发质量特征值;

确定测试量化值模块63,用于根据所述可靠性特征值、重要性特征值以及开发质量特征值,确定所述软件系统的测试量化值,所述测试量化值,用于量化所述软件系统无需测试的程度;

确定需测试模块64,用于当所述测试量化值小于预设阈值时,确定所述软件系统需测试;

确定无需测试模块65,用于当所述测试量化值大于等于预设阈值时,确定所述软件系统无需测试。

由上可见,在本申请实施例中,获取模块61用于,获取构建软件系统的代码模块和开发人员;提取模块62,用于提取所述代码模块的可靠性特征值、重要性特征值,以及,所述开发人员的开发质量特征值;确定测试量化值模块63用于,根据所述可靠性特征值、重要性特征值以及开发质量特征值,确定所述软件系统的测试量化值,所述测试量化值,用于量化所述软件系统无需测试的程度;确定需测试模块64,用于当所述测试量化值小于预设阈值时,确定所述软件系统需测试;确定无需测试模块65,用于当所述测试量化值大于等于预设阈值时,,确定所述软件系统无需测试。由上可见,采用本申请实施例所公开的方法,可避免由于判断人员的经验不足,做出无需测试的误判,从而保证所开发软件系统的正常运行。

在本申请的另一可行实施例中,如图7所示,上述所有实施例中的确定测试量化值模块63可包括:

确定权重单元71,用于分别确定所述可靠性特征值、重要性特征值以及开发质量特征值的权重;

确定测试量化值单元72,用于根据所述特征值以及相应的权重,确定所述软件系统的测试量化值。

由上可见,采用本申请实施例所公开的方法,可确定一软件系统的测试量化值。

在本申请的又一可行实施例中,如图8所示,上述所有实施例中的确定权重单元71可包括:

获取子单元81,用于获取多个软件系统的估计量化值,所述估计量化值为用户估计的所述软件系统的测试量化值;

提取子单元82,用于分别提取每个软件系统的可靠性特征值、重要性特征值以及开发质量特征值;

确定权重子单元83,用于根据多个软件系统的估计量化值以及相对应的特征值,确定所述可靠性特征值、重要性特征值以及开发质量特征值的权重。

由上可见,在本申请实施例中,可确定上述多个个特征值的权重。

在本申请的另一可行实施例中,如图9所示,上述所有实施例中的确定测试量化值模块63,可包括:

量化子单元91,用于将所述可靠性特征值、重要性特征值以及开发质量特征值量化为同一数据级别;

相加子单元92,用于将所述特征值量化后的结果相加,且将相加之和,作为所述软件系统的测试量化值。

由上可见,在本申请实施例中,亦可确定一软件系统的测试量化值。

在本申请的又一可行实施例中,如图10所示,上述所有实施例中的装置还可包括:

判断模块101,用于判断所述软件系统的代码模块或开发人员中是否存在预警项;

需测试确定模块102,用于当所述软件系统中存在预警项时,确定所述软件系统需测试。

由上可见,在本申请实施例中,可根据一软件系统中的预警项,确定一软件系统是否需测试。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号