掌桥专利:专业的专利平台
掌桥专利
首页

用于生成测试计划的设备和方法

文献发布时间:2024-04-18 19:59:31


用于生成测试计划的设备和方法

技术领域

本领域总体上涉及信息处理,并且更具体地涉及信息处理系统的管理。

背景技术

软件开发过程通常包括多种环境,诸如一种或多种开发环境、集成测试环境、模拟环境和生产环境。新的软件代码可以由各个开发人员或开发人员小组在开发环境中的相应开发环境中创建。集成环境提供了通用环境,其中来自多个开发人员的软件代码在提供给模拟环境之前进行组合和测试。模拟环境被设计为模拟生产环境,并且可以用于在生产环境中的生产应用中部署新软件代码之前进行最终审查和批准。

发明内容

本公开的说明性实施方案提供用于生成包括测试用例的执行顺序和测试用例到测试台池的映射的测试计划的技术。

在一个实施方案中,一种设备包括至少一个处理装置,所述至少一个处理装置包括处理器,所述处理器耦合到存储器。所述至少一个处理装置被配置为执行以下步骤:标识多个测试用例和所述多个测试用例被配置为在其上运行的多个测试台,所述多个测试台包括信息技术基础设施的信息技术资产;以及创建多个测试台池,其中所述多个测试台池中的每一者与所述多个测试用例中的一者相关联并且包括所述多个测试台中的至少一者,并且其中所述多个测试台池中与所述多个测试用例中的一个给定测试用例相关联的一个给定测试台池包括所述多个测试台中具有与所述给定测试用例的一个或多个测试台规范匹配的测试台配置的至少一个子集。所述至少一个处理装置还被配置为执行以下步骤:确定所述多个测试用例中的每一者的优先级水平,其中所述给定测试用例的给定优先级水平是至少部分地基于所述给定测试用例的一个或多个测试用例属性规范确定的;以及确定所述多个测试台中的每一者的依赖度,其中所述多个测试台中的一个给定测试台的给定依赖度是至少部分地基于所述给定测试台是其部分的所述多个测试台池的数量确定的。所述至少一个处理装置还被配置为执行以下步骤:生成用于测试给定产品的测试计划,所述测试计划包括所述多个测试用例的测试用例执行顺序和所述多个测试用例到所述多个测试台的映射,其中所述测试用例执行顺序是至少部分地基于所述多个测试用例的所述优先级水平来确定的,并且其中所述多个测试用例到所述多个测试台的所述映射是至少部分地基于所述多个测试台的所述依赖度确定的。所述至少一个处理装置还被配置为执行执行用于测试给定产品的测试计划的步骤。

这些和其他说明性实施方案包括但不限于方法、设备、网络、系统和处理器可读存储介质。

附图说明

图1是说明性实施方案中的信息处理系统的框图,所述信息处理系统被配置用于生成包括测试用例的执行顺序和测试用例到测试台池的映射的测试计划。

图2是说明性实施方案中的用于生成包括测试用例的执行顺序和测试用例到测试台池的映射的测试计划的示例性过程的流程图。

图3示出了说明性实施方案中的用于存储系统测试计划的测试执行统计表。

图4示出了说明性实施方案中的测试用例到测试台的映射。

图5示出了说明性实施方案中的测试用例到测试台池的映射。

图6示出了说明性实施方案中的用于创建测试台池的过程流。

图7示出了说明性实施方案中的用于将测试用例映射到测试台池的测试台标签和测试用例属性标签。

图8示出了说明性实施方案中的用于生成测试执行计划的过程流。

图9示出了说明性实施方案中的使用图8的过程流生成的测试执行映射图。

图10示出了说明性实施方案中的用于生成和执行测试计划的过程流。

图11示出了说明性实施方案中的用于计算测试用例属性标签的权重的层次分析法架构。

图12示出了说明性实施方案中的用于在测试生命周期期间测试用例属性标签的权重更新趋势的曲线图。

图13示出了说明性实施方案中的用于使用测试用例优先级和测试台依赖度特征生成的测试用例的测试执行表。

图14示出了说明性实施方案中的用于映射到测试台的测试用例集合的测试用例执行顺序。

图15和图16示出了说明性实施方案中的可以用于实现信息处理系统的至少一部分的处理平台的示例。

具体实施方式

本文将参考示例性信息处理系统以及相关联的计算机、服务器、存储装置和其他处理装置来描述说明性实施方案。然而,应当理解,实施方案不限于与所示的特定说明性系统和装置配置一起使用。因此,如本文所使用的术语“信息处理系统”意图广泛地被解释为涵盖例如包括云计算和存储系统的处理系统,以及包括物理和虚拟处理资源的各种组合的其他类型的处理系统。因此,信息处理系统可以包括例如至少一个数据中心或其他类型的基于云的系统,其包括托管访问云资源的租户的一个或多个云。

图1示出了根据说明性实施方案配置的信息处理系统100。信息处理系统100被假设建立在至少一个处理平台上并提供用于为信息技术(IT)资产的测试生成测试计划的功能性。信息处理系统100包括耦合到网络104的一组客户端装置102-1、102-2、...、...102-M(统称为客户端装置102)。IT基础设施105也耦合到网络104,所述IT基础设施包括一个或多个IT资产106、测试数据库108和测试计划设计系统110。IT资产106可以包括IT基础设施105中的物理和/或虚拟计算资源。物理计算资源可以包括物理硬件,诸如服务器、存储系统、联网装备、物联网(IoT)装置、其他类型的处理和计算装置,其包括台式计算机、膝上型计算机、平板计算机、智能手机等。虚拟计算资源可以包括虚拟机(VM)、容器等。

IT基础设施105的IT资产106可以诸如根据客户端-服务器计算机程序架构托管由客户端装置102中的相应客户端装置利用的应用程序。在一些实施方案中,应用程序包括被设计用于通过网络104从IT基础设施105中的资产向用户(例如,客户端装置102的用户)输送的网络应用程序。各种其他示例是可能的,诸如其中一个或多个应用程序在IT基础设施105内部使用并且不暴露给客户端装置102。应当理解,在一些实施方案中,IT基础设施105的一些IT资产106本身可以被视为应用程序或更一般地要测试的软件或硬件。例如,作为被实现为软件容器的虚拟计算资源的IT资产106中的IT资产可以表示要测试的软件。作为另一个示例,作为物理计算资源的IT资产106中的IT资产可以表示要测试的硬件装置。

测试计划设计系统110利用存储在测试数据库108中的各种信息来设计用于测试IT资产106、应用程序或在IT资产106上运行的其他软件的测试计划等。在一些实施方案中,测试计划设计系统110用于企业系统。例如,企业可以订阅或以其他方式利用测试计划设计系统110以生成和运行测试计划(例如,在IT基础设施105的IT资产106上、在由企业的用户操作的客户端装置102上等运行)。如本文所使用,术语“企业系统”意图被广义地解释为包括任何组的系统或其他计算装置。例如,IT基础设施105的IT资产106可以提供一个或多个企业系统的一部分。给定的企业系统还可以或替代地包括客户端装置102中的一者或多者。在一些实施方案中,企业系统包括一个或多个数据中心、包括一个或多个云的云基础设施等。诸如云基础设施的给定企业系统可以托管与多个企业(例如,两个或更多个不同的商家、组织或其他实体)相关联的资产。

客户端装置102可以任意组合的形式包括例如物理计算装置,诸如IoT装置、移动电话、膝上型计算机、平板计算机、台式计算机或企业成员利用的其他类型的装置。此类装置是在本文中更一般地称为“处理装置”的示例。这些处理装置中的一些处理装置在本文中还一般地称为“计算机”。客户端装置102还或替代地包括虚拟计算资源,诸如VM、容器等。

在一些实施方案中,客户端装置102包括与特定公司、组织或其他企业相关联的各个计算机。因此,客户端装置102可以被认为是企业系统的资产的示例。另外,信息处理系统100的至少各部分在本文中还可以称为共同地构成一个或多个“企业”。涉及广泛多种不同类型和布置的处理节点的许多其他操作场景是可能的,如本领域技术人员将理解。

网络104被假设为包括诸如互联网的全球计算机网络,但是其他类型的网络可以是网络104的一部分,包括广域网(WAN)、局域网(LAN)、卫星网络、电话或有线网络、蜂窝网络、无线网络(诸如WiFi或WiMAX网络),或这些和其他类型网络的各个部分或组合。

如上文所讨论的,测试数据库108被配置为存储和记录由测试计划设计系统110在设计用于测试IT资产106、应用程序或在IT资产106上运行的其他软件的测试计划时使用的各种信息。此类信息可以包括但不限于关于不同测试用例的测试台要求的信息(例如,测试台要求表示硬件、软件和配置要求或可能运行测试用例的位置的其他限制)、关于不同测试用例的测试用例属性的信息(例如,表示可以用于确定不同测试用例之间的优先级排序的因素或标准)等。在一些实施方案中,测试数据库108是使用与测试计划设计系统110相关联的一个或多个存储系统或装置实现的。在一些实施方案中,用于实现测试数据库108的存储系统中的一者或多者包括横向扩展全闪存内容可寻址存储阵列或其他类型的存储阵列。

因此,如本文所使用的术语“存储系统”意图被广义地解释为并且不应被视为限于内容可寻址存储系统或基于闪存的存储系统。作为本文广泛使用的术语的给定存储系统可以包括例如网络附接存储(NAS)、存储区域网络(SAN)、直接附接存储(DAS)和分布式DAS,以及这些和其他存储类型的组合(包括软件定义的存储)。

可以在说明性实施方案中用于实现存储系统的其他特定类型的存储产品包括全闪存和混合闪存存储阵列、软件定义的存储产品、云存储产品、基于对象的存储产品以及横向扩展NAS集群。在说明性实施方案中,这些和其他存储产品中的多个存储产品的组合也可以用于实现给定存储系统。

尽管在图1中未明确示出,但是诸如键盘、显示器或其他类型的输入输出装置的一个或多个输入输出装置可以用于支持测试计划设计系统110的一个或多个用户界面,以及支持测试计划设计系统110与未明确示出的其他相关系统和装置之间的通信。

