测试方法和装置技术领域
本发明涉及计算机技术,尤其涉及一种测试方法和装置。
背景技术
算法程序的执行效率是对算法程序进行测试的考核指标之一。具体
可以将基于相似数据池所构建的两不同算法程序在不同时间点上所获得
的输出数据进行比较,当获得两组差异极小的输出数据时,对比输出这
两组输出数据时算法程序的运行时间,运行时间较短的算法程序执行效
率较高。相似的,还可以将同一算法程序在不同时间点上所获得的输出
数据进行比较,从而随着该算法程序的运行时间的延长,所获得的输出
数据差异极小时,则可以将输出数据差异极小时该算法程序的运行时间
用来衡量该算法程序的执行效率。
例如:基准算法程序和实验算法程序均为向用户推荐喜好的商品,
但基准算法程序需要运行4小时获得输出数据,而实验算法程序需要运
行2小时就能获得输出数据,且两组输出数据之间的差异极小,也就是
说相似度极高,则可以测试出实验算法程序的执行效率优于基准算法程
序。
可见,对于两组算法程序的输出数据进行比较,从而确定两组输出
数据之间的差异程度是对执行效率进行测试的必要指标。现有技术中,
可以通过人工抽样的方式进行,通过对于部分输出数据进行抽烟核对数
据变化情况,来确定差异程度,但这种方式不仅需要耗费大量人工,能
核对的数据量也相对较小,同时,这种方式也不能够全面反映出两组输
出数据之间的差异,因而效率较低。
发明内容
本发明提供一种测试方法和装置,用于解决现有技术中确定不同组
输出数据之间的差异程度的方法效率较低的技术问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种测试方法,包括:
获取基准算法程序针对基准对象计算所获得的基准数据,以及获取
实验算法程序针对实验对象计算所获得的实验数据;
对比所述基准对象以及所述实验对象,获得属于基准对象与实验对
象之间的交集的相同对象;
针对每一个相同对象,计算更新率;其中更新率用于指示实验数据
相对于基准数据的变化比率;
针对各相同对象的更新率进行统计,获得统计数据;
根据所述统计数据,生成测试结果。
第二方面,提供了一种测试装置,包括:
获取模块,用于获取基准算法程序针对基准对象计算所获得的基准
数据,以及获取实验算法程序针对实验对象计算所获得的实验数据;
对比模块,用于对比所述基准对象以及所述实验对象,获得属于基
准对象与实验对象之间的交集的相同对象;
计算模块,用于针对每一个相同对象,计算更新率;其中更新率用
于指示实验数据相对于基准数据的变化比率;
统计模块,用于针对各相同对象的更新率进行统计,获得统计数据;
生成模块,用于根据所述统计数据,生成测试结果。
本实施例中,通过获取基准算法程序针对基准对象计算所获得的基
准数据,以及获取实验算法程序针对实验对象计算所获得的实验数据之
后,针对属于基准对象与实验对象之间的交集的相同对象,计算更新率,
进而根据各相同对象的更新率进行统计,获得统计数据,根据该统计数
据,生成差异程度的测试结果。由于更新率用于指示实验数据相对于基
准数据的变化比率,因而体现了基准算法程序和实验算法程序针对相同
对象的处理结果之间的差异性,相较于现有技术无需进行人工抽样,提
高了测试效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明
的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上
述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实
施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益
处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选
实施方式的目的,而并不认为是对本发明的限制。而且在整个附图
中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例一提供的一种测试方法的流程示意图;
图2为本发明实施例二提供的一种测试方法的流程示意图;
图3为本发明实施例三提供的一种测试装置的结构示意图;
图4为本发明实施例三提供的另一种测试装置的结构示意图;
图5为本发明实施例三提供的又一种测试装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附
图中显示了本公开的示例性实施例,然而应当理解,可以以各种形
式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些
实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围
完整的传达给本领域的技术人员。
下面结合附图对本发明实施例提供的测试方法和装置进行详细
描述。
实施例一
图1为本发明实施例一提供的一种测试方法的流程示意图,本实施
例所提供的方法可以由算法评测平台(Algorithm Evaluation Carrier,
AEC)执行,如图1所示,方法包括:
步骤101、获取基准算法程序针对基准对象计算所获得的基准数据,
以及获取实验算法程序针对实验对象计算所获得的实验数据。
具体的,分别运行基准算法程序和实验算法程序,其中,选定基准
算法程序的输入数据为针对基准对象bk所构建的数据集,选定实验算法
程序的输入数据为针对实验对象tk所构建的数据集。将基准算法程序针
对基准对象bk计算所获得的输出数据记为基准数据lbk,将实验算法程序
针对实验对象tk计算所获得的输出数据记为实验数据ltk。
步骤102、对比基准对象以及实验对象,获得属于基准对象与实验对
象之间的交集的相同对象。
具体的,取基准对象bk与实验对象tk之间的交集,获得相同对象k,
该相同对象的个数记为Nk。另外,还可记基准对象bk的个数为Nbk,记实
验对象tk的个数为Ntk。
步骤103、针对每一个相同对象,计算更新率。
其中,更新率用于指示实验数据相对于基准数据的变化比率。
具体的,统计相同对象k的基准数据lbk和实验数据ltk之间不同部分
的数据个数Δlk,将不同部分的数据个数Δlk与相同对象k的基准数据lbk中
的数据个数Cbk的比值l,作为相同对象k的更新率ROClk(l)。
步骤104、针对各相同对象的更新率进行统计,获得统计数据。
具体的,根据各相同对象的更新率,将相同对象划分为各个组别,
统计各组别中所包含的相同对象的个数,获得统计数据。作为一种可能
的实现方式,通过确定各相同对象k的更新率ROClk(l)所属的更新率区间,
将属于相同更新率区间的相同对象k划分为同一个组别i。统计获得每个组
别i所包含的相同对象k的个数ΔNi,其中,i=1,…,n,∑ΔNi=Nk,n为自然
数。
例如:针对相同对象k可以基于以下式进行计算,从而获得统计数
据。
![]()
其中,ROClk(Δl1),ROClk(Δl2),...,ROClk(Δln)分别表示n个组别对应的更新
率区间。
进一步,还可以统计基准对象bk与实验对象tk之间存在差异的差异对
象个数,如相同对象k所构成的子集在基准对象bk集合中的绝对补集b中
的对象个数Nb,以及相同对象k所构成的子集在实验对象tk集合中的绝对
补集t中的对象个数Nt。
步骤105、根据统计数据,生成测试结果。
具体的,测试结果可以为ΔNi与Nbk的比值,即每个组别i所包含的相
同对象k占全部基准对象bk的比例,以及Nb与Nbk的比值,即差异对象占
全部基准对象bk的比例,以及Nt与Ntk的比值,即差异对象占全部实验对
象tk的比例。
该测试结果中,相同对象的更新率的取值用于指示实验数据相对于
基准数据的变化比率,因而体现了基准算法程序和实验算法程序针对相
同对象的处理结果之间的差异性,另外,测试结果中各更新率区间内所
包含的相同对象的数量又能够较为全面的反映更新率的分布情况,根据
更新率的取值以及更新率的分布,则能够衡量出实验数据和基准数据的
差异程度。
为了清楚说明本实施例,本实施例提供了两种可能的应用场景。
在一种可能的应用场景中,实验算法程序和基准算法程序是不同的,
则采用本实施例中的方法所获得的测试结果能够体现不同算法程序针对
相同对象所获得的处理结果之间差异性。
在另一种可能的应用场景中,实验算法程序和基准算法程序是相同
的,算法程序针对用户进行计算,分别在不同时刻获得了基准数据和实
验数据,例如:采用一算法程序,对用户群进行商品的推荐,但针对同
样的用户群,在不同的时刻,该算法程序可能获得不同的推荐商品结果。
采用本实施例中的方法所获得的测试结果能够体现同一算法程序在不同
时刻所获得的处理结果之间差异性。
本实施例中,通过获取基准算法程序针对基准对象计算所获得的基
准数据,以及获取实验算法程序针对实验对象计算所获得的实验数据之
后,针对属于基准对象与实验对象之间的交集的相同对象,计算更新率,
进而根据各相同对象的更新率进行统计,获得统计数据,根据该统计数
据,生成差异程度的测试结果。由于更新率用于指示实验数据相对于基
准数据的变化比率,因而体现了基准算法程序和实验算法程序针对相同
对象的处理结果之间的差异性,相较于现有技术无需进行人工抽样,提
高了测试效率。
实施例二
图2为本发明实施例二提供的一种测试方法的流程示意图,本实施
例所提供的方法可以由AEC执行,用于基于更新率指标对实验算法程
序进行测试。
在本实施例中,提供了一种具体的应用场景,实验算法和基准
算法均为用于对网络用户推荐商品,在本实施例中,将实验算法所
针对的网络用户记为实验对象tk,实验算法所获得的为网络用户推
荐商品的集合记为实验数据ltk,将基准算法所针对的网络用户记为基
准对象bk,基准算法所获得的为网络用户推荐商品的集合记为基准数
据lbk。
如图2所示,具体方法包括:
步骤201、针对属于基准对象bk与实验对象tk之间的交集的相同对
象k,以及针对相同对象k的实验数据ltk和基准数据lbk中的相同部分的
数据进行标记。
步骤202、统计所标记的数据的个数Csk。
具体的,所统计获得的个数Csk,即为属于基准数据lbk和实验数据ltk
中的相同部分的数据个数。
步骤203、利用该Csk,计算相同对象k的基准数据lbk和实验数据ltk之
间不同部分的数据个数Δlk。
具体的,根据公式Δlk=(Cbk+Ctk-2×Csk)/2代入相同部分的数据
个数Csk,以及相同对象k的基准数据lbk中的数据个数Cbk和实验数据ltk中
的数据个数Ctk进行计算,获得相同对象k的基准数据lbk和实验数据ltk之
间不同部分的数据个数Δlk。
步骤204、利用该不同部分的数据个数Δlk,计算相同对象k的更新
率ROClk(l)。
具体的,根据公式ROClk(l)=Δlk/Cbk,代入不同部分的数据个数Δlk,
以及相同对象k的基准数据lbk中的数据个数Cbk进行计算,获得相同对象
k的更新率ROClk(l)。
步骤205、针对基准对象bk与实验对象tk之间存在差异的差异对象
进行标记。
具体的,将属于基准对象bk,且不属于实验对象tk的差异对象,标
记为消亡对象b,该消亡对象b属于相同对象k所构成的子集在基准对象
bk集合中的绝对补集。
同时,将属于实验对象tk,且不属于基准对象bk的差异对象,标记
为增长对象t,该增长对象t属于相同对象k所构成的子集在实验对象tk
集合中的绝对补集。
通过对差异对象中的消亡对象的数量进行统计,若消亡对象的数量
较多,则说明实验算法程序的覆盖性不佳。同时,在统计数据中增加差
异对象的数量,能够体现相同对象所占比例,与各更新率区间内所包含
相同对象的数量相辅助,提高了数据解释的意义。
步骤206、针对所标记的差异对象设置更新率。
具体的,设置消亡对象b的更新率ROClk(l)为-1,设置增长对象t的
更新率ROClk(l)为+1。
步骤207、统计各预设更新率区间内的相同对象k和差异对象的个数。
具体的,根据所需统计的粒度,设置所需区间。例如:可以设置15
个区间,更新率的取值在-1至+1之间,则可以在该取值范围内平均设置
15个区间。
步骤208、将统计结果作为差异程度的测试结果。
进一步,在步骤208之后,为了便于分析,还可以根据各相同对象
的更新率,计算更新率的最大值和/或更新率的最小值和/或更新率的平均
值,获得分析结果,将该分析结果和步骤208所获得的统计结果均作为
差异程度的测试结果。
本实施例中,通过获取基准算法程序针对基准对象计算所获得的基
准数据,以及获取实验算法程序针对实验对象计算所获得的实验数据之
后,针对属于基准对象与实验对象之间的交集的相同对象,计算更新率,
进而根据各相同对象的更新率,将相同对象划分为各个组别,并统计各
组别中所包含的相同对象的个数,以及统计基准对象与实验对象之间存
在差异的差异对象个数,获得统计数据,根据该统计数据,生成差异程
度的测试结果。由于更新率用于指示实验数据相对于基准数据的变化比
率,因而体现了基准算法程序和实验算法程序针对相同对象的处理结果
之间的差异性,另外,测试结果中各更新率区间内所包含的相同对象的
数量又能够较为全面的反映更新率的分布情况,根据更新率的取值以及
更新率的分布,则能够衡量出实验数据和基准数据的差异程度,相较于
现有技术无需进行人工抽样,提高了测试效率。另外,还可以通过对差
异对象中的消亡对象的数量进行统计,从而当消亡对象的数量较多时,
则测试出实验算法程序的覆盖性不佳。
实施例三
图3为本发明实施例三提供的一种测试装置的结构示意图,该装置
可以如图3所示,包括:获取模块31、对比模块32、计算模块33、统计
模块34和生成模块35。
获取模块31,用于获取基准算法程序针对基准对象计算所获得的基
准数据,以及获取实验算法程序针对实验对象计算所获得的实验数据。
对比模块32,用于对比所述基准对象以及所述实验对象,获得属于
基准对象与实验对象之间的交集的相同对象。
计算模块33,用于针对每一个相同对象,计算更新率。
其中,更新率用于指示实验数据相对于基准数据的变化比率。
统计模块34,用于针对各相同对象的更新率进行统计,获得统计数
据。
生成模块35,用于根据所述统计数据,生成测试结果。
进一步,本发明实施例三还提供了另一种测试装置,图4为本发明
实施例三提供的另一种测试装置的结构示意图,如图4所示,在图3所
提供的测试装置的基础上,计算模块33包括:计数单元331和计算单元
332。
计数单元331,用于统计相同对象k的基准数据lbk和实验数据ltk之
间不同部分的数据个数Δlk。
计算单元332,用于将所述不同部分的数据个数Δlk与所述相同对象k
的基准数据lbk中的数据个数Cbk的比值,作为所述相同对象k的更新率。
进一步,计数单元331,还可以包括:对比子单元3311和计算子单
元3312。
对比子单元3311,用于对比针对所述相同对象k的基准数据lbk和实
验数据ltk,获得属于基准数据lbk和实验数据ltk中的相同部分的数据个数
Csk。
具体的,对比子单元3311具体用于对比所述相同对象k的基准数据
lbk和实验数据ltk,对属于基准数据lbk和实验数据ltk中的相同部分的数据
进行标记;统计所标记的数据的个数获得属于基准数据lbk和实验数据ltk
中的相同部分的数据个数Csk。
计算子单元3312,用于根据公式Δlk=(Cbk+Ctk-2×Csk)/2进行
计算,获得所述相同对象k的基准数据lbk和实验数据ltk之间不同部分的
数据个数Δlk,其中Ctk为实验数据ltk中的数据个数。
进一步,本发明实施例三还提供了又一种测试装置,图5为本发明
实施例三提供的又一种测试装置的结构示意图,如图5所示,在图4所
提供的测试装置的基础上,统计模块34,包括:分组单元341和统计单
元342。
分组单元341,用于根据各相同对象的更新率,将所述相同对象划分
为各个组别。
统计单元342,用于统计各组别中所包含的所述相同对象的个数,获
得所述统计数据。
进一步,分组单元341,包括:确定子单元3411和分组子单元3412。
确定子单元3411,用于确定各相同对象的更新率所属的更新率区间;
分组子单元3412,用于将属于相同更新率区间的所述相同对象划分
为同一个组别。
进一步,统计单元342,还用于统计所述基准对象与所述实验对象之
间存在差异的差异对象个数。
统计单元342,包括:标记子单元3421和计数子单元3422。
标记子单元3421,用于将属于所述基准对象,且不属于所述实验对
象的所述差异对象,标记为消亡对象;将属于所述实验对象,且不属于
所述基准对象的所述差异对象,标记为增长对象。
计数子单元3422,用于分别统计所述消亡对象的个数,以及所述增
长对象的个数,以及统计各组别中所包含的所述相同对象的个数,获得
所述统计数据。
进一步,生成模块35,包括:第一生成单元351和第二生成单元352。
第一生成单元351,用于根据所述统计数据,计算各组别中所包含的
所述相同对象占全部所述基准对象的比例,以及计算所述差异对象占全
部所述基准对象的比例,获得计算结果;将所述计算结果作为所述测试
结果。
第二生成单元352,用于根据各相同对象的更新率,计算更新率的最
大值和/或更新率的最小值和/或更新率的平均值,获得分析结果;将所述
分析结果作为所述测试结果。
本实施例中,通过获取基准算法程序针对基准对象计算所获得的基
准数据,以及获取实验算法程序针对实验对象计算所获得的实验数据之
后,针对属于基准对象与实验对象之间的交集的相同对象,计算更新率,
进而根据各相同对象的更新率,将相同对象划分为各个组别,并统计各
组别中所包含的相同对象的个数,以及统计基准对象与实验对象之间存
在差异的差异对象个数,获得统计数据,根据该统计数据,生成差异程
度的测试结果。由于更新率用于指示实验数据相对于基准数据的变化比
率,因而体现了基准算法程序和实验算法程序针对相同对象的处理结果
之间的差异性,另外,测试结果中各更新率区间内所包含的相同对象的
数量又能够较为全面的反映更新率的分布情况,根据更新率的取值以及
更新率的分布,则能够衡量出实验数据和基准数据的差异程度,相较于
现有技术无需进行人工抽样,提高了测试效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部
或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以
存储于一计算机可读取存储介质中。该程序在执行时,执行包括上
述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁
碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,
而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,
本领域的普通技术人员应当理解:其依然可以对前述各实施例所记
载的技术方案进行修改,或者对其中部分或者全部技术特征进行等
同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本
发明各实施例技术方案的范围。