1.一种众包测试平台测试人员推荐算法,其特征在于步骤如下:步骤1:构建任务资源库
从平台数据集中随机选取500个已完成的功能性测试类型任务,构建初始的任务资源库TRP,如公式(14)所示:式中:
Ti—第i个功能性测试类型任务的特征向量;
femi—第i个功能性测试类型任务的第m个特征;
步骤2:构建测试人员资源库从平台数据集的任务人员关系中,提取出所有参与了TRP中测试任务的测试人员,称作任务的相关测试人员,条件是测试人员已经完成过该任务且测试报告评价为优秀和高级,所述的优秀为具有5年以及以上测试经验,所述的高级为具有3年以上至5年测试经验;然后组建测试人员资源库PRP,如公式(15)、公式(16)、公式(17)所示:TaskP = {TaskP1, TaskP2,…,TaskPk} (16)式中:
PRP—任务资源库中所有任务的所有相关测试人员集合;
Pi—第i个测试人员的n维特征列向量;
chni—第i个测试人员的第n维特征;
TaskP—各个任务相关测试人员的集合;
TaskPi—第i个任务相关的测试人员集合;
TaPij—第i个任务相关的第j个测试人员;
即表示第i任务相关的测试者一定在PRP中;数据集中的任意两个任务Ti,Tj,满足|TaskPivTaskPj|≥0的关系,即表示存在某些测试人员都参与到Ti,Tj测试任务中并且提交的测试报告被评为优秀,由公式(15)、(16)和(17)可以推出公式(18),表明各个任务的相关测试人员共同组成了PRP:式中:
k=|TRP|—任务资源库中任务的个数;
步骤3:计算标杆测试者
标杆测试者也称为标准测试者,计算任务资源库中的每个任务的10个测试人员的平均特征向量Pi',将Pi'添加到标杆测试者队列PL中:式中:
Pi'—PRP对应得标杆测试者特征向量;
TaskPj—PRP的第j个测试任务的特征向量;
步骤4:生成该测试类型人员预测器生成该测试类型的人员预测器pdictor,pdictor的计算过程如公式(20)到(25)所示;
记PL为P,TRP为T,人员预测器pdictor为A;P是n*k的矩阵,T是m*k的矩阵,A是n*m的矩阵;
P = PL = (flagP1,flagP2,…,flagPk) (20)T
flagPi = ( ch1i,ch2i,…,chni) (i = 1,2,3…) (21)AT = P (25)
公式(25)使用部分数据集,包含真实的任务集和与任务相关的完成质量较好的测试者T集合,来训练出人员预测器;公式(20)等号两边同乘以矩阵T的转置矩阵T,得:T T
ATT = PT (26)公式(26)左边展开等于,如公式(27)所示:公式(26)右边展开等于,如公式(28)所示:T ‑1
记Q=TT ,使用公式(26)求解人员预测器A的关键是判断Q这个m阶方阵的逆矩阵Q 是否存在,展开式如公式(29);
当|Q|≠0时,公式(26)变形为公式(31)T ‑1
A = PTQ (31)故可求得该测试类型人员预测器pdictor,如公式(32)所示:式中:
*
Q—Q的伴随矩阵;
|Q|—Q的行列式;
步骤5:生成测试人员推荐队列步骤5a:进行硬性指标匹配所述的硬性指标包含测试人员学历、常在地、工作方式、手机设备需求信息、任务测试类型;
其中测试人员学历匹配如下表:其中工作方式匹配如下:
将任务工作方式分为五种:不可接受加班、工作日加班、周末加班、节假日加班和短期封闭,如果客户发布的任务对这方面无要求时,默认将匹配值量化为1;任务方式匹配值的计算过程如公式(33)和(34)所示;
W={w1,w2,w3,w4,w5}式中:
W—平台所有工作方式的集合;
T1—测试人员可接受的工作方式集合;
R—客户发布任务时,选择的工作方式集合;
|T1∩R|—测试者的工作方式与发布任务的工作的交集;
当MRTW=0时,表示测试人员的工作方式与任务需求的工作方式不匹配,当MRTW=1时代表测试人员的工作方式符合任务需求的工作方式;
其中常在地匹配如下:
常在地是指测试人员实际测试的地域,常在地匹配值是计算任务的常在地与人员的常在地这个硬指标的匹配值,计算过程如公式(35)和(36)所示;
area={a1,a2,a3,a4,…,an}式中:
area—平台可选常在地的集合;
T2—测试人员的常在地集合;
R—任务选择的常在地集合;
其中任务测试类型如下:
任务测试类型匹配值是任务与人员在测试类型维度上的匹配值,如公式(37)和(38)所示;
式中:
C—测试类型的集合;
T1—测试人员熟悉的测试类型;
R1—发布任务的测试类型;
其中手机设备需求信息匹配如下:手机设备需求信息用来判断任务需求设备信息与人员具有设备信息是否匹配;
定义设备需求四元组
rj={d1,d2,d3,d4}(j=1,2,…)其中,d1为设备需求的子匹配项包括设备的品牌,d2为型号,d3为操作系统版本,d4为网络环境;
RD为测试任务的设备需求集合RD={r1,r2,r3....ri}(i=1,2,…)TD为测试者的设备需求四元组集合TD={r1,r2,r3....rn}(n=1,2,…)当MVERI=0,测试人员与任务设备需求匹配不成功;当MVERI=1,测试人员与任务设备需求匹配成功;
计算了测试人员与测试任务在学历MVEB、常在地ARV、任务工作方式MRTW、设备需求信息MVERI、测试类型方面的匹配值MVTT后,使用公式(40)计算硬性需求的匹配值MVOHR;当MVOHR为0的时候,则说明该测试人员不适合这个任务,当MVOHR为1的时候,进行步骤5b;
MVOHR= MVEB *ARV* MRTW* MVERI*MVTT (40)步骤5b:进行软性指标匹配计算候选测试者与新任务的总匹配值TMVal,定义如(41)所示;
TMVal = α*Similarity+β* PTCci (41)式中:
Similarity—标杆测试者与候选测试者的相似度;
α,β—两个参数,为常数;
A—标杆测试者的软指标向量;
B—候选测试者的软指标向量;
Ai—标杆测试者的软指标向量的第i个分量;
Bi—候选测试者的软指标向量的第i个分量;
—候选测试者ci类型的任务熟练度;
ci—新任务的测试类型;
将各个测试人员的编号根据TMVal的值将前50个测试人员添加到推荐队列;
所述的软指标向量包括测试领域兴趣度FDTF、单次任务执行效率EEST和任务熟练度;
所述的测试领域兴趣度FDTF的计算公式如(4)和(5)所示:F={fi:f1,f2,…,f|F|}(i=1,2,…|F|) (4)式中:
F—测试领域的集合;
fi—任意一个测试领域;
—测试人员j对领域f_i的领域兴趣度;
—测试人员j完成领域f_i的任务数;
CTj—测试人员j完成所有领域的任务数;
所述的单次任务执行效率EEST的计算公式如(7)所示:式中:
z—放大系数;
γi—第i个时间节点与第i‑1时间节点时间增量与时间形成的夹角;
βi—第i个时间节点规定进度折线增量形成的角度;
n—时间点的个数,也是公式的迭代次数;
所述的任务熟练度的计算公式如(11)和(12)所示:C={Cj:C1,C2,…,C|C|}(j=1,2,…|C|) (11)式中:
C—测试类型的集合;
Cj—任意一个测试类型;
PTCk,j—测试者k对测试类型j的测试熟练程度;
—第i级缺陷的上限值;
fwi—第i级缺陷的权重;
fNumk,j,i—测试者k发现类型j中所有的第i级缺陷数;
min(fNumk,j,i,fMaxVali)—求fNumi与上限值的最小值的函数;max(fNumk,j,i,fMaxVali)—求fNumi与上限值的最大值的函数。