客户端装置102被配置为访问或以其他方式利用IT基础设施105。在一些实施方案中,客户端装置102被假设为与系统管理员、IT经理或负责管理IT基础设施105的IT资产106的其他授权人员相关联(例如,其中此类管理包括对IT资产106或对在IT资产106上运行的应用程序或其他软件执行测试)。例如,客户端装置102中的一个给定客户端装置可以由用户操作以访问由测试计划设计系统110提供的图形用户界面(GUI)以管理测试计划(例如,创建、审查、执行等)。测试计划设计系统110可以作为可由给定的客户端装置102访问以允许其用户管理测试计划的云服务提供。在一些实施方案中,IT基础设施105的IT资产106由操作测试计划设计系统110的同一企业拥有或操作(例如,其中诸如商家的企业为其操作的资产提供支持)。在其他实施方案中,IT基础设施105的IT资产106可以由与操作测试计划设计系统110的企业不同的一个或多个企业拥有或操作(例如,第一企业为由多个不同的客户、商家等拥有的资产提供支持)。各种其他示例是可能的。

在其他实施方案中,作为提供对IT基础设施105的IT资产106的支持的替代或补充,测试计划设计系统110可以提供对客户端装置102的测试的支持。例如,测试计划设计系统110可以由制造和销售计算装置(例如,台式计算机、膝上型计算机、平板计算机、智能手机等)的硬件供应商操作,并且客户端装置102表示由该硬件供应商销售的计算装置。测试计划设计系统110还可以或替代地由生产和销售在客户端装置102上运行的软件(例如,应用程序)的软件供应商操作。然而,测试计划设计系统110不需要由任何单个硬件或软件供应商操作。相反,测试计划设计系统110可以作为服务来提供,以对由任何数量的硬件或软件供应商销售的计算装置或软件提供支持。客户端装置102可以订阅测试计划设计系统110,以便为测试客户端装置102或在其上运行的软件、为测试将被部署为IT资产106和/或客户端装置102的硬件或软件产品等提供支持。各种其他示例是可能的。

在一些实施方案中,客户端装置102可以实现主机代理,所述主机代理被配置用于自动传输关于测试用例、测试台和测试用例执行的信息(例如,如下文进一步详细讨论的测试台标签和测试用例属性标签、测试用例尝试的结果等,它们被定期提供给测试数据库108和/或测试计划设计系统110)。此类主机代理还可以或替代地被配置为从测试计划设计系统110自动地接收命令以执行远程动作(例如,在客户端装置102和/或IT基础设施105的IT资产106上运行各种测试计划或其部分,诸如在托管在客户端装置102和/或IT基础设施105的IT资产106上的特定测试台上尝试测试用例的指令)。主机代理可以类似地部署在IT基础设施105的IT资产106上。

应当注意,本文通常使用的术语“主机代理”可以包括自动化实体,诸如在处理装置上运行的软件实体。因此,主机代理不必是人类实体。

图1的实施方案中的测试计划设计系统110被假设使用至少一个处理装置来实现。每个此类处理装置通常包括至少一个处理器和相关联的存储器,并且实现用于控制测试计划设计系统110的某些特征的一个或多个功能模块或逻辑。在图1的实施方案中,测试计划设计系统110包括测试计划生成逻辑112和测试计划执行逻辑114。测试计划生成逻辑112被配置为(例如,使用指定硬件、软件和配置要求的测试台标签以及关于不同测试用例能够在哪些测试台上运行的其他限制)为不同的测试用例创建测试台池,并确定测试用例与测试台池之间的映射。测试计划生成逻辑112还被配置为确定测试用例的排序和优先级排序,其中考虑此类优先级排序以将测试用例分配给测试用例的相关联的测试台池中的特定测试台。测试计划执行逻辑114被配置为执行使用测试计划生成逻辑112生成的测试计划(例如,在IT基础设施105的IT资产106中的一者或多者上、在客户端装置102上、提供可以在其上执行测试用例的测试台的它们的组合等)。

应当理解,图1的实施方案中所示的客户端装置102、IT基础设施105和测试计划设计系统110的特定布置仅以示例方式呈现,并且在其他实施方案中可以使用替代布置。如上文所讨论,例如,测试计划设计系统110(或其部件的各部分,诸如测试计划生成逻辑112和测试计划执行逻辑114中的一者或多者)可以在一些实施方案在客户端装置102和/或IT基础设施105中的一者或多者内部实现。

测试计划生成逻辑112和测试计划执行逻辑114的至少各部分可以至少部分地以存储在存储器中并由处理器执行的软件的形式来实现。

如将在下文进一步详细描述的,测试计划设计系统110和信息处理系统100的其他部分可以是云基础设施的一部分。

假设使用包括一个或多个处理装置的至少一个处理平台来实现测试计划设计系统110和图1的实施方案中的信息处理系统100的其他部件,每个处理装置具有耦合到存储器的处理器。此类处理装置可以说明性地包括计算、存储和网络资源的特定布置。

尽管可以在相应的不同处理平台上实现客户端装置102、IT基础设施105、测试数据库108和测试计划设计系统110或其部件(例如,测试计划生成逻辑112和测试计划执行逻辑114),但是许多其他布置是可能的。例如,在一些实施方案中,在同一处理平台上实现测试计划设计系统110的至少部分和客户端装置102、IT基础设施105和/或测试数据库108中的一者或多者。因此,可以至少部分地在实现测试计划设计系统110的至少一部分的至少一个处理平台内实现给定的客户端装置(例如,102-1)。

