CN112052153A - 产品版本测试方法及装置 - Google Patents
产品版本测试方法及装置 Download PDFInfo
- Publication number
- CN112052153A CN112052153A CN201910492045.8A CN201910492045A CN112052153A CN 112052153 A CN112052153 A CN 112052153A CN 201910492045 A CN201910492045 A CN 201910492045A CN 112052153 A CN112052153 A CN 112052153A
- Authority
- CN
- China
- Prior art keywords
- user requests
- test
- user
- group
- product version
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请公开了一种产品版本测试方法及装置,属于计算机技术领域。所述方法包括:将多个用户请求划分为Q份用户请求;根据多个测试组中每个测试组对应的P个序列,确定每个测试组对应的P组用户请求;根据每个测试组对应的用户请求,对每个测试组中的产品版本进行测试;每个序列包括P个元素,且P个序列中的Q个元素与Q份用户请求一一对应;同一测试组对应的任意两个序列的交集为空集,不同测试组对应的任意两个序列的交集包括一个元素;P组用户请求与P个序列一一对应,每组用户请求包括对应的序列中P个元素所对应的P份用户请求。本申请解决多个测试组的测试结果的准确度较低的问题,本申请用于产品版本的测试。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种产品版本测试方法及装置。
背景技术
随着互联网的发展,互联网产品版本的快速迭代已经成为常态。运营人员往往会在发布产品的新版本之前,需要基于大量的用户请求对多个产品版本进行测试,以在该多个产品版本中选出最能够满足用户需求的目标产品版本,再将该目标产品版本作为新版本进行发布。
相关技术中,通常可以基于获取到的大量用户请求对多个测试组中的产品版本进行测试。其中,每个测试组包括多个产品版本。在对多个测试组中的产品版本进行测试时,可以首先采用一种分配方法将获取到的用户请求分为多份用户请求,并基于当前划分好的不同份的用户请求对某一测试组进行测试。之后,需要采用另一种分配方法将这些用户请求再分成多份用户请求,并基于当前划分好的不同份的用户请求对下一测试组进行测试。
但是,在对不同测试组进行测试时,要求用于对任一测试组进行测试的每份用户请求,能够均匀分布在用于为其他测试组进行测试的不同份用户请求中,这样才能保证各测试组的测试结果的准确度。而采用相关技术中的划分方式往往无法按照上述要求划分用户请求,导致多个测试组的测试结果的准确度较低。
发明内容
本申请提供了一种产品版本测试方法及装置,可以解决多个测试组的测试结果的准确度较低的问题,所述技术方案如下:
第一方面,提供了一种产品版本测试方法,所述方法包括:
将多个用户请求划分为Q份用户请求,Q=P*P,且P为素数;
根据多个测试组中每个测试组对应的P个序列,确定所述每个测试组对应的P组用户请求,所述每个测试组包括多个产品版本;
根据所述每个测试组对应的用户请求,对所述每个测试组中的产品版本进行测试;
其中,每个所述序列包括P个元素,且所述P个序列中的Q个元素与所述Q份用户请求一一对应;同一测试组对应的任意两个序列的交集为空集,不同测试组对应的任意两个序列的交集包括一个元素;所述P组用户请求与所述P个序列一一对应,每组用户请求包括对应的序列中P个元素所对应的P份用户请求。
可选地,在所述根据多个测试组中每个测试组对应的P个序列之前,所述方法还包括:
确定包括P行P列元素的目标矩阵,所述目标矩阵中的每个元素均为小于或等于Q的自然数,且任意两个元素不同;
根据所述目标矩阵,确定所述每个测试组对应的P个序列;
其中,所述多个测试组中第i个测试组对应的第j个序列中的第k个元素为:所述目标矩阵中第k行第[[(j-1)+(k-1)*(i-1)]mod P]+1列的元素,1≤i≤P,1≤j≤P,1≤k≤P,[(j-1)+(k-1)*(i-1)]mod P表示[(j-1)+(k-1)*(i-1)]对P取余数。
可选地,所述目标矩阵中,第m行第n列的元素为(m-1)*P+n-1或者(m-1)*P+n,1≤m≤P,1≤n≤P。
可选地,所述多个用户请求中的每个用户请求携带有目标编号,将所述多个用户请求划分为Q份用户请求,包括:
根据所述多个用户请求中的目标编号,将所述多个用户请求划分为所述Q份用户请求。
可选地,所述用户请求携带的所述目标编号包括:用户标识号;
或者,所述用户请求携带的所述目标编号包括:所述用户请求的标识号;
或者,所述用户请求携带的所述目标编号包括第一号码段和第二号码段,所述第一号码段包括所述用户标识号,所述第二号码段包括所述用户请求的生成日期。
可选地,所述根据所述多个用户请求中的目标编号,将所述多个用户请求划分为所述Q份用户请求,包括:
对所述每个用户请求携带的目标编号依次进行哈希处理和对Q取余处理,得到所述每个用户请求的编号;
将所述多个用户请求中编号相同的用户请求划分为同一份用户请求。
可选地,所述哈希处理包括:DJB哈希处理。
可选地,所述根据所述多个用户请求中的目标编号,将所述多个用户请求划分为所述Q份用户请求,包括:
采用生成随机数的方法,对所述每个用户请求携带的目标编号进行处理,以得到所述每个用户请求的编号;
将所述多个用户请求中编号相同的用户请求划分为同一份用户请求。
第二方面,提供了一种产品版本测试装置,所述产品版本测试装置包括:
划分模块,用于将多个用户请求划分为Q份用户请求,Q=P*P,且P为素数;
第一确定模块,用于根据多个测试组中每个测试组对应的P个序列,确定所述每个测试组对应的P组用户请求,所述每个测试组包括多个产品版本;
测试模块,用于根据所述每个测试组对应的用户请求,对所述每个测试组中的产品版本进行测试;
其中,每个所述序列包括P个元素,且所述P个序列中的Q个元素与所述Q份用户请求一一对应;同一测试组对应的任意两个序列的交集为空集,不同测试组对应的任意两个序列的交集包括一个元素;所述P组用户请求与所述P个序列一一对应,每组用户请求包括对应的序列中P个元素所对应的P份用户请求。
可选地,所述产品版本测试装置还包括:
第二确定模块,用于确定包括P行P列元素的目标矩阵,所述目标矩阵中的每个元素均为小于或等于Q的自然数,且任意两个元素不同;
第三确定模块,用于根据所述目标矩阵,确定所述每个测试组对应的P个序列;
其中,所述多个测试组中第i个测试组对应的第j个序列中的第k个元素为:所述目标矩阵中第k行第[[(j-1)+(k-1)*(i-1)]mod P]+1列的元素,1≤i≤P,1≤j≤P,1≤k≤P,[(j-1)+(k-1)*(i-1)]mod P表示[(j-1)+(k-1)*(i-1)]对P取余数。
可选地,所述目标矩阵中,第m行第n列的元素为(m-1)*P+n-1或者(m-1)*P+n,1≤m≤P,1≤n≤P。
可选地,所述划分模块包括:
划分子模块,用于根据所述多个用户请求中的目标编号,将所述多个用户请求划分为所述Q份用户请求。
可选地,所述用户请求携带的所述目标编号包括:用户标识号;
或者,所述用户请求携带的所述目标编号包括:所述用户请求的标识号;
或者,所述用户请求携带的所述目标编号包括第一号码段和第二号码段,所述第一号码段包括所述用户标识号,所述第二号码段包括所述用户请求的生成日期。
可选地,所述划分子模块用于:
对所述每个用户请求携带的目标编号依次进行哈希处理和对Q取余处理,得到所述每个用户请求的编号;
将所述多个用户请求中编号相同的用户请求划分为同一份用户请求。
可选地,所述哈希处理包括:DJB哈希处理。
可选地,所述划分子模块用于:
采用生成随机数的方法,对所述每个用户请求携带的目标编号进行处理,以得到所述每个用户请求的编号;
将所述多个用户请求中编号相同的用户请求划分为同一份用户请求。
第三方面,提供了一种产品版本测试装置,所述产品版本测试装置包括:处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现第一方面所述的产品版本测试方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现第一方面所述的产品版本测试方法。
第五方面,提供了一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行第一方面所述的产品版本测试方法。
本申请提供的技术方案带来的有益效果至少包括:
本发明实施例提供的产品版本测试方法中,在将多个用户请求划分为Q份用户请求后,根据每个测试组对应的P个序列确定了每个测试组对应的P组用户请求。由于多个测试组中同一测试组对应的任意两个序列的交集为空集,因此,同一测试组对应的各组用户请求不同。又由于不同测试组对应的任意两个序列的交集包括一个元素,因此,不同测试组对应的任一两组用户请求的交集仅包括一份数据,从而使得每个测试组对应的每组用户请求均分至其他测试组对应的所有组用户请求中。这样一来,确定出的各个测试组对应的用户请求正交,从而使得根据测试组对应的用户请求对测试组进行测试的准确度较高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种AB测试的示意图;
图2为本发明实施例提供的一种多个测试组的示意图;
图3为本发明实施例提供的一种产品版本测试方法的流程图;
图4为本发明实施例提供的另一种产品版本测试方法的流程图;
图5为本发明实施例提供的一种多个测试组对应的序列的示意图;
图6为本发明实施例还提供的一种产品版本测试装置的结构示意图;
图7为本发明实施例提供的另一种产品版本测试装置的结构示意图;
图8为本发明实施例提供的一种划分模块的结构示意图;
图9为本发明实施例提供的一种服务器的结构示意图;
图10为本发明示例性实施例提供的一种终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
随着互联网的发展,互联网产品版本的快速迭代已经成为常态。运营人员往往需要基于大量的用户请求对多个产品版本进行测试,以在该多个产品版本中选出最能够满足用户需求的目标产品版本。上述测试的过程可以称为AB测试。
示例地,图1为本发明实施例提供的一种AB测试的示意图,如图1所示,在对多个产品版本(如产品版本A和产品版本B)进行测试时,需要采集大量的用户请求,并将这些用户请求划分为多组用户请求(如图1中划分为第一组用户请求和第二组用户请求)。之后,可以采用第一组用户请求对产品版本A进行测试,以确定用户对产品版本A的偏好度;以及采用第二组用户请求对产品版本B进行测试,以确定用户对产品版本A的偏好度。最后,可以根据用户对每个产品版本的偏好度,在该多个产品版本中筛选出用户偏好度最高的目标产品版本。
需要说明的是,上述产品版本A和产品版本B的策略不同(此时产品版本A和产品版本B在某些参数上具有差异)。比如,产品版本A和产品版本B向用户推送信息的方式不同,或者,产品版本A和产品版本B与用户交互的方式不同,或者,产品版本A和产品版本B的界面不同,或者,产品版本A和产品版本B对应的优惠活动不同。图1中以产品版本A的界面与产品版本B的界面不同为例。
用户对产品版本的偏好度可以通过各种参数来体现,比如,可以通过用户对上述界面的点击率体现。当用户对产品版本A的界面的点击率大于对产品版本B的界面的点击率时,表明用户对产品版本A的偏好度较高。
在进行AB测试的时候,通常会采用大量用户请求对多个测试组(也可以称为测试层)的产品版本进行测试。其中,每个测试组均包括多个产品版本,并且,这些产品版本可以包括一个产品的不同版本,当然也可以包括多个产品的不同版本,本发明实施例对此不作限定。
示例地,图2为本发明实施例提供的一种多个测试组的示意图,如图2所示,在对测试组1进行测试时,可以首先采用一种分配方法将获取到的用户请求分为多份用户请求(如图2中测试组1对应的第1份用户请求、第2份用户请求和第3份用户请求),并基于当前划分好的不同份的用户请求对测试组1进行测试。之后,需要采用另一种分配方法将这些用户请求再分成多份用户请求(如图2中测试组2对应的第1份用户请求、第2份用户请求和第3份用户请求),并基于当前划分好的不同份的用户请求对测试组2进行测试。
但是,在对不同测试组进行测试时,往往要求用于对不同测试组进行测试的用户请求之间正交。也即是,要求用于对任一测试组进行测试的每份用户请求,能够均匀分布在用于为其他测试组进行测试的不同份用户请求中。这样一来,才能保证各测试组的测试结果的准确度。比如,测试组1对应的第1份用户请求需要均匀的分布在测试组2对应的第1份用户请求、第2份用户请求和第3份用户请求中。而采用相关技术中的划分方式往往无法按照上述要求划分用户请求,比如测试组1对应的第1份用户请求仅分布在测试组2对应的第1份用户请求和第2份用户请求中,而并未分布在测试组2对应的第3份用户请求中,这样就导致多个测试组的测试结果的准确度较低。
本发明实施例提供了一种产品版本测试方法,该产品版本测试方法可以用产品版本测试装置,该产品版本测试方法中采用的划分方式能够按照上述要求划分用户请求,从而使各个测试组的测试结果的准确度较高。
示例地,图3为本发明实施例提供的一种产品版本测试方法的流程图,如图3所示,该产品版本测试方法可以包括:
步骤301、将多个用户请求划分为Q份用户请求,Q=P*P,且P为素数。
步骤302、根据多个测试组中每个测试组对应的P个序列,确定每个测试组对应的P组用户请求,每个测试组包括多个产品版本。
其中,每个序列包括P个元素,且P个序列中的Q个元素与Q份用户请求一一对应;同一测试组对应的任意两个序列的交集为空集,不同测试组对应的任意两个序列的交集包括一个元素;P组用户请求与P个序列一一对应,每组用户请求包括对应的序列中P个元素所对应的P份用户请求。
步骤303、根据每个测试组对应的用户请求,对该每个测试组中的产品版本进行测试。
在步骤303中,产品版本测试装置可以根据每个测试组对应的用户请求,对每个测试组中的产品版本进行AB测试,以确定每个测试组中最符合用户需求的产品版本。
综上所述,本发明实施例提供的产品版本测试方法中,在将多个用户请求划分为Q份用户请求后,根据每个测试组对应的P个序列确定了每个测试组对应的P组用户请求。由于多个测试组中同一测试组对应的任意两个序列的交集为空集,因此,同一测试组对应的各组用户请求不同。又由于不同测试组对应的任意两个序列的交集包括一个元素,因此,不同测试组对应的任一两组用户请求的交集仅包括一份数据,从而使得每个测试组对应的每组用户请求均分至其他测试组对应的所有组用户请求中。这样一来,确定出的各个测试组对应的用户请求正交,从而使得根据测试组对应的用户请求对测试组进行测试的准确度较高。
另外,相关技术中对多个测试组进行测试时,需要对用户请求进行多次划分,导致产品版本测试的效率较低。而在本发明实施例提供的产品版本测试方法中,无论需要对多少个测试组进行测试,都仅需执行一次对用户请求进行一次划分(详见步骤301),这样就使得本发明实施例提供的产品版本测试方法的测试效率较高。
图4为本发明实施例提供的另一种产品版本测试方法的流程图,如图4所示,该产品版本测试方法可以包括:
步骤401、确定包括P行P列元素的目标矩阵,且目标矩阵中的任意两个元素不同。
需要说明的是,本发明实施例提供的产品版本测试方法可以由产品版本测试装置执行。在步骤401中,产品版本测试装置需要首先确定一个素数P,之后,再确定包括P行P列的目标矩阵。
其中,素数为也称质数,在大于1的自然数中,除了1和素数本身以外,该素数不再有其他的因数。比如,本发明实施例中的P可以为2、3或5等,本发明实施例中以P为3为例。
上述目标矩阵可以为任意一个包括P行P列元素的矩阵,并且,该目标矩阵中的每个元素均为小于或等于Q的自然数,且目标矩阵中的各个元素互不相同。示例地,本发明实施例中,该目标矩阵中第m行第n列的元素可以为(m-1)*P+n-1,1≤m≤P,1≤n≤P,此时,若P=3,则该目标矩阵可以为:可选地,目标矩阵中第m行第n列的元素也可以为(m-1)*P+n,此时,若P=3,则该目标矩阵可以为:
步骤402、根据目标矩阵,确定多个测试组中每个测试组对应的P个序列。
多个测试组中每个测试组可以包括多个产品版本,该多个产品版本可以包括同一产品的多个版本,也可以包括不同产品的多个版本。每个测试组对应的每个序列可以包括上述目标矩阵中的P个元素,那么每个测试组对应的P个序列可以包括上述目标矩阵中的Q个元素。Q=P*P,也即Q等于P与P的乘积。
在步骤402中,产品版本测试装置可以根据步骤401中得到的目标矩阵,依次计算每个测试组对应的每个序列中的每个元素。示例地,产品版本测试装置若需要计算多个测试组中第i个测试组对应的第j个序列中的第k个元素,则产品版本测试装置可以将目标矩阵中第k行第[[(j-1)+(k-1)*(i-1)]mod P]+1列的元素作为该第k个元素,其中,1≤i≤P,1≤j≤P,1≤k≤P,[(j-1)+(k-1)*(i-1)]mod P表示[(j-1)+(k-1)*(i-1)]对P取余数。
例如,当产品版本测试装置需要计算第1个测试组对应的第1个序列中的第1个元素时,产品版本测试装置可以确定当前i=1,j=1且k=1,此时,产品版本测试装置可以将目标矩阵中第1行第1列元素作为该第1个测试组对应的第1个序列中的第1个元素。当产品版本测试装置需要计算第2个测试组对应的第3个序列中的第3个元素时,产品版本测试装置可以确定当前i=2,j=3且k=3,此时,产品版本测试装置可以将目标矩阵中第3行第2列元素作为该第2个测试组对应的第3个序列中的第3个元素。
示例地,图5为本发明实施例提供的一种多个测试组对应的序列的示意图。需要说明的是,图5中以多个测试组包括三个测试组为例。可选地,该多个测试组的个数还可以为其他值,如多个测试组的个数为2或4等。
请参考图5,每个测试组可以对应三个序列,比如测试组1对应有序列1、序列2和序列3,测试组2对应有序列4、序列5和序列6,测试组3对应有序列7、序列8和序列9。其中,序列1包括:元素0、元素3和元素6,序列2包括:元素1、元素4和元素7,序列3包括:元素2、元素5和元素8,序列4包括:元素0、元素4和元素8,序列5包括:元素1、元素5和元素6,序列6包括:元素2、元素3和元素7,序列7包括:元素0、元素5和元素7,序列8包括:元素1、元素3和元素8,序列9包括:元素2、元素4和元素6。
一方面,同一测试组对应的任意两个序列的交集为空集,例如,图5中测试组1对应的序列1、序列2和序列3中,任意两个序列均不包括相同的元素,因此,任意两个序列的交集为空集。
另一方面,不同测试组对应的任意两个序列的交集包括一个元素。例如,图5中测试组1对应的序列1和测试组2对应的序列1仅同时包括元素0,其他元素均不相同,因此,测试组1对应的序列1和测试组2对应的序列1的交集仅包括一个元素。同理,测试组1对应的序列1和测试组2对应的序列2的交集仅包括一个元素,测试组1对应的序列1和测试组2对应的序列3的交集也仅包括一个元素。可以看出,测试组1对应的序列1中的元素均分至测试组2对应的各个序列中,每个测试组对应的序列1中的元素都均分至其他测试组对应的各个序列中。
需要说明的是,得到本发明实施例提供的多个测试组对应的序列的方式可以有多种,本发明实施例中以产品版本测试装置采用步骤401和步骤402所示的方法得到每个测试组对应的P个序列为例。可选地,也可以是产品版本测试装置直接接收工作人员输入的每个测试组对应的P个序列。
还需要说明的是,上述实施例中以1为最小计数为例。可选地,上述实施例中也可以以0为最小计数,此时,多个测试组中的第1个测试组可以称为第0个测试组,第1个序列的标识可以称为第0个序列,序列中的第1个元素可以称为第0个元素,目标矩阵的第1行可以称为第0行,目标矩阵的第1列可以称为第0列。并且,多个测试组中第I个测试组对应的第J个序列中的第K个元素为:目标矩阵中第K行第[(J+K*I)mod P]列的元素,0≤I≤P-1,0≤J≤P-1,0≤K≤P-1,(J+K*I)mod P表示(J+K*I)对P取余数。
可选地,图5中的多个测试组除了包括测试组1、2和3之外,还可以包括测试组4(图5中未示出),该测试组4可以对应有序列10、序列11和序列12。其中,序列10包括:元素0、元素1和元素2,序列11包括:元素3、元素4和元素5,序列12包括:元素6、元素7和元素8。
步骤403、将多个用户请求划分为Q份用户请求。
需要说明的是,该多个用户请求可以是预先获取到的,也可以是实时的获取到的,本发明实施例对此不作限定。在步骤403中产品版本测试装置需要将该多个用户请求大致均分为Q份用户请求。
示例地,每个用户请求均可以携带有目标编号,产品版本测试装置在将多个用户请求划分为Q份用户请求时,可以根据多个用户请求中的目标编号,将多个用户请求划分为Q份用户请求。其中,目标编号可以包括:用户标识号,不同用户发出的用户请求所携带的目标编号不同;或者,用户请求的目标编号包括:用户请求的标识号,此时不同用户请求的目标编号不同;或者,用户请求携带的目标编号包括第一号码段和第二号码段,该第一号码段包括用户标识号,第二号码段包括用户请求的生成日期。当然,该目标编号还可以是其他的编号,只要根据该目标编号能够将多个用户请求大致均匀的划分为Q份用户请求即可,本发明实施例对此不作限定。
一方面,在根据多个用户请求中的目标编号,将多个用户请求划分为Q份用户请求时,产品版本测试装置可以对每个用户请求携带的目标编号依次进行哈希处理和对Q取余处理(取余处理也称为取模处理),得到每个用户请求的编号。之后,产品版本测试装置将多个用户请求中编号相同的用户请求划分为同一份用户请求。
需要说明的是,在对每个用户请求携带的目标编号进行哈希处理和对Q取余处理后,产品版本测试装置得到的每个用户请求的编号均小于Q,且生成的所有用户请求的编号共包括Q种编号。例如,用户请求的编号可以为:0、1、2、3、4、5、6、7或8。
可选地,上述哈希处理可以包括:DJB哈希处理,当然也可以是其他哈希处理的方法,比如Murmur哈希处理,本发明实施例对此不作限定。其中,Murmur哈希处理和DJB哈希处理为两种不同的哈希处理方式,且DJB哈希处理由数学家丹尼尔·伯恩斯坦(DanielJ.Bernstein)发明。
另一方面,产品版本测试装置在根据多个用户请求中的目标编号,将多个用户请求划分为Q份用户请求时,可以不采用哈希处理和对Q取余处理的方法。比如,产品版本测试装置可以采用生成随机数的方法,对每个用户请求携带的目标编号进行处理,以得到每个用户请求的编号,之后,再将多个用户请求中编号相同的用户请求划分为同一份用户请求。需要说明的是,在采用生成随机数的方法得到用户请求的编号时,生成的用户请求的编号也可以小于Q,当然也可以是小于或等于Q,但需要保证生成的所有用户请求的编号共包括Q种编号。
步骤404、根据多个测试组中每个测试组对应的P个序列,确定每个测试组对应的P组用户请求,每个测试组包括多个产品版本。
需要说明的是,步骤402中产品版本测试装置确定出的每个测试组对应的P个序列包括Q个元素,该Q个元素可以与步骤403中划分得到的Q份用户请求一一对应。比如,Q份用户请求的编号可以分别为0、1、2、3、4、5、6、7和8,Q个元素也可以分别为0、1、2、3、4、5、6、7和8,则可以认为每份用户请求的编号与其对应的元素的值相同。又比如,Q份用户请求的编号可以分别为0、1、2、3、4、5、6、7和8,Q个元素也可以分别为1、2、3、4、5、6、7、8和9,则可以认为每份用户请求的编号与其对应的元素的值的差为-1。
步骤404中确定出的每个测试组对应的P组用户请求可以与该测试组对应的P个序列一一对应,该P组用户请求中的每组用户请求可以包括:对应的序列中P个元素所对应的P份用户请求。
步骤405、根据每个测试组对应的用户请求,对该每个测试组中的产品版本进行测试。
产品版本测试装置在得到每个测试组对应的P组用户请求后,可以基于该测试组对应的用户请求,对该测试组中的产品版本进行AB测试,以确定每个测试组中最符合用户需求的产品版本。
并且,由于同一测试组对应的任意两个序列的交集为空集,因此,同一测试组对应的任一两组用户请求的交集也为空集。由于不同测试组对应的任意两个序列的交集包括一个元素,因此,不同测试组对应的任意两组用户请求的交集仅包括一份用户请求。可见,采用本发明实施例中的分组方法所得到的多个测试组的用户请求的正交性较好,基于这些用户请求对测试组中的产品版本进行测试的准确度较高。
本发明实施例提供的方法中,步骤402中同一测试组对应的任意两个序列的交集为空集是具有理论基础的。以下将对同一测试组对应的任意两个序列的交集为空集进行证明。
假设有元素同时出现在同一测试组对应的两个序列中,那么这个元素一定分别都是目标矩阵中的同一行元素(假设是第k行元素),相应的这两个元素也分别是这两个序列中的第k个元素。
假设这两个元素中,一个元素为第i个测试组对应的第j个序列中的第k个元素,另一元素为第i个测试组对应的第j’个序列中的第k个元素,那么可以得出:[[(j-1)+(k-1)*(i-1)]mod P]+1=[[(j’-1)+(k-1)*(i-1)]mod P]+1,进而得到[(j-1)+(k-1)*(i-1)]modP=[(j’-1)+(k-1)*(i-1)]mod P。其中,1≤j’≤P,j’≠j。
假设(j-1)+(k-1)*(i-1)=n*P+r,r为(j-1)+(k-1)*(i-1)对P取余得到的数值,n为(j-1)+(k-1)*(i-1)除以P后得到的数值的整数部分。那么(j’-1)+(k-1)*(i-1)=n’*P+r,n’为(j’-1)+(k-1)*(i-1)除以P后得到的数值的整数部分。根据(j-1)+(k-1)*(i-1)=n*P+r和(j’-1)+(k-1)*(i-1)=n’*P+r,可以得出:j+(k-1)*(i-1)-n*P=j’+(k-1)*(i-1)-n’*P。
将该等式进行简化可以得到:k*(i-i)=j'-j+(n-n')*P。根据该公式可以确定:k*(i-i)对P取余数得到的值与j’-j对P取余数得到的值相同。而k*(i-i)对P取余数得到的值为0,因此,j’-j对P取余数得到的值也为0。由于j’≠j,且j’-j<P,因此,上述假设不成立,且不会有元素同时出现在同一测试组对应的两个序列中。
本发明实施例提供的方法中,步骤402中不同测试组对应的任意两个序列的交集包括一个元素也是具有理论基础的。以下将对不同测试组对应的任意两个序列的交集包括一个元素进行证明。
假设有元素同时出现在两个序列中,那么这个元素一定分别都是目标矩阵中的同一行元素(假设是第k行元素),相应的这两个元素也分别是这两个序列中的第k个元素。假设这两个元素中,一个元素为第i个测试组对应的第j个序列中的第k个元素,另一元素为第i’个测试组对应的第j’个序列中的第k个元素,那么可以得出:[[(j-1)+(k-1)*(i-1)]modP]+1=[[(j’-1)+(k-1)*(i’-1)]mod P]+1,[(j-1)+(k-1)*(i-1)]mod P=[(j’-1)+(k-1)*(i’-1)]mod P。其中,1≤i’≤P,1≤j’≤P,i’≠i。
假设(j-1)+(k-1)*(i-1)=n*P+r,r为(j-1)+(k-1)*(i-1)对P取余得到的数值,n为(j-1)+(k-1)*(i-1)除以P后得到的数值的整数部分。那么(j’-1)+(k-1)*(i’-1)=n’*P+r,n’为(j’-1)+(k-1)*(i’-1)除以P后得到的数值的整数部分。根据(j-1)+(k-1)*(i-1)=n*P+r和(j’-1)+(k-1)*(i’-1)=n’*P+r,可以得出:(j-1)+(k-1)*(i-1)-n*P=(j’-1)+(k-1)*(i’-1)-n’*P。
将该等式进行简化可以得到:k*(i-i')=j'-j+(n-n')*P。根据该公式可以确定:k*(i-i’)对P取余数得到的值与j’-j对P取余数得到的值相同。i,i',j',j都是常数,令i-i'=a,a不等于0,j'-j=c,那么可以认为a*k对P取余数得到的值与c对P取余数得到的值相同,而P是一个素数,所以k只有唯一解。因此,第i个测试组对应的第j个序列与第i’个测试组对应的第j’个序列的交集只有一个元素。
综上所述,本发明实施例提供的产品版本测试方法中,在将多个用户请求划分为Q份用户请求后,根据每个测试组对应的P个序列确定了每个测试组对应的P组用户请求。由于多个测试组中同一测试组对应的任意两个序列的交集为空集,因此,同一测试组对应的各组用户请求不同。又由于不同测试组对应的任意两个序列的交集包括一个元素,因此,不同测试组对应的任一两组用户请求的交集仅包括一份数据,从而使得每个测试组对应的每组用户请求均分至其他测试组对应的所有组用户请求中。这样一来,确定出的各个测试组对应的用户请求正交,从而使得根据测试组对应的用户请求对测试组进行测试的准确度较高。
另外,相关技术中对多个测试组进行测试时,需要对用户请求进行多次划分,导致产品版本测试的效率较低。而在本发明实施例提供的产品版本测试方法中,无论需要对多少个测试组进行测试,都仅需执行一次对用户请求进行一次划分(详见步骤301),这样就使得本发明实施例提供的产品版本测试方法的测试效率较高。
图6为本发明实施例还提供的一种产品版本测试装置的结构示意图,如图6所示,该产品版本测试装置60可以包括:
划分模块601,用于将多个用户请求划分为Q份用户请求,Q=P*P,且P为素数;
第一确定模块602,用于根据多个测试组中每个测试组对应的P个序列,确定每个测试组对应的P组用户请求,每个测试组包括多个产品版本;
测试模块603,用于根据每个测试组对应的用户请求,对该每个测试组中的产品版本进行测试;
其中,每个序列包括P个元素,且P个序列中的Q个元素与Q份用户请求一一对应;同一测试组对应的任意两个序列的交集为空集,不同测试组对应的任意两个序列的交集包括一个元素;P组用户请求与P个序列一一对应,每组用户请求包括对应的序列中P个元素所对应的P份用户请求。
综上所述,本发明实施例提供的产品版本测试装置中,划分模块在将多个用户请求划分为Q份用户请求后,第一确定模块能够根据每个测试组对应的P个序列确定了每个测试组对应的P组用户请求。由于多个测试组中同一测试组对应的任意两个序列的交集为空集,因此,同一测试组对应的各组用户请求不同。又由于不同测试组对应的任意两个序列的交集包括一个元素,因此,不同测试组对应的任一两组用户请求的交集仅包括一份数据,从而使得每个测试组对应的每组用户请求均分至其他测试组对应的所有组用户请求中。这样一来,确定出的各个测试组对应的用户请求正交,从而使得根据测试组对应的用户请求对测试组进行测试的准确度较高。
另外,相关技术中对多个测试组进行测试时,需要对用户请求进行多次划分,导致产品版本测试的效率较低。而在本发明实施例提供的产品版本测试方法中,对多个测试组进行测试时,仅需执行一次对用户请求进行一次划分,这样就使得本发明实施例提供的产品版本测试方法的测试效率较高。
可选地,图7为本发明实施例提供的另一种产品版本测试装置的结构示意图,如图7所示,在图6的基础上,该产品版本测试装置60还可以包括:
第二确定模块604,用于确定包括P行P列元素的目标矩阵,目标矩阵中的每个元素均为小于或等于Q的自然数,且任意两个元素不同;
第三确定模块605,用于根据目标矩阵,确定每个测试组对应的P个序列;
其中,多个测试组中第i个测试组对应的第j个序列中的第k个元素为:目标矩阵中第k行第[[(j-1)+(k-1)*(i-1)]mod P]+1列的元素,1≤i≤P,1≤j≤P,1≤k≤P,[(j-1)+(k-1)*(i-1)]mod P表示[(j-1)+(k-1)*(i-1)]对P取余数。
可选地,目标矩阵中,第m行第n列的元素为(m-1)*P+n-1或者(m-1)*P+n,1≤m≤P,1≤n≤P。
可选地,图8为本发明实施例提供的一种划分模块的结构示意图,如图8所示,划分模块601可以包括:划分子模块6011,用于根据多个用户请求中的目标编号,将多个用户请求划分为Q份用户请求。
可选地,所述用户请求携带的所述目标编号包括:用户标识号;或者,所述用户请求携带的所述目标编号包括:所述用户请求的标识号;或者,所述用户请求携带的所述目标编号包括第一号码段和第二号码段,所述第一号码段包括所述用户标识号,所述第二号码段包括所述用户请求的生成日期。
可选地,划分子模块6011用于:对每个用户请求携带的目标编号依次进行哈希处理和对Q取余处理,得到每个用户请求的编号;将多个用户请求中编号相同的用户请求划分为同一份用户请求。
可选地,哈希处理包括:DJB哈希处理。
可选地,划分子模块6011用于:采用生成随机数的方法,对每个用户请求携带的目标编号进行处理,以得到每个用户请求的编号;将多个用户请求中编号相同的用户请求划分为同一份用户请求。
综上所述,本发明实施例提供的产品版本测试装置中,划分模块在将多个用户请求划分为Q份用户请求后,第一确定模块能够根据每个测试组对应的P个序列确定了每个测试组对应的P组用户请求。由于多个测试组中同一测试组对应的任意两个序列的交集为空集,因此,同一测试组对应的各组用户请求不同。又由于不同测试组对应的任意两个序列的交集包括一个元素,因此,不同测试组对应的任一两组用户请求的交集仅包括一份数据,从而使得每个测试组对应的每组用户请求均分至其他测试组对应的所有组用户请求中。这样一来,确定出的各个测试组对应的用户请求正交,从而使得根据测试组对应的用户请求对测试组进行测试的准确度较高。
本发明实施例还提供了一种产品版本测试装置,所述产品版本测试装置包括:处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行本发明实施例提供的产品版本测试方法,如图3或图4所示的产品版本测试方法。
示例地,本发明实施例提供的产品版本测试装置可以为服务器。图9为本发明实施例提供的一种服务器的结构示意图。具体来讲:
服务器800包括中央处理单元(CPU)801、包括随机存取存储器(RAM)802和只读存储器(ROM)803的系统存储器804,以及连接系统存储器804和中央处理单元801的系统总线805。服务器800还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)806,和用于存储操作系统813、应用程序814和其他程序模块815的大容量存储设备807。
基本输入/输出系统806包括有用于显示信息的显示器808和用于用户输入信息的诸如鼠标、键盘之类的输入设备809。其中显示器808和输入设备809都通过连接到系统总线805的输入输出控制器810连接到中央处理单元801。基本输入/输出系统806还可以包括输入输出控制器810以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器810还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备807通过连接到系统总线805的大容量存储控制器(未示出)连接到中央处理单元801。大容量存储设备807及其相关联的计算机可读介质为服务器800提供非易失性存储。也就是说,大容量存储设备807可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器804和大容量存储设备807可以统称为存储器。
根据本发明的各种实施例,服务器800还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器800可以通过连接在系统总线805上的网络接口单元811连接到网络812,或者说,也可以使用网络接口单元811来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
又示例地,本发明实施例提供的产品版本测试装置可以为终端。
图10为本发明示例性实施例提供的一种终端的结构框图。该终端900可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)和PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本申请中方法实施例提供的视频推荐方法。
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、触摸显示屏905、摄像头906、音频电路907、定位组件908和电源909中的至少一种。
外围设备接口903可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置终端900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位终端900的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件908可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源909用于为终端900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。
加速度传感器911可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制触摸显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器912可以检测终端900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对终端900的3D动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在终端900的侧边框和/或触摸显示屏905的下层。当压力传感器913设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在触摸显示屏905的下层时,由处理器901根据用户对触摸显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件和菜单控件中的至少一种。
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置终端900的正面、背面或侧面。当终端900上设置有物理按键或厂商Logo时,指纹传感器914可以与物理按键或厂商Logo集成在一起。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制触摸显示屏905的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏905的显示亮度;当环境光强度较低时,调低触摸显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器916,也称距离传感器,通常设置在终端900的前面板。接近传感器916用于采集用户与终端900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户与终端900的正面之间的距离逐渐变小时,由处理器901控制触摸显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户与终端900的正面之间的距离逐渐变大时,由处理器901控制触摸显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图10中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现本发明实施例提供的产品版本测试方法,如图3或图4所示的产品版本测试方法。
本发明实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本发明实施例提供的产品版本测试方法,如图3或图4所示的产品版本测试方法。
在本公开中,术语“第一”、“第二”、“第三”和“第四”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。
需要说明的是,本发明实施例提供的方法实施例能够与相应的装置实施例相互参考,本发明实施例对此不做限定。本发明实施例提供的方法实施例步骤的先后顺序能够进行适当调整,步骤也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种产品版本测试方法,其特征在于,所述方法包括:
将多个用户请求划分为Q份用户请求,Q=P*P,且P为素数;
根据多个测试组中每个测试组对应的P个序列,确定所述每个测试组对应的P组用户请求,所述每个测试组包括多个产品版本;
根据所述每个测试组对应的用户请求,对所述每个测试组中的产品版本进行测试;
其中,每个所述序列包括P个元素,且所述P个序列中的Q个元素与所述Q份用户请求一一对应;同一测试组对应的任意两个序列的交集为空集,不同测试组对应的任意两个序列的交集包括一个元素;所述P组用户请求与所述P个序列一一对应,每组用户请求包括对应的序列中P个元素所对应的P份用户请求。
2.根据权利要求1所述的方法,其特征在于,在所述根据多个测试组中每个测试组对应的P个序列之前,所述方法还包括:
确定包括P行P列元素的目标矩阵,所述目标矩阵中的每个元素均为小于或等于Q的自然数,且任意两个元素不同;
根据所述目标矩阵,确定所述每个测试组对应的P个序列;
其中,所述多个测试组中第i个测试组对应的第j个序列中的第k个元素为:所述目标矩阵中第k行第[[(j-1)+(k-1)*(i-1)]mod P]+1列的元素,1≤i≤P,1≤j≤P,1≤k≤P,[(j-1)+(k-1)*(i-1)]mod P表示[(j-1)+(k-1)*(i-1)]对P取余数。
3.根据权利要求2所述的方法,其特征在于,所述目标矩阵中,第m行第n列的元素为(m-1)*P+n-1或者(m-1)*P+n,1≤m≤P,1≤n≤P。
4.根据权利要求1至3任一所述的方法,其特征在于,所述多个用户请求中的每个用户请求携带有目标编号,将所述多个用户请求划分为Q份用户请求,包括:
根据所述多个用户请求中的目标编号,将所述多个用户请求划分为所述Q份用户请求。
5.根据权利要求4所述的方法,其特征在于,
所述用户请求携带的所述目标编号包括:用户标识号;
或者,所述用户请求携带的所述目标编号包括:所述用户请求的标识号;
或者,所述用户请求携带的所述目标编号包括第一号码段和第二号码段,所述第一号码段包括所述用户标识号,所述第二号码段包括所述用户请求的生成日期。
6.根据权利要求4所述的方法,其特征在于,所述根据所述多个用户请求中的目标编号,将所述多个用户请求划分为所述Q份用户请求,包括:
对所述每个用户请求携带的目标编号依次进行哈希处理和对Q取余处理,得到所述每个用户请求的编号;
将所述多个用户请求中编号相同的用户请求划分为同一份用户请求。
7.根据权利要求4所述的方法,其特征在于,所述根据所述多个用户请求中的目标编号,将所述多个用户请求划分为所述Q份用户请求,包括:
采用生成随机数的方法,对所述每个用户请求携带的目标编号进行处理,以得到所述每个用户请求的编号;
将所述多个用户请求中编号相同的用户请求划分为同一份用户请求。
8.一种产品版本测试装置,其特征在于,所述产品版本测试装置包括:
划分模块,用于将多个用户请求划分为Q份用户请求,Q=P*P,且P为素数;
第一确定模块,用于根据多个测试组中每个测试组对应的P个序列,确定所述每个测试组对应的P组用户请求,所述每个测试组包括多个产品版本;
测试模块,用于根据所述每个测试组对应的用户请求,对所述每个测试组中的产品版本进行测试;
其中,每个所述序列包括P个元素,且所述P个序列中的Q个元素与所述Q份用户请求一一对应;同一测试组对应的任意两个序列的交集为空集,不同测试组对应的任意两个序列的交集包括一个元素;所述P组用户请求与所述P个序列一一对应,每组用户请求包括对应的序列中P个元素所对应的P份用户请求。
9.一种产品版本测试装置,其特征在于,所述产品版本测试装置包括:处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1-7任一所述的产品版本测试方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现权利要求1-7任一所述的产品版本测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910492045.8A CN112052153B (zh) | 2019-06-06 | 2019-06-06 | 产品版本测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910492045.8A CN112052153B (zh) | 2019-06-06 | 2019-06-06 | 产品版本测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112052153A true CN112052153A (zh) | 2020-12-08 |
CN112052153B CN112052153B (zh) | 2023-05-16 |
Family
ID=73609017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910492045.8A Active CN112052153B (zh) | 2019-06-06 | 2019-06-06 | 产品版本测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052153B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486795A (zh) * | 2020-12-21 | 2021-03-12 | 北京安兔兔科技有限公司 | 一种运算性能测试方法、装置、电子设备及存储介质 |
CN112882929A (zh) * | 2021-02-02 | 2021-06-01 | 网易(杭州)网络有限公司 | 测试方法、装置、计算机设备和存储介质 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5159600A (en) * | 1990-01-02 | 1992-10-27 | At&T Bell Laboratories | Arrangement for generating an optimal set of verification test cases |
US20030208744A1 (en) * | 2002-05-06 | 2003-11-06 | Microsoft Corporation | Method and system for generating test matrices for software programs |
US20100083053A1 (en) * | 2008-10-01 | 2010-04-01 | Narayanan Ajikumar Thaitharani | System and method for generating an orthogonal array for software testing |
CN102063374A (zh) * | 2011-01-07 | 2011-05-18 | 南京大学 | 一种使用半监督信息进行聚类的回归测试用例选择方法 |
CN102073483A (zh) * | 2009-11-23 | 2011-05-25 | 中兴通讯股份有限公司 | 一种生成正交测试用例的方法及装置 |
CN102521131A (zh) * | 2011-12-13 | 2012-06-27 | 南京大学 | 一种基于动态基本块的缺陷定位测试用例约简方法 |
US20120259576A1 (en) * | 2011-04-07 | 2012-10-11 | Infosys Technologies, Ltd. | System and method for efficient test case generation using input dependency information |
US20150026522A1 (en) * | 2013-07-19 | 2015-01-22 | Dawnray Young | Systems and methods for mobile application a/b testing |
CN105302710A (zh) * | 2014-07-03 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 一种确定需要回归测试的测试用例的方法和装置 |
CN106484607A (zh) * | 2015-09-01 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 测试方法和装置 |
US20170168924A1 (en) * | 2008-07-22 | 2017-06-15 | Webtrends, Inc. | Method and system for web-site testing |
CN106911515A (zh) * | 2017-03-20 | 2017-06-30 | 微鲸科技有限公司 | 基于用户分组的测试方法及装置 |
US20180131811A1 (en) * | 2016-11-09 | 2018-05-10 | Scorch Agency LLC | System And Methods For Routing Communication Requests To Dedicated Agents |
US20180239693A1 (en) * | 2017-02-21 | 2018-08-23 | International Business Machines Corporation | Testing web applications using clusters |
CN109558310A (zh) * | 2018-10-25 | 2019-04-02 | 北京仁科互动网络技术有限公司 | 测试用例生成方法及装置 |
CN109582579A (zh) * | 2018-11-30 | 2019-04-05 | 腾讯音乐娱乐科技(深圳)有限公司 | 应用程序测试方法、装置、电子设备及存储介质 |
CN109710511A (zh) * | 2018-12-04 | 2019-05-03 | 北京达佳互联信息技术有限公司 | Ab测试方法、装置、服务器及存储介质 |
CN109739757A (zh) * | 2018-12-28 | 2019-05-10 | 微梦创科网络科技(中国)有限公司 | 一种ab测试方法及装置 |
-
2019
- 2019-06-06 CN CN201910492045.8A patent/CN112052153B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5159600A (en) * | 1990-01-02 | 1992-10-27 | At&T Bell Laboratories | Arrangement for generating an optimal set of verification test cases |
US20030208744A1 (en) * | 2002-05-06 | 2003-11-06 | Microsoft Corporation | Method and system for generating test matrices for software programs |
US20170168924A1 (en) * | 2008-07-22 | 2017-06-15 | Webtrends, Inc. | Method and system for web-site testing |
US20100083053A1 (en) * | 2008-10-01 | 2010-04-01 | Narayanan Ajikumar Thaitharani | System and method for generating an orthogonal array for software testing |
CN102073483A (zh) * | 2009-11-23 | 2011-05-25 | 中兴通讯股份有限公司 | 一种生成正交测试用例的方法及装置 |
CN102063374A (zh) * | 2011-01-07 | 2011-05-18 | 南京大学 | 一种使用半监督信息进行聚类的回归测试用例选择方法 |
US20120259576A1 (en) * | 2011-04-07 | 2012-10-11 | Infosys Technologies, Ltd. | System and method for efficient test case generation using input dependency information |
CN102521131A (zh) * | 2011-12-13 | 2012-06-27 | 南京大学 | 一种基于动态基本块的缺陷定位测试用例约简方法 |
US20150026522A1 (en) * | 2013-07-19 | 2015-01-22 | Dawnray Young | Systems and methods for mobile application a/b testing |
CN105302710A (zh) * | 2014-07-03 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 一种确定需要回归测试的测试用例的方法和装置 |
CN106484607A (zh) * | 2015-09-01 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 测试方法和装置 |
US20180131811A1 (en) * | 2016-11-09 | 2018-05-10 | Scorch Agency LLC | System And Methods For Routing Communication Requests To Dedicated Agents |
US20180239693A1 (en) * | 2017-02-21 | 2018-08-23 | International Business Machines Corporation | Testing web applications using clusters |
CN106911515A (zh) * | 2017-03-20 | 2017-06-30 | 微鲸科技有限公司 | 基于用户分组的测试方法及装置 |
CN109558310A (zh) * | 2018-10-25 | 2019-04-02 | 北京仁科互动网络技术有限公司 | 测试用例生成方法及装置 |
CN109582579A (zh) * | 2018-11-30 | 2019-04-05 | 腾讯音乐娱乐科技(深圳)有限公司 | 应用程序测试方法、装置、电子设备及存储介质 |
CN109710511A (zh) * | 2018-12-04 | 2019-05-03 | 北京达佳互联信息技术有限公司 | Ab测试方法、装置、服务器及存储介质 |
CN109739757A (zh) * | 2018-12-28 | 2019-05-10 | 微梦创科网络科技(中国)有限公司 | 一种ab测试方法及装置 |
Non-Patent Citations (3)
Title |
---|
XC5683: "测试基础---测试用例之正交试验", 《HTTPS://BLOG.CSDN.NET/XC5683/ARTICLE/DETAILS/8129955》 * |
李良明;王志坚;刘磊;: "基于用户需求的构件行为测试", 高技术通讯 * |
李颖: "NXP手机系统软件测试用例设计方法的改进与实施", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486795A (zh) * | 2020-12-21 | 2021-03-12 | 北京安兔兔科技有限公司 | 一种运算性能测试方法、装置、电子设备及存储介质 |
CN112882929A (zh) * | 2021-02-02 | 2021-06-01 | 网易(杭州)网络有限公司 | 测试方法、装置、计算机设备和存储介质 |
CN112882929B (zh) * | 2021-02-02 | 2023-08-08 | 网易(杭州)网络有限公司 | 测试方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112052153B (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110674022B (zh) | 行为数据获取方法、装置及存储介质 | |
CN108304265B (zh) | 内存管理方法、装置及存储介质 | |
CN110841285B (zh) | 界面元素的显示方法、装置、计算机设备及存储介质 | |
CN109166150B (zh) | 获取位姿的方法、装置存储介质 | |
CN109816042B (zh) | 数据分类模型训练的方法、装置、电子设备和存储介质 | |
CN108132790B (zh) | 检测无用代码的方法、装置及计算机存储介质 | |
CN110659127A (zh) | 一种处理任务的方法、装置及系统 | |
CN109102811B (zh) | 音频指纹的生成方法、装置及存储介质 | |
CN110797042B (zh) | 音频处理方法、装置及存储介质 | |
CN110673944B (zh) | 执行任务的方法和装置 | |
CN111813322B (zh) | 存储池的创建方法、装置、设备及存储介质 | |
CN111914985B (zh) | 深度学习网络模型的配置方法、装置及存储介质 | |
CN112052153B (zh) | 产品版本测试方法及装置 | |
CN110971840B (zh) | 视频贴图方法及装置、计算机设备及存储介质 | |
CN111008083B (zh) | 页面通信方法、装置、电子设备及存储介质 | |
CN112181915B (zh) | 执行业务的方法、装置、终端和存储介质 | |
CN111881423A (zh) | 限制功能使用授权方法、装置、系统 | |
CN111193604A (zh) | 虚拟网络功能链的部署方法、装置、设备及存储介质 | |
CN111369434B (zh) | 拼接视频封面生成的方法、装置、设备和存储介质 | |
CN110264292A (zh) | 确定有效时间段的方法、装置及存储介质 | |
CN115713101A (zh) | 并行处理方法及装置 | |
CN114594885A (zh) | 应用图标的管理方法、装置、设备及计算机可读存储介质 | |
CN114140105A (zh) | 资源转移方法、装置、设备及计算机可读存储介质 | |
CN111258673A (zh) | 快应用显示方法及终端设备 | |
CN114071119B (zh) | 资源的测试方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |