1.本发明实施例涉及计算机技术领域,尤其涉及一种数据生成、推荐和测试方法、电子设备以及存储介质。
背景技术:
2.聚合平台类应用软件能够对各种服务进行整合,不仅为用户提供了丰富和快捷的服务接口,也为一些服务平台提供了服务接入,这些服务平台还能够共享聚合平台的用户群,以及获取聚合平台的其他资源。
3.聚合平台类应用软件与其他的应用软件相比,具有功能模块繁多、软件版本更新较快等特点,使得回归测试的测试链路较长。
4.一方面,对于聚合平台类应用软件而言,各个功能模块耦合程度较高,每个功能模块的功能依赖于其他功能模块的实现,回归测试的工作量较大,也无法适用于常规的移动端自动测试方案。
5.另一方面,聚合平台类应用软件的后台具有较长的服务器链路,服务器链路中的不同的服务器用于处理不同类型的服务数据,功能模块可能与多个服务器均存在深度的依赖关系,无法对各个功能模块进行可靠的分离,导致测试的效率和精准度较差。
技术实现要素:
6.有鉴于此,本发明实施例提供一种数据生成、推荐和测试方法、电子设备以及存储介质,以至少部分解决上述问题。
7.根据本发明实施例的第一方面,提供了一种数据生成方法,包括:生成应用软件的各个功能模块与测试价值指标对应的测试价值,所述测试价值至少指示与各个功能模块的用户访问量和/或用户安全相关程度正相关;生成所述应用软件的测试需求与所述测试价值指标对应的测试价值条件。
8.在本发明的另一实现方式中,所述生成应用软件的各个功能模块与测试价值指标对应的测试价值,包括:生成应用软件的各个功能模块与重要性标签对应的功能重要性和与变动相关性标签对应的变动相关性。所述功能重要性与各个功能模块的用户访问量和/或用户安全相关程度正相关,所述变动相关性指示各个功能模块的代码在所述应用软件的版本变动时的变动程度。
9.在本发明的另一实现方式中,所述生成所述应用软件的测试需求与所述测试价值指标对应的测试价值条件,包括:生成所述应用软件的测试需求与所述重要性标签对应的功能重要性条件、以及与所述变动相关性标签对应变动相关性条件。
10.在本发明的另一实现方式中,所述生成所述应用软件的测试需求与所述重要性标签对应的功能重要性条件、以及与所述变动相关性标签对应变动相关性条件,包括:组合各个功能模块的重要性标签和变动相关性标签,得到多个推荐场景;分别基于每个推荐场景,生成测试需求与所述重要性标签对应的功能重要性条件、以及与所述变动相关性标签对应
变动相关性条件。
11.在本发明的另一实现方式中,所述生成应用软件的各个功能模块与重要性标签对应的功能重要性,包括:根据应用软件的各个功能模块的线上访问量,对所述各个功能模块进行聚类处理,形成多个聚类;根据多个聚类各自包括的功能模块的数量,对所述多个聚类进行从大到小的排序;根据每个功能模块所在的聚类的排序数,确定该功能模块与重要性标签对应的功能重要性,每个功能模块所在的聚类的排序数指示该功能模块的用户价值。
12.在本发明的另一实现方式中,所述生成应用软件的各个功能模块与变动相关性标签对应的变动相关性,包括:获取所述应用软件的代码与各个功能模块之间的映射关系;判断所述应用软件的代码是否随所述应用软件的版本变动而变动;如果为是,则将该代码具有所述映射关系的功能模块的变动相关性标签确定为与代码变动相关;如果为否,则将该代码具有所述映射关系的功能模块的变动相关性标签确定为与代码变动不相关。
13.在本发明的另一实现方式中,所述判断所述应用软件的代码是否随所述应用软件的版本变动而变动,包括:确定所述应用软件的版本变动前的第一代码和版本变动后的第二代码;对所述第一代码和所述第二代码进行代码差异测试,判断所述第二代码相对于所述第一代码是否发生变动。
14.根据本发明实施例的第二方面,提供了一种推荐方法,包括:匹配应用软件的各个功能模块的用户价值分布与各个功能模块的测试用例分布,所述用户价值分布指示各个功能模块的用户访问量和/或用户安全相关程度的分布,所述测试用例分布指示各个功能模块的测试用例的数量的分布和/或所述测试用例的优先级的分布;获取推荐请求,所述推荐请求包括所述应用软件的测试需求;根据第一方面所述的数据生成方法,生成所述应用软件的测试需求的测试价值条件;确定测试价值符合所述测试价值条件的至少一个功能模块;推荐所述至少一个功能模块对应的测试用例。
15.在本发明的另一实现方式中,所述匹配应用软件的各个功能模块的用户价值分布与各个功能模块的测试用例分布,包括:调整应用软件的功能模块的划分,使得所述各个模块的用户价值分布与各个功能模块的测试用例分布匹配。
16.根据本发明实施例的第三方面,提供了一种测试方法,包括:获取测试请求;根据所述测试请求,生成测试用例的推荐请求;根据所述推荐请求,获取根据第二方面所述的推荐方法推荐的测试用例;基于所述测试用例,对所述应用软件进行测试。
17.根据本发明实施例的第四方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面至第三方面中的任一方面所述的方法对应的操作。
18.根据本发明实施例的第五方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面至第三方面中的任一方面所述的方法。
19.在本发明实施例的数据生成方法中,测试价值至少指示与各个功能模块的用户访问量和/或用户安全相关程度正相关,保证了测试价值指标的可靠性,此外,通过测试价值指标,将应用软件的测试需求与各个功能模块进行关联,能够选取测试价值符合测试价值条件的模块进行测试,提高了测试的效率和精准度。
20.此外,在本发明实施例的推荐方法中,通过匹配应用软件的各个功能模块的用户
价值分布与各个功能模块的测试用例分布,提高了测试用例与用户价值的匹配度,因此,在为待测试的至少一个功能模块推荐测试用例时,提高了测试的用户价值。
附图说明
21.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
22.图1为根据本发明的一个实施例的测试系统的网络架构图。
23.图2为根据本发明的另一实施例的测试方法的步骤流程图。
24.图3为根据本发明的另一实施例的测试用例推荐方法的步骤流程图。
25.图4为根据本发明的另一实施例的数据生成方法的步骤流程图。
26.图5为根据本发明的另一实施例的电子设备的结构示意图。
具体实施方式
27.为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
28.下面结合本发明实施例附图进一步说明本发明实施例具体实现。
29.图1为根据本发明的一个实施例的测试系统的网络架构图。图1的测试系统包括测试设备110、推荐服务器120、数据处理服务器130以及应用服务器140。
30.具体而言,测试设备110可以实现为服务器,也可以实现为终端设备。测试设备110中可以安装有应用软件的客户端应用112,并且配置有测试模块111,测试模块111可以基于预设的测试用例,调用客户端应用112的功能,实现应用软件的测试,例如,回归测试。
31.客户端应用112被调用时,与应用服务器140中安装的服务端应用141之间进行交互,返回交互数据。测试模块111进一步基于交互数据,评估测试结果。
32.可替代地,测试设备110的测试模块111也可以直接与服务端应用141进行交互。
33.进一步地,测试设备110可以从推荐服务器120获取测试用例,将测试用例输入到测试模块111进行测试。例如,测试设备110可以向推荐服务器120发送推荐请求,得到作为推荐结果的测试用例。在一个示例中,测试设备110可以基于用户输入的测试请求,发送上述的推荐请求。测试请求中可以包括应用软件测试需求,通过推荐请求,将测试需求发送到推荐服务器120。
34.进一步地,推荐服务器120可以预先处理的测试数据,获得与测试需求匹配的测试用例。推荐服务器120可以预先执行测试数据的处理,也可以经由数据处理服务器130执行预先的数据处理,并且从数据处理服务器130获得这些数据。
35.在一个示例中,上述测试数据的来源可以是诸如测试人员采用人工输入的方式输入到数据处理服务器130中,也可以是数据处理服务器130从应用服务器140获得的历史数据或实时数据。
36.应理解,上述的测试系统仅仅为示例性的,推荐服务器120、数据处理服务器130以及应用服务器140中的至少两者可以部署或配置在同一物理服务器或同一服务器集群中,推荐服务器120、数据处理服务器130以及应用服务器140可以作为应用软件的后台服务器链路中的相同或不同节点处。
37.还应理解,本示例中的应用服务器140仅仅作为虚拟装置示出,但是,应用服务器140可以作为聚合平台类应用的后台,实现为服务器链路,服务器链路中的各个服务器经由耦合,实现了聚合平台类应用的各个功能模块。
38.图2为根据本发明的另一实施例的测试方法的步骤流程图。在一个示例中,本实施例的测试方法可以由图1实施例中的测试设备110和应用服务器140实现。
39.本实施例的测试方法包括:
40.s210:获取测试请求。
41.应理解,测试请求中可以包括应用软件的测试需求。在一个示例中,测试请求可以由测试人员操作测试设备110实现,例如,测试设备110的测试模块111包括人机交互界面,测试人员经由人机交互界面触发测试模块111。进一步地,测试模块111可以根据测试请求,获取到测试用例,进而基于测试用例对应用软件进行测试。
42.还应理解,应用软件可以为聚合平台类应用。应用软件的各个功能模块之间可以具有耦合关系。应用软件的服务器链路可以包括多个服务器节点,各个功能模块通过各个服务器节点耦合。应用软件的服务器链路可以实现为应用服务器140。
43.s220:根据测试请求,生成测试用例的推荐请求。
44.应理解,测试需求可以被封装到推荐请求中,然后,被发送到测试用例推荐模块或者诸如推荐服务器120的推荐平台。
45.s230:根据推荐请求,获取根据推荐方法推荐的测试用例。
46.应理解,测试设备110可以通过网络接口向推荐服务器120发送推荐请求,并且获取测试用例,推荐服务器120能够确定与推荐请求中包括的测试需求匹配的测试用例。推荐服务器120可以基于预先存储的映射关系,执行上述的匹配,也可以从数据处理服务器130获取到上述的映射关系。
47.s240:基于测试用例,对应用软件进行测试。
48.应理解,作为一个示例,可以将测试用例输入到图1的测试设备110的测试模块111,或者,测试模块111获取测试用例,对应于软件进行测试。
49.还应理解,在测试用例中可以包括基于客户端应用112的访问请求,经由客户端112与服务端应用141之间的交互,使得访问请求中的数据经过服务端应用141的各个功能模块的处理,返回处理结果。测试模块111基于处理结果,评估测试结果。
50.图3为根据本发明的另一实施例的测试用例推荐方法的步骤流程图。在一个示例中,本实施例的推荐方法可以由图1实施例中的推荐服务器120实现。
51.本实施例的推荐方法包括:
52.s310:匹配应用软件的各个功能模块的用户价值分布与各个功能模块的测试用例分布,用户价值分布指示各个功能模块的用户访问量和/或用户安全相关程度的分布,测试用例分布指示各个功能模块的测试用例的数量的分布和/或测试用例的优先级的分布。
53.应理解,各个功能模块包括但不限于支付模块、账号模块、导航模块、定位模块、搜
索模块、叫车模块、设置模块、推送模块中的至少一种。
54.还应理解,用户价值可有指示功能模块的用户访问量,例如,对于驾车导航等功能模块,在特定时期的用户访问量较大,使得该类功能模块的用户价值较高。又例如,对于诸如支付模块、用户隐私相关模块等功能模块与用户安全相关程度较大,因此,该类功能模块的用户价值较低。反之,对于用户访问量不高或者与用户安全相关程度不高的功能模块的用户价值较低。
55.此外,功能模块可以被进一步划分,功能模块被进一步划分时,被进一步划分的功能模块的用户价值小于未被进一步划分的功能模块的用户价值,并且被进一步划分的功能模块的测试用例的数量小于未被进一步划分的功能模块的测试用例的数量。通过功能模块的划分可以调整相应的测试用例分布。
56.此外,功能模块的用户价值的分布与功能模块的测试用例分布匹配,可以是指,各个功能模块的用户价值的分布的统计指标与功能模块的测试用例分布的统计指标一致。例如,用户价值较大的功能模块具有较多的测试用例,和/或具有较多的高优先级测试用例,用户价值较低的功能模块具有较少的测试用例,和/或具有较少的高优先级测试用例。
57.s320:获取推荐请求,推荐请求包括应用软件的测试需求。
58.s330:根据数据生成方法,生成应用软件的测试需求的测试价值条件。
59.s340:确定测试价值符合测试价值条件的至少一个功能模块。
60.s350:推荐至少一个功能模块对应的测试用例。
61.在本发明实施例的推荐方法中,通过匹配应用软件的各个功能模块的用户价值分布与各个功能模块的测试用例分布,提高了测试用例与用户价值的匹配度,因此,在为待测试的至少一个功能模块推荐测试用例时,提高了测试的用户价值。
62.此外,与常规的移动端测试方案不同,在聚合平台类应用软件的回归测试过程中,功能模块繁多导致回归测试用例存量大,随着软件产品的迭代,回归测试用例的增量也大,测试用例数量增长较快,本实施例的推荐方法提高了测试用例与用户价值的匹配度,避免了在大量测试用例的用户价值不高的情况。
63.换言之,本实施例的推荐方法实现了自动化测试用例推荐,提高了推荐准确度,避免了人工推荐导致的测试用例遗漏或误判。此外,本发明实施例的方案对于功能模块的大量测试用例和应用软件的大量版本的处理具有通用性,无需针对特定的应用软件的版本或测试用例的数目过多地变更软件配置,减少了软件配置的成本。
64.在另一些示例中,匹配应用软件的各个功能模块的用户价值分布与各个功能模块的测试用例分布,包括:调整应用软件的功能模块的划分,使得各个模块的用户价值分布与各个功能模块的测试用例分布匹配。例如,去除用户价值较低的那些功能模块,提高用户价值分布与测试用例分布之间的匹配度。换言之,可以分析应用软件的线上用户使用数据,并且基于线上用户平均数、用户数量变化率、代码错误数量、功能存在时长中的至少一者,识别应用软件的冗余功能,推进相关功能下线,从而节约了测试成本,降低了测试质量风险。
65.可替代地,可以调整各个功能模块的测试用例分布,使得各个模块的用户价值分布与各个功能模块的测试用例分布匹配。例如,去除减小与各个功能模块的用户价值分布的匹配度的那些测试用例,或者,增加提高与各个功能模块的用户价值分布的匹配度的那些测试用例。
66.更具体地,可以确定应用软件的功能模块中的第一功能模块和第二功能模块,然后,根据第一功能模块与第二功能模块之间的用户价值差异、以及第一功能模块与第一功能模块之间的测试用例差异,调整第一功能模块和第二功能模块的划分,使得用户价值差异与测试用例差异匹配。由于第一功能模块和第二功能模块为应用软件的功能模块中的部分功能模块,调整第一功能模块和第二功能模块的划分,使得用户价值差异与测试用例差异匹配,实现了功能模块的局部调整,提高了模块划分的调整效率。
67.图4为根据本发明的另一实施例的数据生成方法的步骤流程图。在一个示例中,本实施例的数据生成方法可以由图1实施例中的数据处理服务器130实现。
68.本实施例的数据生成方法包括:
69.s410:生成应用软件的各个功能模块与测试价值指标对应的测试价值,测试价值至少指示与各个功能模块的用户访问量和/或用户安全相关程度正相关。
70.应理解,一方面,各个功能模块的用户访问量和/或用户安全相关程度反映了用户价值,用户价值越高,功能模块的测试价值越高。另一方面,测试价值还可以体现在功能模块的代码与应用软件的版本的变动相关性,这种相关性越大,说明测试的必要性越高,相应的测试价值越高,换言之,不测试所带来的软件故障风险较大。
71.还应理解,测试价值指标可以为一个或多个指标。例如,具体可以实现为一个或多个标签,例如,与用户价值相关的功能重要性标签和变动相关性标签中的至少一种。进一步地,功能重要性标签和变动相关性标签各自也可以实现为一个或多个标签。
72.s420:生成应用软件的测试需求与测试价值指标对应的测试价值条件。
73.应理解,测试价值条件是针对功能模块的测试价值的条件,在测试价值被量化的情况下,测试价值条件可以为测试价值的阈值。例如,在0-9十个测试价值级别依次表示测试价值升高,这时,如果测试价值条件指示7,则说明测试需求为用于对测试价值不低于7的那些功能模块进行测试。当然,上述的测试价值的数值仅仅对应于一个测试价值指标。
74.在本发明实施例的方案中,通过测试价值指标,将应用软件的测试需求与各个功能模块进行关联,能够选取测试价值符合测试价值条件的模块进行测试,提高了测试的效率和精准度,此外,测试价值至少指示与各个功能模块的用户访问量和/或用户安全相关程度正相关,保证了测试价值指标的可靠性。
75.在另一些示例中,生成应用软件的测试需求与测试价值指标对应的测试价值条件,包括:生成应用软件的测试需求与重要性标签对应的功能重要性条件。具体而言,重要性标签指示功能模块的重要程度。用户价值可以根据与功能模块的用户访问量正相关。用户价值也可以根据功能模块的用户访问量确定。用户价值可以指示测试用例的价值。由此,基于模块重要等级以及代码变动相关度评定,提高了对功能模块的客观判定,减少了主管判定的因素。
76.具体而言,首先,可以根据应用软件的各个功能模块的线上访问量,对所述各个功能模块进行聚类处理,形成多个聚类。应理解,聚类分析是一种研究(样品或指标)分类问题的统计分析方法,由于根据用户访问量对功能模块进行聚类处理,能够有效地对功能模块划分等级,因此,将属于每个聚类的功能模块的用户价值确定为与该聚类的排序数正相关,实现了用户价值的准确估计。尤其当功能模块的数目较少时,对功能模块进行聚类处理,得到的多个聚类通常少于功能模块的数目,避免确定过多等级的用户价值而降低数据处理效
率。例如,可以通过k均值聚类进行上述的聚类处理,对于给定的功能模块集合和需要的聚类数目k(k由用户指定),k均值算法能够根据距离函数反复把功能模块分入k个聚类中。
77.换言之,可以监测与各个功能模块关联的线上埋点的用户访问量,根据用户访问量,对功能模块进行聚类处理,形成多个聚类。应理解,线上埋点在应用软件中特定的流程收集信息,用于跟踪应用软件被一用户多次访问的信息、被多个用户访问的信息、或者被多个用户多次访问的信息,后续用于进一步优化应用软件或是提供运营的数据支撑,包括访问数(visits)、访客数uv(visitor)、停留时长(time on site)、页面浏览数pv(page views)和跳出率(bounce rate)等。可以通过页面统计(track this virtual page view)、统计操作行为(track this button by an event)来收集信息。
78.在一个示例中,可以聚合平台类应用软件包括的多个功能模块包括第一模块和第二模块。例如,第一模块和第二模块可以为对应于不同服务平台的小程序,第一模块对应于打车小程序,第二模块可以对应于美食小程序。
79.第一模块对应于第一用户,第二模块对应于第二用户。第一模块与第一用户对应的测试价值较大,第一模块与第二用户对应的测试价值较小。
80.第一模块的第一测试用例可以基于第一用户和第二用户的访问数据生成,第二模块的第二测试用例可以根据第一用户和第二用户的访问数据生成。第一模块的第一测试用例的分布与第一用户和第二用户的访问数据量比例匹配,其中,第一用户的访问数据量分布比例较大。第二模块的第二测试用例的分布与第二用户与第一用户的访问数据量比例匹配,第二用户的访问数据量分布比例较大。由于第一用户和第二用户均为聚合平台类应用软件的用户,存在一定的相关性,因此,相比于第一模块的第一测试用例仅基于第一用户的访问数据生成的情况,或者,相比于第二模块的第二测试用例仅基于第二用户的访问数据生成的情况,提高了测试用例的测试效果。此外,第一用户比第二用户对第一模块的测试价值更大,第二用户比第一用户对第二模块的测试价值更大,基于上述的匹配关系,进一步保证了测试用例的测试效果。
81.更具体地,将线上埋点的分布与功能模块的划分匹配,并且将功能模块与线上埋点关联,这样,提高了线上埋点的监测可靠性。应理解,可以为每个功能模块关联固定数目的线上埋点或者数目相似的线上埋点,从而使得基于线上埋点监测到的用户访问量能够更准确地指示功能模块的用户价值。
82.然后,可以根据多个聚类各自包括的功能模块的数量,对所述多个聚类进行从大到小的排序。
83.然后,可以根据每个功能模块所在的聚类的排序数,确定该功能模块与重要性标签对应的功能重要性,每个功能模块所在的聚类的排序数指示该功能模块的用户价值。更具体地,可以将属于每个聚类的功能模块的重要性标签确定为该聚类的排序数。由此,减小了数据处理量,提高了确定重要性标签的效率。
84.另外,生成应用软件的测试需求与测试价值指标对应的测试价值条件,还可以包括:生成测试需求与变动相关性标签对应变动相关性条件。变动程度与变动相关性标签指示的代码变动相关性成正相关。应理解,变动相关性标签指示功能模块的代码在应用软件的版本变动时的变动程度。变动相关性标签可以指示功能模块随代码变动而变动、或功能模块不随代码变动而变动两种状态。变动相关性标签也可以指示具有功能模块随代码变动
的多种变动程度的多个状态。
85.更具体地,可以获取所述应用软件的代码与各个功能模块之间的映射关系,并且判断所述应用软件的代码是否随应用软件的版本变动而变动。如果代码随应用软件的版本变动而变动、或者变动较大,则将该代码具有所述映射关系的功能模块的变动相关性标签确定为与代码变动相关。如果不随应用软件的版本变动而变动、或者变动较小,则将该代码具有所述映射关系的功能模块的变动相关性标签确定为与代码变动不相关。由于指示代码变动相关或代码变动不相关的变动相关性标签可靠地指示了应用软件的代码是否随应用软件的版本变动的变动程度,提高了标签的标记效率。
86.更具体地,可以确定所述应用软件的版本变动前的第一代码和版本变动后的第二代码。然后,对所述第一代码和所述第二代码进行代码差异测试,判断所述第二代码相对于所述第一代码是否发生变动。由于代码差异测试能够对具有较多代码的应用软件进行高效地测试,因此提高了判断代码是否随软件版本变动而发生变动的效率。
87.另外,可以将重要性标签和变动相关性标签结合,尽管一般而言,功能重要性越高,测试价值越高,代码变动相关性越高,测试价值也越高,然而,功能重要性较高但代码变动相关性较低的功能模块与功能重要性较低但代码变动相关性较高的功能模块相比,哪个测试价值更高,取决于功能重要性和代码变动相关性各自的量化标准。
88.在另一些示例中,生成应用软件的测试需求与重要性标签对应的功能重要性条件、以及与变动相关性标签对应变动相关性条件,包括:组合各个功能模块的重要性标签和变动相关性标签,得到多个推荐场景;分别基于每个推荐场景,生成测试需求与重要性标签对应的功能重要性条件、以及与变动相关性标签对应变动相关性条件。
89.换言之,可以在多个测试用例推荐场景中,确定符合测试需求的目标推荐场景,然后,确定目标推荐场景对应的目标重要性标签和目标变动相关性标签,然后,推荐具有目标重要性标签和目标变动相关性标签的功能模块的测试用例。组合功能模块的重要性标签和变动相关性标签得到的多个测试用例推荐场景能够有效地实现推荐场景的标签化,便于确定符合测试需求的推荐场景,从而提高了测试用例的推荐效率。
90.一般性地,推荐场景的测试需求包括多个维度,多个维度包括与重要性标签对应的第一维度、以及与变动相关性标签对应的第二维度,重要性标签和变动相关性标签分别可以对应于至少一个维度,各个标签对应的标签值的组合为测试需求的测试价值条件。
91.在测试价值的数值越大指表示测试价值越大时,测试价值条件为与多个维度对应的多个阈值,符合测试价值条件的功能模块,可以是指各个测试价值的数值均不小于相应的阈值的功能模块。
92.下面以表格的方式描述和说明基于推荐场景,推荐相应的测试用例的具体示例。
93.表格1
[0094] 用户访问量相关程度用户安全相关程度代码变动相关性测试用例1879测试用例2627测试用例3231测试用例4555
…………
[0095]
在表1的示例中,用户访问量相关程度和用户安全相关程度对应于重要性标签,代码变动相关性对应于变动相关性标签。相应地,测试用例的推荐场景的测试需求的各个维度包括[用户访问量相关程度;用户安全相关程度;代码变动相关性]。
[0096]
在一个例子中,目标推荐场景的测试需求的测试价值条件为[4;5;3],则在各个测试用例中,测试用例1和测试用例2的各个维度值不低于测试需求的测试价值条件,因此,可以选择测试用例1和测试用例2,基于目标推荐场景,对应用软件进行测试。
[0097]
表格2
[0098] 功能重要性代码变动相关性测试用例159测试用例247测试用例327测试用例455
………
[0099]
在表2的示例中,功能重要性对应于重要性标签,代码变动相关性对应于变动相关性标签。相应地,测试用例的推荐场景的测试需求的各个维度包括[功能重要性;代码变动相关性]。例如,目标推荐场景的测试需求的测试价值条件为[5;7],则在各个测试用例中,测试用例1的各个维度值不低于测试需求的测试价值条件,其他的测试用例不符合测试价值条件,因此,可以选择测试用例1,基于目标推荐场景,对应用软件进行测试。
[0100]
应理解,上述的各个示例仅仅为示例性的,重要性标签对应的至少一个第一维度以及变动相关性标签对应的至少一个第二维度可以组合成丰富的测试价值条件,提高了测试用例推荐的效率和准确度。
[0101]
参照图5,示出了根据本发明的另一实施例的电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
[0102]
如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(communications interface)504、存储器(memory)506、以及通信总线508。
[0103]
其中:处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
[0104]
通信接口504,用于与其它电子设备或服务器进行通信。
[0105]
处理器502,用于执行程序510,具体可以执行上述方法实施例中的相关步骤。
[0106]
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
[0107]
处理器502可能是处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0108]
存储器506,用于存放程序510。存储器506可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0109]
程序510具体可以用于使得处理器502执行以下操作:生成应用软件的各个功能模块与测试价值指标对应的测试价值,测试价值至少指示与各个功能模块的用户访问量和/或用户安全相关程度正相关;生成应用软件的测试需求与测试价值指标对应的测试价值条
件。
[0110]
或者,程序510具体可以用于使得处理器502执行以下操作:匹配应用软件的各个功能模块的用户价值分布与各个功能模块的测试用例分布,用户价值分布指示各个功能模块的用户访问量和/或用户安全相关程度的分布,测试用例分布指示各个功能模块的测试用例的数量的分布和/或测试用例的优先级的分布;获取推荐请求,推荐请求包括应用软件的测试需求;根据数据生成方法,生成应用软件的测试需求的测试价值条件;确定测试价值符合测试价值条件的至少一个功能模块;推荐至少一个功能模块对应的测试用例。
[0111]
或者,程序510具体可以用于使得处理器502执行以下操作:获取测试请求;根据测试请求,生成测试用例的推荐请求;根据推荐请求,获取根据推荐方法推荐的测试用例;基于测试用例,对应用软件进行测试。
[0112]
此外,程序510中各步骤的具体实现可以参见上述方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0113]
需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
[0114]
上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cd rom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic或fpga)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
[0115]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
[0116]
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
技术特征:
1.一种数据生成方法,包括:生成应用软件的各个功能模块与测试价值指标对应的测试价值,所述测试价值至少指示与各个功能模块的用户访问量和/或用户安全相关程度正相关;生成所述应用软件的测试需求与所述测试价值指标对应的测试价值条件。2.根据权利要求1所述的方法,其中,所述生成应用软件的各个功能模块与测试价值指标对应的测试价值,包括:生成应用软件的各个功能模块与重要性标签对应的功能重要性和与变动相关性标签对应的变动相关性,其中,所述功能重要性与各个功能模块的用户访问量和/或用户安全相关程度正相关,所述变动相关性指示各个功能模块的代码在所述应用软件的版本变动时的变动程度。3.根据权利要求2所述的方法,其中,所述生成所述应用软件的测试需求与所述测试价值指标对应的测试价值条件,包括:生成所述应用软件的测试需求与所述重要性标签对应的功能重要性条件、以及与所述变动相关性标签对应变动相关性条件。4.根据权利要求3所述的方法,其中,所述生成所述应用软件的测试需求与所述重要性标签对应的功能重要性条件、以及与所述变动相关性标签对应变动相关性条件,包括:组合各个功能模块的重要性标签和变动相关性标签,得到多个推荐场景;分别基于每个推荐场景,生成测试需求与所述重要性标签对应的功能重要性条件、以及与所述变动相关性标签对应变动相关性条件。5.根据权利要求2所述的方法,其中,所述生成应用软件的各个功能模块与重要性标签对应的功能重要性,包括:根据应用软件的各个功能模块的线上访问量,对所述各个功能模块进行聚类处理,形成多个聚类;根据多个聚类各自包括的功能模块的数量,对所述多个聚类进行从大到小的排序;根据每个功能模块所在的聚类的排序数,确定该功能模块与重要性标签对应的功能重要性,每个功能模块所在的聚类的排序数指示该功能模块的用户价值。6.根据权利要求2所述的方法,其中,所述生成应用软件的各个功能模块与变动相关性标签对应的变动相关性,包括:获取所述应用软件的代码与各个功能模块之间的映射关系;判断所述应用软件的代码是否随所述应用软件的版本变动而变动;如果为是,则将该代码具有所述映射关系的功能模块的变动相关性标签确定为与代码变动相关;如果为否,则将该代码具有所述映射关系的功能模块的变动相关性标签确定为与代码变动不相关。7.根据权利要求6所述的方法,其中,所述判断所述应用软件的代码是否随所述应用软件的版本变动而变动,包括:确定所述应用软件的版本变动前的第一代码和版本变动后的第二代码;对所述第一代码和所述第二代码进行代码差异测试,判断所述第二代码相对于所述第一代码是否发生变动。
8.一种推荐方法,包括:匹配应用软件的各个功能模块的用户价值分布与各个功能模块的测试用例分布,所述用户价值分布指示各个功能模块的用户访问量和/或用户安全相关程度的分布,所述测试用例分布指示各个功能模块的测试用例的数量的分布和/或所述测试用例的优先级的分布;获取推荐请求,所述推荐请求包括所述应用软件的测试需求;根据权利要求1-8中任一项所述的数据生成方法,生成所述应用软件的测试需求的测试价值条件;确定测试价值符合所述测试价值条件的至少一个功能模块;推荐所述至少一个功能模块对应的测试用例。9.根据权利要求8所述的方法,其中,所述匹配应用软件的各个功能模块的用户价值分布与各个功能模块的测试用例分布,包括:调整应用软件的功能模块的划分,使得所述各个模块的用户价值分布与各个功能模块的测试用例分布匹配。10.一种测试方法,包括:获取测试请求;根据所述测试请求,生成测试用例的推荐请求;根据所述推荐请求,获取根据权利要求9所述的推荐方法推荐的测试用例;基于所述测试用例,对所述应用软件进行测试。11.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-10中任一项所述的方法对应的操作。12.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-10中任一所述的方法。
技术总结
本发明实施例提供了一种数据生成、推荐和测试方法、电子设备以及存储介质。所述数据生成方法包括:生成应用软件的各个功能模块与测试价值指标对应的测试价值,所述测试价值至少指示与各个功能模块的用户访问量和/或用户安全相关程度正相关;生成所述应用软件的测试需求与所述测试价值指标对应的测试价值条件。本发明实施例的方案提高了测试的效率和精准度。发明实施例的方案提高了测试的效率和精准度。发明实施例的方案提高了测试的效率和精准度。
技术研发人员:张晓铮 刘晓凤
受保护的技术使用者:阿里巴巴新加坡控股有限公司
技术研发日:2022.01.13
技术公布日:2022/3/8