如本文所使用的术语“处理平台”意图被广义地解释,以便包括例如但不限于被配置为通过一种或多种网络进行通信的多组处理装置和相关联的存储系统。例如,信息处理系统100的分布式实现方式是可能的,其中系统的某些部件驻留在处于第一地理位置的一个数据中心中,而系统的其他部件驻留在处于可能远离第一地理位置的一个或多个其他地理位置的一个或多个其他数据中心中。因此,在信息处理系统100的一些实现方式中,客户端装置102、IT基础设施105、IT资产106、测试数据库108和测试计划设计系统110或其部分或部件可能驻留在不同的数据中心中。许多其他分布式实现方式是可能的。测试计划设计系统110也可以跨多个数据中心以分布式方式实现。

下面将结合图15和图16更详细地描述说明性实施方案中的用于实现测试计划设计系统110和信息处理系统100的其他部件的处理平台的附加示例。

应当理解,仅通过示例呈现说明性实施方案的这些和其他特征,并且不应以任何方式将其解释为限制性的。

应当理解,图1中示出的用于生成包括测试用例的执行顺序和测试用例到测试台池的映射的测试计划的特定元件集合仅通过说明性示例呈现,并且在其他实施方案中,可以使用附加的或替代的元件。因此,另一个实施方案可以包括附加的或替代系统、装置和其他网络实体,以及模块和其他部件的不同布置。

应当理解,仅通过示例呈现说明性实施方案的这些和其他特征,并且不应以任何方式将其解释为限制性的。

现在将参考图2的流程图更详细地描述用于生成包括测试用例的执行顺序和测试用例到测试台池的映射的测试计划的示例性过程。应当理解,该特定过程仅是示例,并且可以在其他实施方案中使用用于生成包括测试用例的执行顺序和测试用例到测试台池的映射的测试计划的附加或替代过程。

在该实施方案中,所述过程包括步骤200至210。这些步骤被假设为通过测试计划设计系统110利用测试计划生成逻辑112和测试计划执行逻辑114来执行。所述过程开始于步骤200:标识多个测试用例和多个测试用例被配置为在其上运行的多个测试台,所述多个测试台包括IT基础设施的IT资产。

在步骤202中创建了多个测试台池。多个测试台池中的每一者与多个测试用例中的一者相关联并且包括多个测试台中的至少一者。多个测试台池中与多个测试用例中的一个给定测试用例相关联的一个给定测试台池包括多个测试台中具有与给定测试用例的一个或多个测试台规范匹配的测试台配置的至少一个子集。用于多个测试台中的一个给定测试台的给定测试台配置包括IT基础设施的IT资产中的所述给定测试台在其上运行的一个给定IT资产的硬件和软件配置中的至少一者。给定测试用例的一个或多个测试台规范可以包括一个或多个硬件配置要求和一个或多个软件配置要求中的至少一者。

在步骤204中,确定多个测试用例中的每一者的优先级水平。给定测试用例的给定优先级水平是至少部分地基于给定测试用例的一个或多个测试用例属性规范确定的。给定测试用例的一个或多个测试用例属性规范可以指定在给定测试用例期间执行的测试类型。测试类型可以包括回归测试、新特征覆盖测试和基准测试中的至少一者。给定测试用例的一个或多个测试用例属性规范还可以或替代地指定先前尝试执行给定测试用例的一个或多个结果。先前尝试执行给定测试用例的一个或多个结果可以指示以下各项中的至少一者:在先前尝试执行给定测试用例期间,给定测试用例是否已经通过;以及在先前尝试执行给定测试用例期间遇到的错误。

给定测试用例的给定优先级水平可以被确定为被分配给一个或多个测试用例属性规范的权重的加权平均值。给定优先级水平可以利用基于时间的层次分析法来确定,所述层次分析法考虑测试计划的测试生命周期的多个测试阶段中的一个当前测试阶段。被分配给一个或多个测试用例属性标签规范的权重值可以在测试计划的测试生命周期的多个测试阶段中的不同阶段处被动态地更新。基于时间的层次分析法可以利用动态判断矩阵,并且可以通过确定动态判断矩阵的每个行向量的几何均值并将一个或多个测试用例属性规范的权重值标准化来计算加权平均值。

图2的过程继续到步骤206:确定多个测试台中的每一者的依赖度。多个测试台中的一个给定测试台的给定依赖度是至少部分地基于给定测试台是其一部分的多个测试台池的数量确定的。在步骤208中生成用于测试给定产品的测试计划。给定产品可以包括被配置为在IT基础设施的IT资产上运行的软件。测试计划包括用于多个测试用例的测试用例执行顺序和多个测试用例到多个测试台的映射。至少部分地基于多个测试用例的优先级水平来确定测试用例执行顺序。至少部分地基于多个测试台的依赖度来确定多个测试用例到多个测试台的映射。步骤208可以包括利用Z分数标准化算法对优先级水平和依赖度进行标准化。步骤208还可以包括利用线性规划数学模型,所述线性规划数学模型包括目标函数,所述目标函数包括标准化的优先级水平和依赖度的加权和。在步骤210中,执行用于测试给定产品的测试计划。

