一种测试用例管理方法及装置与流程

文档序号:18029074发布日期:2019-06-28 22:27阅读:181来源:国知局
一种测试用例管理方法及装置与流程

本申请涉及计算机领域,尤其涉及一种测试用例管理方法及装置。



背景技术:

在软件开发和测试过程中,随着被测软件的更改和变化,测试人员需要不断更新和增加新的测试用例,这就导致测试用例集的规模不断增加,全面执行它的成本逐渐加大。在此情况下,为了降低测试用例执行成本,提高测试过程中测试用例的使用效率,人们针对测试用例的选择和使用问题进行了大量的研究工作。其中测试用例排序技术着重研究测试过程中测试用例的执行策略,由于不同测试用例对于测试目标的完成可能有着不同的贡献程度,因此可以将不同的测试用例按其重要程度进行排序后使用,从而提高测试用例的使用效率。

测试用例排序技术最初是作为全量回归用例的一种辅助技术被提出来的。在全量回归用例中选择出待复用的测试用例集后,对其进行进一步进行精简和优化可能会耗费过多的资源。目前通常是将待复用的测试用例集按照已有优先级进行排序,并依次选择和执行测试用例。

这样固定的优先级容易导致测试用例无法完全适配不同的测试版本,容易导致测试不完全,从而测试结果正确率不高。



技术实现要素:

本申请实施例提供了一种测试用例管理方法以及装置,用于动态调整测试用例的优先级,从而有效确定测试范围以及提高测试结果。

第一方面,本申请实施例提供一种测试用例管理方法,具体包括:

测试用例管理装置获取第一测试用例和所述第一测试用例的第一优先级;然后该测试用例管理装置采用所述第一测试用例测试第一待测试版本,确定与所述第一测试用例相关的缺陷;该测试用例管理装置记录所述缺陷的优先级信息;该测试用例管理装置根据所述缺陷的优先级信息和所述第一优先级计算所述第一测试用例的第二优先级,所述第二优先级为所述第一测试用例更新后的优先级;该测试用例管理装置根据所述第二优先级确定所述第一测试用例在第二待测试版本的执行序列,所述第二待测试版本为所述第一待测试版本的更新版本。

本实施例中,该缺陷的优先级信息可以用于指示该缺陷相对于测试版本的严重程度,该测试用例的优先级可以用于指示该测试用例的执行优先级。

可以理解的是,本实施例中每一个待测试版本包括多个测试用例,每一个测试用例均可以利用上述方案进行测试用例管理。

本申请实施例中,该测试用例管理装置将测试用例与缺陷相关联,并根据缺陷的优先级信息与该测试用例的优先级确定下一测试版本的测试用例范围以及该测试用例的更新优先级,从而动态调整该测试用例的执行序列,实现有效确定测试范围以及提高测试结果的功能。

可选的,该测试用例管理装置根据所述缺陷的优先级信息和所述第一优先级计算所述第一测试用例的第二优先级包括:

该测试用例管理装置根据所述缺陷的优先级信息和所述第一优先级利用第一公式计算所述第一测试用例的第二优先级;

所述第一公式为:

其中,用于指示第i条测试用例的第二优先级,所述pj用于指示所述第i条测试用例的第一优先级,所述qn用于指示所述第i条测试用例对应的第n优先级缺陷的权重值,所述jn用于指示所述第i条测试用例对应的第n优先级缺陷的数目。

可选的,该测试用例管理方法还包括:该测试用例管理装置根据更新后的所述第一测试用例的执行序列测试所述第二待测试版本。

可选的,该测试用例管理装置根据更新后的所述第一测试用例的执行序列测试所述第二待测试版本包括:

该测试用例管理装置计算该第二待测试版本的测试用例的平均优先级;

该测试用例管理装置判断该第一测试用例的第二优先级是否大于所述平均优先级;若是,则该测试用例管理装置采用所述第一测试用例测试所述第二待测试版本。

可选的,该测试用例管理方法还包括:该测试用例管理装置编写测试用例集,所述测试用例集包括各测试用例的身份标识信息、各测试用例的初始优先级信息;该测试用例管理装置记录所述各测试用例的初始优先级信息。这样当该测试用例管理装置重构该测试版本时,该测试用例管理装置可以重新采用已保存的初始优先级信息进行测试。

第二方面,本申请实施例提供一种测试用例管理装置,具体包括:

一种实现方式中,该测试用例管理装置包括:

获取模块,用于获取第一测试用例以及所述第一测试用例的第一优先级;

执行模块,用于执行所述第一测试用例集测试第一待测试版本,确定与所述第一测试用例集相关的缺陷;

记录模块,用于记录所述缺陷的优先级信息;

计算模块,用于根据所述缺陷的优先级信息和所述第一优先级计算所述第一测试用例第二优先级,所述第二优先级为所述第一测试用例的优先级;

确定模块,用于根据所述第二优先级确定该第一测试用例在该第二待测试版本的执行序列,所述第二待测试版本为所述第一待测试版本的更新版本。

可选的,所述计算模块,具体用于根据所述缺陷的优先级信息和所述第一优先级利用第一公式计算所述第一测试用例的第二优先级;

所述第一公式为:

其中,用于指示第i条测试用例的第二优先级,所述pj用于指示所述第i条测试用例的第一优先级,所述qn用于指示所述第i条测试用例对应的第n优先级缺陷的权重值,所述jn用于指示所述第i条测试用例对应的第n优先级缺陷的数目。

可选的,所述执行模块,还用于根据所述第二测试用例的执行序列执行所述第二测试用例测试所述第二待测试版本。

可选的,所述执行模块,具体用于计算该第二待测试版本的测试用例的平均优先级;判断该第二测试用例的第二优先级是否大于所述平均优先级;若是,则执行所述第二测试用例测试所述第二待测试版本。

可选的,所述装置还包括编写模块,所述编写模块,用于编写测试用例集,所述测试用例集包括各测试用例的身份标识信息、各测试用例的初始优先级信息;

记录模块,用于记录所述各测试用例的初始优先级信息。

另一种可能实现方式中,该测试用例管理装置具体包括:处理器和存储器,其中,所述存储器中存有计算机可读程序,所述处理器通过运行所述存储器中的程序,以用于完成上述第一方面所述的方法。

第三方面,本申请实施例提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,所述计算机执行上述第一方面所述的方法。

第四方面,本申请实施例提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,所述计算机执行上述第一方面所述的方法。

从以上技术方案可以看出,本申请实施例中,该测试用例管理装置将测试用例与缺陷相关联,并根据缺陷的优先级信息与该测试用例的优先级确定下一测试版本的测试用例范围以及该测试用例的更新优先级,从而动态调整该测试用例的执行序列,实现有效确定测试范围以及提高测试结果的功能。

附图说明

图1为本申请实施例中测试用例管理方法的一个实施例示意图;

图2为本申请实施例中测试用例管理装置的一个实施例示意图;

图3为本申请实施例中测试用例管理装置的另一个实施例示意图。

具体实施方式

本申请实施例提供了一种测试用例管理方法以及装置,用于动态调整测试用例的优先级,从而有效确定测试范围以及提高测试结果。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在软件开发和测试过程中,随着被测软件的更改和变化,测试人员需要不断更新和增加新的测试用例,这就导致测试用例集的规模不断增加,全面执行它的成本逐渐加大。在此情况下,为了降低测试用例执行成本,提高测试过程中测试用例的使用效率,人们针对测试用例的选择和使用问题进行了大量的研究工作。其中测试用例排序技术着重研究测试过程中测试用例的执行策略,由于不同测试用例对于测试目标的完成可能有着不同的贡献程度,因此可以将不同的测试用例按其重要程度进行排序后使用,从而提高测试用例的使用效率。测试用例排序技术最初是作为全量回归用例的一种辅助技术被提出来的。在全量回归用例中选择出待复用的测试用例集后,对其进行进一步进行精简和优化可能会耗费过多的资源。目前通常是将待复用的测试用例集按照已有优先级进行排序,并依次选择和执行测试用例。这样固定的优先级容易导致测试用例无法完全适配不同的测试版本,容易导致测试不完全,从而测试结果正确率不高。

为了解决这一问题,本申请实施例提供如下技术方案:测试用例管理装置获取第一测试用例和所述第一测试用例的第一优先级;然后该测试用例管理装置执行所述第一测试用例测试第一待测试版本,确定与所述第一测试用例相关的缺陷;该测试用例管理装置记录所述缺陷信息,所述缺陷信息包括所述缺陷的优先级信息;该测试用例管理装置根据所述缺陷的优先级信息和所述第一优先级计算所述第一测试用例的第二优先级,所述第二优先级为所述第一测试用例更新后的优先级;该测试用例管理装置根据所述第二优先级确定该第一测试用例在第二待测试版本的执行序列,所述第二待测试版本为所述第一待测试版本的更新版本。