测试执行在产品开发和发布中扮演着重要的角色,其中被测试产品可以包括IT资产,诸如物理和虚拟计算资源、固件、软件等。随着产品的新特征的不断增加,所需测试用例的数量也增加。在组织内,项目管理团队可以制定测试计划,并且尤其是对于可能影响产品是否按时发布的重要或高优先级测试用例,期望测试计划中的所有测试用例可以或将被按时执行或至少按时进行尝试(例如,在产品发布之前)。然而,从测试执行经验来看,并非测试计划中的所有测试用例都能够按时执行。测试计划中的测试用例无法按时执行的原因有很多,包括但不限于阻塞问题和环境问题。

阻塞问题通常在测试生命周期开始时遇到,因为在产品开发的早期阶段中执行的测试用例可能产生关键的产品问题,所述产品问题在产品开发的后期阶段中阻塞或阻止其他测试用例的执行。在整个测试生命周期中可能会遇到环境问题。作为一个示例,考虑存储系统测试,其中给定测试用例可以在给定测试台上执行,所述给定测试台包括一个或多个存储产品(例如,硬件和/或软件存储IT资产)和相关联的网络配置。在给定测试台上可能会出现各种环境问题,诸如存储产品或网络接口重新配置、主机宕机、主机重启时服务宕机、IO工具升级等。测试工程师可以在整个测试生命周期中不时地解决此类环境问题,但是这可能占用大量的测试执行时间,这可能阻止按时尝试测试计划中的一些测试用例。图3示出了包括多个测试周期的存储系统测试计划的测试执行统计表300。如表300所示,没有一个测试周期能够尝试所有测试用例。

从项目管理的角度来看,测试目标包括:将测试用例在给定时间段内的执行率最大化;以及尽可能早地完成具有较高重要性或优先级的测试用例。说明性实施方案提供了用于实现智能测试执行过程优化的技术解决方案。在一些实施方案中,利用层次分析法(AHP)和线性规划算法从多个阶段改进测试执行以满足将测试用例在给定时间段内的执行率最大化(或至少增加或改进)的目标,并且尽可能早地完成具有较高重要性或优先级的测试用例。

在产品开发过程中,项目管理团队可以在测试计划中手动布置测试用例的执行,然后根据项目进度对测试计划中的测试用例的调度进行一些临时调整。测试执行团队将相应地运行测试。然而,此类方法在面临可能影响测试用例尝试率的阻塞问题时并不智能,并且缺乏对测试执行排序和处理的优化。本文所描述的技术方案提供了智能测试执行过程优化方法,其可以从多个层面改进产品开发期间的测试执行,所述多个层面包括:通过为测试用例创建测试台池来提高测试用例尝试率;以及对重要的测试用例进行优先级排序使得尽可能早地执行它们。在一些实施方案中,利用AHP来动态地更新测试用例优先级连同项目进度,并且利用线性规划来生成测试计划中的测试用例执行排序。

在产品开发过程期间,在每个开发阶段需要运行多个测试用例。通常一个测试用例预约一个测试台,并且在尝试测试用例后,该测试用例发布该测试台(例如,这可能导致测试用例通过或失败)。图4示出了测试用例401到测试台405的映射,其中通常有m个测试用例tc

说明性实施方案提供了用于智能测试执行过程优化的技术解决方案。为此,一些实施方案能够细化图4所示的测试用例401与测试台405之间的简单映射关系并在以下两个层面改进测试用例执行:(1)通过创建测试台池;以及(2)通过智能测试执行过程优化机制。对于第一层面,创建测试台池,并且将测试用例映射到测试台池。图5示出了测试用例501与测试台池503之间的映射,其中假设测试台池503中的每一者包括测试台505中的至少一者(并且假设大多数测试台池503包括测试台505中的多个测试台)。应当注意,尽管图5示出了测试台池503中的每一者包括多个测试台505的示例,但是这不是必需的。在一些情况下,测试台池可能仅包括单个测试台。而且,如图5所示,测试台池503之间可能存在重叠。在图5的示例中,存在被表示为tc

测试台池503的创建可以节省大量资源,并且实现效率高。在实践中,通常没有或很少有测试用例只能在一个特定的测试台上运行。换句话说,对于任何给定测试用例,通常存在可以在其上尝试给定测试用例的多个不同测试平台。在设计测试用例时,可以为可以在其上尝试测试用例的测试台指定测试台要求(例如,多个硬件、软件和配置要求或其他限制)。例如,给定测试用例可能需要在目标存储产品上安装32G光纤通道(FC)。因此,如果给定测试台安装了32G FC,则给定测试台与给定测试用例的测试台要求匹配,并且可以被添加到给定测试用例的测试台池。应当理解,测试用例可能具有多个测试台要求(例如,多个硬件、软件和配置要求或其他限制)。

图6示出了用于创建测试台池的过程流600。在步骤601中,设计测试用例,并且标记测试用例的测试台要求(例如,硬件、软件和配置要求或其他限制)。在步骤603中,对测试用例的测试台池进行初始化。在步骤605中选择候选测试台。在步骤607中,确定在步骤605中选择的候选测试台是否与测试用例的标签(例如,测试台要求)匹配。如果步骤607的确定结果为否,则过程流600返回到步骤605以选择另一个候选测试台。如果步骤607的确定结果为是,则在步骤609将候选测试台添加到测试用例的测试台池。在步骤611中,确定是否有附加的候选测试台要检查。如果步骤611的确定结果为是,则过程流600返回到步骤605。如果步骤611的确定结果为否,则过程流600在步骤613中结束。在一些实施方案中,步骤611确定可以包括确定用于测试用例的测试台池是否已经包括至少阈值数量的测试台。如果是,即使有附加的候选测试台要检查,过程流600也可以在步骤613结束。可以根据需要对附加的测试用例重复过程流600。在一些实施方案中,针对每个测试用例执行过程流600。在其他实施方案中,仅针对一些测试用例(例如,具有一些阈值重要性或优先级的测试用例、具有测试台要求标签的测试用例等)执行过程流600。可以在测试执行之前(例如,在生成测试计划之前或作为生成测试计划的一部分)实现或运行过程流600。