具体请参阅图1所示,本申请实施例中测试用例管理方法的一个实施例包括:

101、测试用例管理装置获取第一测试用例和该第一测试用例的第一优先级。

该测试用例管理装置在对该第一测试版本进行测试之前,该测试用例管理装置获取该第一测试用例和该第一测试用例的第一优先级。

本实施例中,每一个测试版本都需要多个测试用例来进行测试,因此该测试用例管理装置在对该第一测试版本进行测试之前,该测试用例管理装置获取该第一测试用例集和该第一测试用例集中各个测试用例的第一优先级。其中,该第一测试用例集中包括该第一待测试版本的测试范围,该测试范围用于指示测试该第一待测试版本的全部测试用例;该第一测试用例集中各测试用例均有相应的优先级,且该测试用例按照该优先级进行排序,生成执行序列。可以理解的是,该优先级可以具体使用相应的优先级量值进行表示。比如该第一测试用例集中包括测试用例a、测试用例b、测试用例c、测试用例d以及测试用例e;而该测试用例a的优先级量值为1、该测试用例b的优先级量值为2、该测试用例c的优先级量值为3、该测试用例d的优先级量值为4以及该测试用例e的优先级量值为4.5。

本实施例中,该测试用例管理装置在初始状态时,需要编写相应的测试用例,并记录该测试用例身份标识信息、以及初始优先级信息。

102、该测试用例管理装置采用该第一测试用例测试第一待测试版本,并确定与该第一测试用例相关联的缺陷。

本实施例中,该测试用例管理装置按照该第一测试用例的执行序列测试该第一测试版本之后,将获取与该第一测试用例相关联的缺陷。具体来说,对于第一测试版本,在测试用例范围内,该测试用例管理装置按照该第一测试用例集中的各测试用例的执行序列执行该第一测试用例集中的各测试用例测试该第一待测试版本,并确定与该第一测试用例集中各测试用例相关联的缺陷。

假设该第一测试用例集中以优先级量值越大,在执行序列中排序越前,这样该测试用例管理装置在按照测试用例e、测试用例d、测试用例c、测试用例b和测试用例a的顺序测试该第一待测试版本。其中,测试用例测试出该第一待测试版本的缺陷,即为该测试用例相关联的缺陷。比如该测试用例e测试出2个缺陷,该测试用例d测试出3个缺陷,该测试用例c测试出4个缺陷,该测试用例b测试出2个缺陷,该测试用例a测试出1个缺陷。

103、该测试用例管理装置记录该缺陷的优先级信息。

在测试待测试版本时,该测试用例测试出的缺陷具备相应的优先级,且与该缺陷的优先级信息对具有相应的权重值。因此该测试用例管理装置将该缺陷的优先级信息进行记录保存。

可以理解的是,该缺陷的优先级信息可以预先定义,比如根据该缺陷严重程序为该缺陷划分优先级,比如将缺陷划分为四个优先级,按照严重程度从大到小依次为第一优先级、第二优先级、第三优先级以及第四优先级,且定义这四个优先级对应的权重值如下:该第一优先级的权重值为4、该第二优先级的权重值为3、该第三优先级的权重值为2以及该第四优先级的权重值为1。

104、该测试用例管理装置根据该缺陷的优先级信息和该第一优先级计算该第一测试用例的第二优先级,该第二优先级为该第一测试用例更新后的优先级。

该测试用例管理装置根据该缺陷的优先级信息和该第一优先级计算该第一测试用例的第二优先级,该第二优先级为该第一测试用例更新后的优先级。

具体来说,该测试用例管理装置可以根据第一公式来计算该第一测试用例集中各测试用例的第二优先级,其中,该第一公式为

其中,用于指示第i条测试用例的第二优先级,所述pj用于指示所述第i条测试用例的第一优先级,所述qn用于指示所述第i条测试用例对应的第n优先级缺陷的权重值,所述jn用于指示所述第i条测试用例对应的第n优先级缺陷的数目,所述n用于指示测试用例的总数目。