测试台池允许将测试用例映射到更多可用的测试台,与图4的示例相比,这将增加测试用例的尝试率,其中测试用例401中的每一者取决于测试台405中的一个单独测试台。图5中示出了将测试用例501映射到测试台池503,其中测试台池503中的每一者包括测试台505中的至少一者。此外,也可以考虑测试台的依赖度以最大化或提高测试台资源利用率,这将在下面更详细地讨论。

为测试用例创建测试台池提供了第一层面的改进,智能测试执行计划在第二层面提供了附加的改进。如上所述,智能测试用例执行计划的目标是以更高的优先级运行重要的测试用例。测试用例可以具有指定测试台要求(例如,硬件、软件和配置要求以及其他限制)的测试台标签。测试用例还可以具有测试用例属性标签,其中此类测试用例属性标签可以用于确定测试用例的优先级排序或重要性。可以将各种类型的测试用例属性标记到测试用例。作为一个示例,以前从未通过的测试用例可能具有“从未通过”的测试用例属性标签。作为另一个示例,重要或高优先级测试用例可以具有“基准测试”的测试用例属性标签,遇到最多错误的测试用例可以具有“最多错误”的测试用例属性标签等。将在下面描述测试用例属性标签的各种其他示例。

图7示出了与被分配给测试台池503的测试用例501中的相应测试用例相关联的测试台标签700和测试用例属性标签705的集合,其中测试台池503中的每一者包括测试台505中的至少一者。测试用例501中的每一者还具有相关联的优先级710,其可以基于其测试用例属性标签705的集合来确定。在一些情况下,测试台标签700和测试用例属性标签705是从预定义标签集合中选择的(例如,它们被限制为所有测试用例501的预定义标签集合)。在其他实施方案中,自定义或用户定义的标签可以用于测试台标签700和/或测试用例属性标签705,或者预定义和自定义或用户定义的标签的组合可以用于测试台标签700和/或测试案例属性标签705。

为了实现智能测试执行计划的目标,需要提高测试用例尝试率,并确保重要或高优先级测试用例在测试执行过程中被首先或更早执行。说明性实施方案提供了用于找到测试用例与测试台之间的最佳匹配以及用于确定测试用例执行顺序的技术解决方案。应当注意,对于测试用例,其标签可能随着测试生命周期而改变。例如,如果测试用例在先前的测试周期中没有通过,则可能具有测试用例属性标签“从未通过”。然而,如果该测试用例在当前测试周期中通过,则将在后续测试周期中删除“从未通过”标签。因此,测试用例的优先级不一定是固定的。

图8示出了用于制定测试执行计划的过程流800。过程流800从步骤801开始,其中测试用例上的测试用例属性标签用于定义每个测试用例的优先级,并且其中找到具有最高优先级的测试用例。在步骤803中,针对选定的测试用例的测试台池中的每个测试台,计算每个测试台的依赖度,并且选择依赖度最小的测试台。然后在步骤805中将选定的测试用例映射到选定的测试台。然后在选定的测试台上尝试选定的测试用例。在步骤807中,确定是否所有测试用例都已被映射和尝试。如果步骤807的确定结果为否,则过程流800返回到步骤801,并且选择(在未尝试的测试用例中)优先级最高的测试用例。如果步骤807的确定结果为是,则过程流800在步骤809中结束。

图9示出了使用过程流800产生的示例性测试执行映射图,其中测试用例901的集合被映射到测试台池903的集合内的测试台。在图9的示例中,测试用例tc

测试用例可能随着产品开发生命周期而不断生成。确定如何执行尽可能多的测试用例(包括更重要的测试用例)是项目管理中的重要技术问题。本文描述的技术解决方案提供了一种用于生成智能测试执行计划的方法,所述智能测试执行计划从两个层面改进测试执行(例如,通过创建测试台池,以及通过智能排序和测试用例到测试台池中的测试台的映射)以实现提高测试用例尝试率和对重要测试用例进行优先级排序以供首先执行的目标。

在一些实施方案中,智能测试计划生成的技术方案综合考虑多个重要因素,包括但不限于(例如,基于测试用例属性标签)测试用例优先级和测试台依赖度。所述技术解决方案可以使用动态层次分析法(AHP)来计算测试用例的优先级,并且可以使用线性规划数学建模技术来生成测试执行计划(例如,在测试用例所映射到的测试台池中测试用例的排序和测试用例到测试台的分配)。

在以下描述中,TC用于表示测试用例集合,其中TC=[tc

图10示出了用于生成和执行测试计划的过程流1000。过程流1000开始于步骤1001,其中测试开始(例如,存在生成和执行测试计划的请求)。在步骤1003中,对测试用例集合TC和测试台集合TB进行初始化。在步骤1005中,遍历TC和TB以创建测试台池(例如,为TC中的每个测试用例创建一个测试台池)。如果测试台tb

在步骤1007中基于测试用例的标签[sw]计算TC中的测试用例的优先级。如上文所讨论,可以为测试用例预定义各种测试用例属性标签,诸如:“从未通过”表示以前从未通过的测试用例;“最多错误”表示发现许多错误的测试用例;“基准”表示确保一个或多个基本产品功能按预期工作的测试用例;“新特征覆盖”表示为一个或多个新产品特征设计的测试用例;“回归”表示回归测试的测试用例;并且“GR门”表示作为需要在黄金运行(GR)之前尝试的黄金运行门测试的测试用例。[sw]标签中的每一者可以具有相关联的权重值。假设有r个不同的[sw]标签,则权重值可以被表示为W=[w

在一些实施方案中,权重可以均匀分布(例如,每个权重被分配相同的值)。在其他实施方案中,可以在整个不同的测试阶段动态地分配和更新权重,因为[sw]标签中的不同标签的含义或重要性在不同的测试阶段可能不同。例如,在跨越测试阶段的整个测试生命周期中,带有“基准”标签的测试用例很重要,并且预期被100%尝试。在较早的测试阶段,尽管带有“回归”、“最多错误”和“新特征覆盖”标签的测试用例可能比没有这些标签的其他测试用例更重要,但是可能有例外,诸如带有“基准”标签的测试用例。在较迟的测试阶段处,尽管带有“从未通过”或“GR门”标签的测试用例可能比没有这些标签的其他测试用例更重要,但是同样可能有例外,诸如带有“基准”标签的测试用例。应当理解,这只是测试用例属性标签的不同重要性或优先级的示例,并且其他实施方案可以使用各种其他测试用例属性标签和测试用例属性标签加权来补充或代替这些示例中的一者或多者。

AHP是用于组织和分析复杂决策的结构化技术,并且表示用于量化决策标准(诸如测试用例属性标签)的权重的准确方法。测试用例属性标签分析提供了条件随时间变化的洞察力,使得做出关于测试用例优先级的良好决策涉及判断在不同时间段(例如,不同测试阶段)中更可能或更优选的内容。图11示出了用于计算[sw]标签1101的集合的权重的AHP架构1100,其中此类权重可以在用于确定测试用例tc

其中a

假设为测试生命周期总共规划了12个测试周期。图12示出了在测试生命周期期间跨越12个测试周期针对[sw]标签“GR门”、“从未通过”、“回归”、“基准”、“最多错误”和“新特征覆盖”的预期权重更新趋势的曲线图1200。返回到过程流1000,在步骤1007中计算测试用例tc

过程流1000继续进行到步骤1009:计算测试台池中的测试台的依赖度。每个测试用例tc

Z分数标准化方法用于根据以下等式对p(tc

过程流1000继续进行到步骤1011:使用基于测试用例优先级和测试台依赖度的目标函数生成测试执行表。在一些实施方案中使用线性规划数学建模技术来确定最佳测试执行过程顺序。在一些实施方案中,使用以下目标函数:

maxE=ωp*

其中ω

在步骤1013中,按照测试执行表启动测试生命周期,并且开始执行测试用例。根据排他性,测试用例可以并行、顺序或并行与顺序的组合运行。当尝试测试用例时,测试执行表可能会被刷新。图14示出了测试用例1401(被表示为测试用例tc

由于在步骤1013中执行了测试用例,因此可以执行步骤1015的确定。在一些实施方案中,步骤1015确定被连续执行,或者在每个测试用例被尝试之后执行。步骤1015的确定还可以或替代地按照某个定义的时间表、响应于明确的用户请求、响应于检测到一些指定条件(例如,测试已经从一个测试阶段移动到另一个测试阶段,使得应当执行权重或标签更新)等而周期性地执行。在步骤1015中,确定是否已经尝试了测试执行计划中的所有测试用例。如果步骤1015的确定结果为否,则过程流1000进行到步骤1017,其中确定是否要更新用于TC中的测试用例或TB中的测试台中的任一者的标签中的任一者。如果步骤1017的确定结果为是,则过程流1000进行到步骤1019,其中更新TC和TB。在步骤1019之后,过程流1000可以返回到步骤1003。如果步骤1017确定的结果为否,则过程流1000返回到步骤1007。过程流1000可以继续进行,直到步骤1015的确定结果为是,此时过程流1000进行到步骤1021,其中测试完成。

应当理解,上文和本文其他地方描述的特定优点与特定说明性实施方案相关联,并且不需要在其他实施方案中存在。而且,如在附图中示出并且如上所述的特定类型的信息处理系统特征和功能性仅是示例性的,并且在其他实施方案中可使用众多其他布置。

现在将参考图15和图16更详细地描述用于实现用于生成包括测试用例的执行顺序和测试用例到测试台池的映射的测试计划的功能性的处理平台的说明性实施方案。尽管在信息处理系统100的上下文中进行了描述,但是在其他实施方案中,这些平台也可以用于实现其他信息处理系统的至少各部分。

图15示出了包括云基础设施1500的示例性处理平台。云基础设施1500包括可以用于实现图1中的信息处理系统100的至少一部分的物理和虚拟处理资源的组合。云基础设施1500包括使用虚拟化基础设施1504实现的多个虚拟机(VM)和/或容器集合1502-1、1502-2、...1502-L。虚拟化基础设施1504在物理基础设施1505上运行,并且说明性地包括一个或多个管理程序和/或操作系统级虚拟化基础设施。操作系统级虚拟化基础设施说明性地包括Linux操作系统或其他类型的操作系统的内核控制组。

云基础设施1500进一步包括根据虚拟化基础设施1504的控制在VM/容器集合1502-1、1502-2、...1502-L中的相应VM/容器集合上运行的应用程序1510-1、1510-2、...1510-L的集合。VM/容器集合1502可以包括各个VM、一个或多个容器的各个集合或在VM中运行的一个或多个容器的各个集合。

在图15的实施方案的一些实现方式中,VM/容器集合1502包括使用包括至少一个管理程序的虚拟化基础设施1504实现的各个VM。管理程序平台可以用于在虚拟化基础设施1504内实现管理程序,其中所述管理程序平台具有相关联的虚拟基础设施管理系统。底层物理机可以包括一个或多个分布式处理平台,所述分布式处理平台包括一个或多个存储系统。

在图15的实施方案的其他实现方式中,VM/容器集合1502包括使用提供操作系统级虚拟化功能性(诸如对在裸金属主机上运行的Docker容器或在VM上运行的Docker容器的支持)的虚拟化基础设施1504实现的各个容器。容器说明性地使用操作系统的各个内核控制组来实现。

从上面显而易见的是,信息处理系统100的处理模块或其他部件中的一者或多者可以各自在计算机、服务器、存储装置或其他处理平台元件上运行。给定的此类元件可以被视为在本文中更一般地称为“处理装置”的示例。图15所示的云基础设施1500可以表示一个处理平台的至少一部分。此类处理平台的另一示例是图16中示出的处理平台1600。

在该实施方案中,处理平台1600包括信息处理系统100的一部分,并且包括被表示为1602-1、1602-2、1602-3、...1602-K的多个处理装置,所述多个处理装置通过网络1604彼此通信。

网络1604可以包括任何类型的网络,例如包括全球计算机网络(诸如互联网)、WAN、LAN、卫星网络、电话或有线网络、蜂窝网络、无线网络(诸如WiFi或WiMAX网络)或这些和其他类型的网络的各部分或组合。

处理平台1600中的处理装置1602-1包括耦合到存储器1612的处理器1610。

处理器1610可以包括微处理器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、中央处理单元(CPU)、图形处理单元(GPU)、张量处理单元(TPU)、视频处理单元(VPU)或其他类型的处理电路,以及此类电路元件的各部分或组合。

存储器1612可以任何组合的形式包括随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器或其他类型的存储器。存储器1612和本文所公开的其他存储器应被视为更一般地称为存储一个或多个软件程序的可执行程序代码的“处理器可读存储介质”的事物的说明性示例。

包括此类处理器可读存储介质的制品被认为是说明性实施方案。给定的此类制品可以包括例如存储阵列、存储磁盘或包含RAM、ROM、闪存存储器或其他电子存储器的集成电路,或多种其他类型的计算机程序产品中的任何一种。如本文所使用的术语“制品”应被理解为排除瞬时的传播信号。可以使用包括处理器可读存储介质的众多其他类型的计算机程序产品。

处理装置1602-1中还包括网络接口电路1614,其用于将处理装置与网络1604和其他系统部件对接,并且可以包括常规收发器。

处理平台1600的其他处理装置1602假设以与针对图中的处理装置1602-1所示的方式类似的方式进行配置。

而且,仅通过示例呈现图中所示的特定处理平台1600,并且信息处理系统100可以包括附加的或替代的处理平台,以及呈任意组合的许多不同的处理平台,其中每个此类平台包括一个或多个计算机、服务器、存储装置或其他处理装置。

例如,用于实现说明性实施方案的其他处理平台可以包括融合基础设施。

因此,应当理解,在其他实施方案中,可以使用附加的或替代元件的不同布置。这些元件的至少子集可以在公共处理平台上共同实现,或者每个此类元件可以在单独的处理平台上实现。

如先前所指示,如本文所公开的信息处理系统的部件可以至少部分地以存储在存储器中并且由处理装置的处理器执行的一个或多个软件程序的形式来实现。例如,以在一个或多个处理装置上运行的软件的形式说明性地实现了如本文所公开的用于生成包括测试用例的执行顺序和测试用例到测试台池的映射的测试计划的功能性的至少部分。

应再次强调,上述实施方案仅出于说明目的而呈现。可以使用许多变型和其他替代的实施方案。例如,所公开的技术可适用于多种其他类型的信息处理系统、测试计划、测试任务、测试动作等。而且,在附图中说明性地示出的系统和装置元件的特定配置以及相关联的处理操作在其他实施方案中可能改变。此外,以上在描述说明性实施方案的过程中做出的各种假设也应被视为示例性的,而不是对本公开的要求或限制。所附权利要求的范围内的众多其他替代实施方案对于本领域技术人员将是显而易见的。

相关技术
  • 隧道水沟电缆槽模板作业车设备
  • 隧道水沟电缆槽模板作业车设备
技术分类

06120116516559