比如,该第一测试用例集中包括20条测试用例,其中,第6条测试用例的第一优先级为2,该第6条测试用例测试出了4条缺陷,其中这4条缺陷的优先级分别为2、3、1、4,相应的权重值为2、3、1、4。因此,该第6条测试用例的第二优先级为2+2*(2*1+3*1+1*1+4*1)=22。依次更新该第一测试用例集中各测试用例的优先级记作该第二优先级。

105、该测试用例管理装置根据该第二优先级确定第二待测试版本的第二测试用例集中的各测试用例的执行序列,该第二待测试版本为该第一待测试版本的更新版本。

该测试用例管理装置根据该第二优先级确定该第二待测试版本的第二测试用例集,并根据该第二优先级确定该第二测试用例集中各测试用例的执行序列,其中,该第二待测试版本为该第一待测试版本的更新版本。即该第二待测试版本为该第一待测试版本的下一次版本。

可以理解的是,本申请实施例中该测试用例管理装置在确定该第二待测试版本的第二测试用例集之后,按照该第二测试用例集中的各测试用例的执行序列执行各测试用例。其中,该第二测试用例集中的各用例的选择标准可以如下:该测试用例管理装置将该第一测试用例集中的各测试用例的第二优先级和重新增加的新的测试用例的优先级取平均值,然后选择该优先级大于该平均值的测试用例作为该第二测试用例集。比如,该第一测试用例集包括20条测试用例,为了该第二待测试版本新增了10条测试用例;然后该30条测试用例的优先级的平均值为15,则选择优先级大于15的测试用例作为该第二测试用例集(假设存在20条);然后该测试用例管理装置再根据该第二测试用例集中各测试用例的优先级由高到低进行排序生成执行序列。

下面以一个具体的实施场景描述该测试用例管理方法,具体包括:

在初始状态,该测试用例管理装置编写和获取测试用例生成第一测试用例集,并记录测试用例信息,其中该测试用例信息包括测试用例身份标识,该测试用例的第一优先级信息、该测试用例的测试步骤、该测试用例的预期结果,以及在该测试用例执行之后还会记录该测试用例的测试结果、该测试用例的缺陷关联项以及该测试用例的更新优先级信息(即第二优先级信息);然后该测试用例管理装置根据第一测试用例集测试第一待测试版本,得到第一待测试版本的测试结果,该第一待测试版本的测试结果包括与测试用例相关联的缺陷优先级信息;然后该测试用例管理装置根据该缺陷优先级信息和该测试用例集的第一优先级信息计算得到测试用例的更新优先级信息(即第二优先信信息);该测试用例管理装置根据该更新优先级信息和新增的测试用例的优先级信息确定第二待测试版本的测试用例集;最后该测试用例管理装置再根据该第二待测试版本的测试用例集测试该第二待测试版本。该测试用例管理装置可以循环此操作测试第三待测试版本或第四待测试版本等等。

本实施例中,该测试用例管理装置将测试用例与缺陷相关联,并根据缺陷的优先级信息与该测试用例的优先级确定下一测试版本的测试用例范围以及该测试用例的更新优先级,从而动态调整该测试用例的执行序列,实现有效确定测试范围以及提高测试结果的功能。

上面描述了本申请实施例中的测试用例管理方法,下面描述本申请实施例中测试用例管理装置。

具体请参阅图2所示,本申请实施例中测试用例管理装置一个实施例包括:

获取模块201,用于获取第一测试用例以及所述第一测试用例的第一优先级;

执行模块202,用于采用所述第一测试用例测试第一待测试版本,确定与所述第一测试用例相关的缺陷;

记录模块203,用于记录所述缺陷的优先级信息;

计算模块204,用于根据所述缺陷的优先级信息和所述第一优先级计算所述第一测试用例的第二优先级,所述第二优先级为所述第一测试用例更新后的优先级;

确定模块205,用于根据所述第二优先级确定所述第一测试用例在第二待测试版本的执行序列,所述第二待测试版本为所述第一待测试版本的更新版本。

可选的,所述计算模块204,具体用于根据所述缺陷的优先级信息和所述第一优先级利用第一公式计算所述第一测试用例的第二优先级;

所述第一公式为:

其中,用于指示第i条测试用例的第二优先级,所述pj用于指示所述第i条测试用例的第一优先级,所述qn用于指示所述第i条测试用例对应的第n优先级缺陷的权重值,所述jn用于指示所述第i条测试用例对应的第n优先级缺陷的数目,所述n用于指示测试用例的总数目。

可选的,所述执行模块202,还用于根据更新后的所述第一测试用例的执行序列测试所述第二待测试版本。

可选的,所述执行模块202,具体用于计算第二待测试版本测试用例的平均优先级;

判断所述第一测试用例的所述第二优先级是否大于所述平均优先级;若是,则采用所述第一测试用例测试所述第二待测试版本,所述平均优先级是根据所述第二待测试版本的测试用例的优先级计算得到。

可选的,所述装置还包括编写模块206,所述编写模块206,用于编写测试用例集,所述测试用例集包括各测试用例的身份标识信息、各测试用例的初始优先级信息;

记录模块203,用于记录所述各测试用例的初始优先级信息。

本实施例中,本申请实施例中,该测试用例管理装置将测试用例与缺陷相关联,并根据缺陷的优先级信息与该测试用例的优先级确定下一测试版本的测试用例范围以及该测试用例的更新优先级,从而动态调整该测试用例的执行序列,实现有效确定测试范围以及提高测试结果的功能。

具体请参阅图3所示,本申请实施例中测试用例管理装置的另一个实施例包括:

收发器301,处理器302及总线303;

该收发器301与该处理器302通过该总线303相连;

该总线303可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

处理器302可以是中央处理器(centralprocessingunit,简称cpu),网络处理器(networkprocessor,简称np)或者cpu和np的组合。

处理器302还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,简称asic),可编程逻辑器件(programmablelogicdevice,简称pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,简称cpld),现场可编程逻辑门阵列(field-programmablegatearray,简称fpga),通用阵列逻辑(genericarraylogic,简称gal)或其任意组合。

参见图3所示,该测试用例管理装置还可以包括存储器304。该存储器304可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,简称ram);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,简称hdd)或固态硬盘(solid-statedrive,简称ssd);存储器304还可以包括上述种类的存储器的组合。

可选地,存储器304还可以用于存储程序指令,处理器302调用该存储器304中存储的程序指令,可以执行图1中所示实施例中的一个或多个步骤,或其中可选的实施方式,实现上述方法中测试用例管理装置行为的功能。

该处理器302,执行如下步骤:

获取第一测试用例以及所述第一测试用例的第一优先级;执行所述第一测试用例测试第一待测试版本,确定与所述第一测试用例相关的缺陷;

该存储器304,执行如下步骤:

记录所述缺陷的优先级信息;

该处理器302,执行如下步骤:

根据所述缺陷的优先级信息和所述第一优先级计算所述第一测试用例的第二优先级,所述第二优先级为所述第一测试用例的优先级;根据所述第二优先级确定所述第一测试用例在第二待测试版本的执行序列,所述第二待测试版本为所述第一待测试版本的更新版本。

可选的,该处理器302,执行如下步骤:

用于根据所述缺陷的优先级信息和所述第一优先级利用第一公式计算所述第一测试用例集的第二优先级;

所述第一公式为:

其中,用于指示第i条测试用例的第二优先级,所述pj用于指示所述第i条测试用例的第一优先级,所述qn用于指示所述第i条测试用例对应的第n优先级缺陷的权重值,所述jn用于指示所述第i条测试用例对应的第n优先级缺陷的数目。

可选的,该处理器302,执行如下步骤:

根据更新后的所述第一测试用例的执行序列测试所述第二待测试版本。

可选的,该处理器302,执行如下步骤:

判断所述第一测试用例的所述第二优先级是否大于所述平均优先级;若是,则采用所述第一测试用例测试所述第二待测试版本,所述平均优先级是根据所述第二待测试版本的测试用例的优先级计算得到

可选的,该处理器302,还用于执行如下步骤:

编写测试用例集,所述测试用例集包括各测试用例的身份标识信息、各测试用例的初始优先级信息;

该存储器304,执行如下步骤:

记录所述各测试用例的初始优先级信息。

本实施例中,本申请实施例中,该测试用例管理装置将测试用例与缺陷相关联,并根据缺陷的优先级信息与该测试用例的优先级确定下一测试版本的测试用例范围以及该测试用例的更新优先级,从而动态调整该测试用例的执行序列,实现有效确定测试范围以及提高测试结果的功能。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1