黄静旋,林怡坤,邓志敏
(广东软件测评中心,广东 广州 510663)
众包测试(crowdsourcing test)简称众测,其作为一种不同于传统软件测试方式的新方法,引起了学术界和工业界的广泛关注[1-6]。与传统的软件测试相比,众测主要是将测试任务(test task)在线上发布,由众测工人(crowd worker)领取任务并完成。众测工人可以处于不同地域,且其测试经验和测试技能参差不齐。在完成测试以后,众测工人会提交测试报告(test report)来描述测试软件的行为、执行结果和存在的缺陷,开发维护人员会根据测试报告来复现并修改软件的缺陷或问题。该方式可以提供多元的测试环境,提高缺陷检测效果,至关重要的一点是可以降低测试费用。
现有针对众测的研究大多是围绕众测流程、众测平台以及众测的安全可靠性等方面展开的,但在实际的众测实施过程中,众测工人是整个任务测试过程中极其重要的一部分,而目前对于众测工人的研究较少。因此,本文主要研究众测工人在众测实施过程中发挥的作用。为了解众测工人的能力水平和参与测试的积极性,本文提出以下3 个方面的问题:①众测工人的能力水平如何量化判定?②如何有效地对众测工人的能力水平进行等级划分?③众测工人参与测试任务的积极性受哪些因素影响?
基于上述问题,采用以下4 个指标来定义众测工人的能力水平,分别是任务接收率、任务难度等级、任务完成率和测试报告质量良好率。任务接收率是通过众测工人在平台测试任务中接收的任务数量来计算的;任务难度等级是根据任务难度,按照非常难、难、一般、容易、非常容易5个等级划分的;任务完成率是通过众测工人完成测试任务的数量进行计算的;报告质量良好率是通过众测工人提交的测试用例数量和缺陷数量综合计算的。
本文提出一种计算众测工人能力水平的指标和方法,能够同时考虑任务接收率、任务难度等级、任务完成率和报告质量良好率4 方面指标。首先,通过平台实际数据,利用SPSS 工具对数据进行分析,得到成分得分系数矩阵,将其作为指标的权重系数;然后,根据权重系数可计算出参与任务的众测工人能力水平值。在此基础上,根据众测工人的能力水平值可更好地对众测工人进行等级划分,为其在进行任务选择时提供参考,并且可以提高众测工人参与任务的积极性。最后,本文通过调查问卷方式对500 多名众测工人的信息进行统计,分析了影响众测工人参与任务积极性水平的因素,并针对上述影响因素提出一种针对众测工人的管理模式,同时提出将其运用于实际项目中的一个具体实践方法。
随着很多众测平台(例如uTest、Pay4Bugs、百度众测、群智众测等)的兴起,测试活动不再拘束于面对面和点对点,而是可以分布在不同时间、不同地点、不同设备上面,从而使测试活动变得更加高效、全面。
崔强等[7]主要关注如何为新的测试任务选择一组合适的众测工人,从而提高缺陷检测率和需求关键点覆盖度。通过实验验证,发现众测工人的主动性、相关性和多样性从不同角度影响着测试质量,并给出了其度量方法。但是研究忽视了众测工人自身的能力水平对于测试任务的影响,仅仅只是通过相关性来描述众测工人与任务之间的关系。
唐文君等[8]主要讨论了基于强化学习的Web 服务众测任务分派方法,采用该方法可将众包测试任务分派给合适的众测工人,以较低成本获得更好的测试结果。其根据众测工人执行任务的历史时间,通过统计条件概率计算众测工人在任务期限内完成任务的概率,并将其作为众测工人的信誉值来反映众测工人质量,同时在每次任务分派完成后对众测工人信誉值进行更新。但该方法对于众测工人的评价比较单一,并不能完整、充分地体现众测工人的能力水平。
Cheng 等[9]主要对移动应用众包测试质量影响因素进行分析,针对移动应用众包测试质量影响因素复杂多样致使测试质量难以评估的问题,提出一种基于斯皮尔曼相关系数分析的测试质量影响因素分析方法。该方法主要围绕众包平台、测试任务和众测工人三方面展开,其中并没有过多地对众测工人的能力和积极性水平进行分析,而是将众测工人的测试经验、专业能力、信誉度、接收任务数、完成任务数作为众多因素之一进行考虑。
从以上文献可知,已有研究的侧重点主要是众测流程、众测平台以及众测的安全可靠性等方面内容,并没有认真考虑到众测工人这一具体群体在实际平台运行和项目任务完成过程中起到的作用,其作用可能是积极的,也可能是消极的。如果处理不好,甚至可能造成整个平台或任务的瘫痪。
随着工业环境下系统软件的快速发展,软件测试越来越受到人们的重视。但传统的软件测试在一些时候并不能满足测试的基本需求,因此众测引起了研究者们的注意。众测通过将众包的概念引入到软件测试领域,能够帮助软件开发人员和测试工程师发现更多的软件缺陷[10-12]。下面介绍众测的相关概念以及基本流程。
本文涉及众测中的4 个基本概念,分别是众测平台、测试任务、众测工人、测试报告。
众测平台:指一个集合各方需求的综合性平台。众测发包方可以发布需求,众测接包方可以接收任务,众测平台作为媒介为发包方和接包方提供信息交流的平台。
测试任务:指发布在众测平台上的软件测试任务,其包含了发布者的基本信息以及对于测试需求的说明和相关文档信息。
众测工人:指众测平台招募的参与测试任务的工作人员。众测平台可以根据众测工人完成测试任务的数量及质量对其进行等级划分,以便更好地完成测试任务。
测试报告:众测工人在完成测试任务后会形成一个文字说明,其中包含测试类型、测试说明、测试输入、操作步骤、软件行为描述、软件执行结果以及缺陷标记等内容。
如图1 所示,众测是由众测平台、众测接包方和众测发包方三方组成的。众测发包方将需要进行测试的软件需求发布在众测平台上,众测平台在接受发包方的请求后,将需求发布在众测广场,发包方的需求经过处理后形成众测任务。众测工人作为众测接包方,根据任务类型以及自身喜好选择接收任务与否。当众测工人接收任务后,按照发包方的需求对系统软件进行测试。如果工人的测试能力较差,接收一些不了解的任务后,可能会出现任务无法完成或完成质量较差的情况;如果工人的测试能力一般,也可能会出现测试任务无法完成或完成质量较差的情况,但是相比前者而言,任务的完成率有一定提升,报告的良好率也会更加符合发包方的需求;如果工人的测试能力较强,且选择的任务也符合自己的测试方向,则任务的完成率以及报告的良好率将会有大幅提升,且在满足发包方需求方面会做的更好。最终在完成测试后,众测工人形成测试报告并提交到众测平台。因为测试报告含有大量冗余和重复的信息,平台方会对报告进行融合处理,并对众测工人提交的每一份测试报告作出质量评价,形成一份最终的测试鉴定报告反馈给众测发包方,自此一个项目的众测基本流程执行完毕。
Fig.1 Basic flow of crowdsourcing test图1 众测基本流程
软件测试需求方在群智众测平台发布众测任务,任务需要一定数量的众测工人参与进来,但是众测任务在测试难度和测试需求上会有不同要求。考虑到众测工人的能力水平参差不齐,而在实际群智平台运营工作中,平台只是对任务的接收和完成情况进行了统计。通过计算对众测工人进行等级划分,从一个侧面可以反映出众测工人的能力水平。但是,这种做法缺乏对测试报告质量的考查,以及任务难度对于众测工人能力的影响。如果将报告质量和任务难度考虑进去,众测工人的能力水平等级划分更能体现出一定的科学性。因此,本文提出判定众测工人能力水平的4 个指标,分别是任务接收率、任务难度等级、任务完成率和报告质量良好率。
首先,众测工人在平台中项目任务接收数量ti(i=1,2,…,n)与实际项目数量ni(i=1,2,…,n)的比值就是任务接收率ri(i=1,2,…,n)。公式如下:
其次,众测工人可能因为各种原因,无法正常按时按质完成接收的任务。因此,对完成的任务数量fi(i=1,2,…,m,m ≤n)进行统计,完成的任务数量与接收任务数量之间的比值就是任务完成率ci(i=1,2,…,m,m ≤n)。公式如下:
再次,平台在进行任务发布时,对任务难度按照非常难、难、一般、容易、非常容易5 个等级hi(i=1,2,3,4,5)进行划分,数字越大,等级越高。每一个等级对应一个分数区间,分别是:0.8
最后,根据测试工人提交的测试报告,统计所有报告中的测试用例数量oi(i=1,2,…,a)以及缺陷数量pi(i=1,2,…,b),并对其进行综合计算,计算结果即为报告质量良好率q。公式如下:
其中,Wi表示众测工人的能力水平值。
从公式(7)中可以看出,众测工人的能力水平是由4个方面因素共同决定的,无论是众测新工人,还是老工人,熟能生巧,当接包达到一定数量,其熟练度和技巧性也就可以达到一定水平,所以采用接收率来表示众测工人的工作承受能力。但是,接收率并不能完全表示众测工人的能力水平,测试任务不同,难度也不同,有的任务需要一定的知识储备。因此,任务的复杂度体现了众测工人的能力水平。同样,任务完成情况也可以体现众测工人的能力水平。因为在实际的工作过程中,很多众测工人对自己的能力认识不足,同时对任务的评估也不足,当接收了任务以后,由于难度系数较大,或者测试项目不对口,很难及时完成,有的则是直接选择放弃,因此任务完成率可以作为衡量个人能力水平的一个指标。最后,在任务接收率和完成率达到一定要求时,测试报告质量良好率是检测众测工人能力水平的另一个指标。因为在完成某一项任务时都要提交一定数量的测试报告或者缺陷报告,在提交的这些报告中,每个人针对项目的测试需求都会编写相应的测试用例,用例的多少可以反映一定的测试覆盖率。覆盖率越大,则找出问题缺陷的可能性越大,发现的缺陷越多,则说明在测试过程中工人的测试能力突出,且对于测试项目的认识也很迅速。因此,结合测试用例数量和缺陷数量可以给出报告质量的优良等级。
因此,通过上述分析,本文以任务接收率、任务难度等级、任务完成率和报告质量良好率4 个方面作为衡量众测工人能力水平的4 个指标,其中任务接收率和任务完成率是整体指标,而任务难度等级和报告质量良好率是个体差异性指标。
如何对众测工人能力水平值进行精准判别,本文提出了以任务接收率、任务复杂度、任务完成率和报告质量良好率作为衡量众测工人能力水平的4 个指标。为了确定任务接收率、任务难度等级、任务完成率和报告质量良好率4 个影响因素是如何影响众测工人能力水平的,分别给定4 个权重系数:α、β、γ、δ,则可以得到针对单个众测工人的能力水平值Wi(i=1,2,…,n),公式如下:
利用SPSS 工具中的因子分析方法对群智众测平台50个实际测试任务中153 名众测工人的实际数据进行分析,可以得到如表1所示的KMO 和巴特利特检验结果。
Table 1 KMO and Bartlett test table表1 KMO与巴特利特检验表
KMO 检验是为了验证所使用的数据是否适合采用因子分析方法进行分析处理,其取值范围是0~1。其中,0.9~1 表示极好,0.8~0.9 表示很好,0.7~0.8 表示中等,0.6~0.7 表示一般,0.5~0.6 表示可接受,0~0.5 表示不可接受。本文数据得到的KMO 取值为0.576,表明数据可以进行因子分析。而巴特利特检验是为了检验数据是否满足服从多元正态分布的总体要求,表中显著性值为0.000,小于0.05,拒绝各变量独立的假设,变量间具有较强的相关性。同时说明数据来自正态分布总体,适合作进一步分析处理。
变量共同度表示各变量中所含原始信息能被提取的公因子解释的程度,采用主成分分析方法,结果如表2 所示。因为本文数据的变量共同度基本都在85%以上,所以提取的公因子对各变量的解释能力很强。
Table 2 Common factor variance table表2 公因子方差表
总方差解释如表3 所示。“初始特征值”一列显示只有前两个特征值大于1,所以SPSS 只选择了前两个主成分。“提取载荷平方和”一列显示第一主成分的方差贡献率是57.112%,前两个主成分的方差占所有主成分方差的85.025%。由此可见,选前两个主成分已足够替代原来的变量,基本上涵盖了原变量的大部分信息。而“旋转载荷平方和”一列显示的是旋转以后的因子提取结果,与未旋转之前差别不大。
Table 3 Total variance explaination table表3 总方差解释表
最终得到成分得分系数矩阵如表4 所示,据此可以直接写出各公因子的表达式。需要说明的是,在表达式中各个变量已经不是原始变量,而是标准化变量。但是本文只考虑各个指标变量是如何影响众测工人能力水平的,以及各指标变量在总量中占比多少。因此,在这里仅仅只是将成分得分系数作为权重系数来看待,以解释各个指标在实际运用中所占比重,并不需要考虑如何将原始变量转换为标准化变量。而在实际计算中,不考虑各指标的负作用,在表4 中成分2 的任务接收率出现了-0.416,所以本文仅用成分1 的成分得分系数作为各指标的权重系数α、β、γ、δ的值。因此,公式(8)可以书写如下:
Table 4 Component score coefficient matrix table表4 成分得分系数矩阵表
对于一个平台任务,众测工人接收与否纯粹属于个人主观意愿,虽然接收率的高低对于完成率有积极影响,但其只能反映众测工人接收任务意愿的高低。因此,接收率系数α为0.206。通过对数据进行分析,可以知道测试任务完成率是任务完成情况的重要指标之一。如果一个任务在平台发布以后却完成不了,只能说明平台的测试效果并不是很好。就众测工人个人而言,任务完成率与其个人完成率息息相关。因此,可以根据众测工人的个人任务完成率来推定整个平台的任务完成率,完成率系数β 为0.147。虽然任务的接收率越高,任务的完成率也随之增加,但是因为任务难度较大,即使接收率很高,完成率也不一定高,所以任务完成率是受到接收率和任务难度等级共同影响的,并且任务难度等级对众测工人的影响较大。因此,众测工人能够解决更难的问题,表明其能力越强,所以任务难度等级系数γ 为0.445。报告质量的好坏是对于测试任务最终的鉴定,所以如果报告质量太差,上述指标即使全部达标,也很难说明测试的有效性。测试任务的整体报告质量良好率与个人报告质量良好率成正比,因此报告质量系数是0.462。
众测工人等级需要按照一定的层次进行划分,该层次划分是按照任务接收率、任务难度等级、任务完成率和报告质量良好率分别根据权重系数计算得到的。如图2 所示,将众测工人划分为5 个等级,分别是测试小新、测试初级、测试中级、测试能手和测试达人。每一个等级又作了进一步划分,测试小新是V1~V15,测试初级是V16~V35,测试中级是V36~V80,测试能手是V81~V120,测试达人是V121++。众测工人的等级需要进行赋分,每一个等级之间相差10分,因此测试小新的分值是0~150,测试初级的分值是160~350,测试中级的分值是360~800,测试能手的分值是810~1 200,测试达人的分值是1 210++。每一个众测任务在发布时也会进行赋分,难度较大的赋分较高,一般为30分,难度中等的赋分一般为20 分,难度较低的赋分一般为10 分。众测工人接收任务,积极参与测试并完成,在提交测试报告后,通过计算即可知道参与该任务的众测工人能力水平值。按照从高到低的顺序对工人赋予分值,并加到众测工人的原能力水平值中,分值积累达到相应级别即可晋级。
Fig.2 Crowdsourcing test worker ability level grade division图2 众测工人能力水平等级划分
下面对单个众测工人能力水平值的计算进行说明,假设某一任务的接收率为21%,完成率为71.4%,难度等级为0.4,假设众测工人A 的报告质量良好率为60%,众测工人B 的报告质量良好率为40%,众测工人C 的报告质量良好率为80%,通过公式(9)的计算可知众测工人A、B、C 在任务测试过程中的能力水平值WA、WB、WC分别为0.603 4、0.511 0、0.695 8。
难度等级为0.4 的测试任务属于中等难度等级,可以考虑对任务赋20 分。首先计算出所有众测工人的能力水平值之和W总,然后计算出每名众测工人能力水平值的占比R,最后通过占比计算出所获取的分数值S,将分数值加到原有的能力水平值之上。公式如下:
假设众测工人A 是测试初级,原始能力水平值已达到358 分,加上这次任务所获得的6.66 分,就已经满360 分,成功晋级测试中级V36;众测工人B 是测试小新,所处等级是V12,对应分数是128 分,此次加上最新的任务分数已达到130分以上,则可以提升到V13。
从一个测试小新到达测试达人的时间周期大约是两年,中间需要经过测试初级、测试中级和测试能手3 个阶段。通过这几个阶段,众测工人的能力和经验都有了大幅提升。将众测工人进行等级划分是为了更好地服务于平台的任务划分,使工人能够更高效地完成任务,而不是将简单任务和难度较高的任务一视同仁。因为当众测工人的能力水平达不到要求时,可能无法按时保质保量地完成测试任务。如果众测工人始终满足于接收一些简单任务,得到的分数会很少,可能会长期停留在初级阶段。但是如果接收难度等级较高的任务,众测工人获取的分数也会增多,等级就会逐步提升。任务的难度等级与经济效益成正比,因此工人等级越高,平台也会更倾向于向其推荐难度更大且效益更高的测试任务。
在分析众测工人的能力水平影响因素基础上,对其能力水平值进行描述和计算,并且结合实际项目将众测工人等级划分的方法进行阐述。这种等级划分不仅能解决众测工人在选择任务时的科学性问题,而且能避免在简单任务中出现高薪酬的情况,在一定程度上还可以作为众测工人参与测试任务积极性的判断标准。因为众测工人的能力水平值越高,参与完成测试的任务则越多,说明工人参与的积极性水平越高。在群智众测平台推广前期,部分项目出现了众测工人不愿意参与接收任务的情况,任务的完成率也达不到目标要求,导致项目几乎陷入停滞状态,所以从中可以看出众测工人参与任务的积极性对于众测平台的重要性。因此,下文将对众测工人的积极性水平影响因素和人员基本状况进行分析,针对如何提高众测工人积极性水平提出相关解决办法及其实现途径。
在群智众测平台初期推广运营过程中,平台上发布了一系列openEuler 相关的测试任务以及其他的软件测试任务。因为测试任务存在一定难度和理解的复杂性,所以出现了人员参与测试积极性低迷的现象。通过观察与分析,总结出了以下5个主要影响因素,如图3所示。
Fig.3 Analysis of the influence of workers' enthusiasm in crowdsourcing test图3 众测工人积极性影响分析
(1)众测工人的能力水平较差,对测试领域的知识技能不了解,怯于接收任务。众测是一个新兴事物,大多数人没有接触过,也不具备测试相关的业务知识。测试入门简单,但是想要做好不容易,大多数人考虑到可能涉及领域知识,不敢轻易尝试。
(2)对平台任务接收模式不了解。平台从部署到推广时间较短,众测工人对部分测试任务相关的业务流程不是很熟悉。因此,参与进来的新人较少,只有一些早期参与测试的人员在坚持,造成平台人员成长速度过于缓慢。
(3)部分测试任务较繁琐,难度较大。一些参与进来的众测工人对软件的操作并不是很熟悉,有的任务甚至需要进行代码编程。当开始的工作难度超出预期后,部分众测工人因为能力限制,没有办法靠自己能力独立解决,会直接选择放弃任务。
(4)测试任务费用发放不及时,工人失去继续做任务的信心。平台业务审核较为缓慢,造成费用发放周期拉长,使众测工人出现了对平台的信任危机,担心自己的付出得不到回报。
(5)众测工人过于分散,信息获取存在差异,难以形成向心力。测试人员的信息获取均是以网络聊天的形式进行的,一些信息在理解上可能存在差异。因此,平台与工人参与测试的积极性较低可能还有其他方面的因人之间难以进行良好的互动,工人与工人之间也难以形成有效的经验沟通和借鉴。
通过对众测工人积极性水平影响因素进行分析,了解了5 个方面的影响因素。为了探究5 个影响因素的合理性,采用问卷调查的方式对群智众测平台招募的500 多名线上众测工人进行信息采集和统计分析,包括职业、学历、专业、对软件测试的了解程度、参与众测的目的、继续参与众测的意愿共6 个方面。对于职业、学历和专业的统计是为了更好地了解参与测试人员的职业相关性及其对于任务的理解程度,可以大致了解众测工人的能力水平;统计对软件测试的了解程度是为了确定众测工人的熟练程度占比,从而很好地划分人员层次;参与众测的目的是最能体现众测工人想法和意愿的一个指标,该指标主要是为了确定有多少人是为了通过测试获取更丰厚的回报,同时这一指标也与工人继续参与众测的意愿有一定关联性,只要愿意继续参与众测,就可以更加方便地进行管理划分。
众测工人的职业与学历分布情况如图4 所示,其中以学生为主,占比86.7%,自由工作者、专门从事测评工作的人员分别占比3.3%,一般的上班人员占比6.7%;学历层次以本科为主,占比41.7%,其次是硕士和专科,分别占比25%和30%,博士占比3.3%。从该数据可以看出,众测工人的学历层次并不低,有的怯于接收任务,可能只是欠缺相关领域的知识储备,所以需要组织一些相关的知识培训。学生在校的自由时间相对较多,作为低收入群体,其对于参与众测任务通常较为积极,因为参与众测可以获得较为可观的经济收入。同时,以学生作为主体进行测试,作为平台方可以大大降低用工成本。专门从事测评相关工作的人员在处理难度较大且繁琐的任务方面具有十分丰富的经验,平台方应积极发掘其潜在的价值,将其组织起来,以提升测试人员的稳定性。
Fig.4 Occupational and educational distribution of the workers in the crowdsourcing test图4 众测工人职业与学历分布情况
通过对众测工人的专业进行统计,可以发现85%以上的人员均是与计算机或软件相关的专业,如图5 所示。如果将计算机科学与技术(占比26.3%)和软件工程(占比33.3%)专业人员均考虑成具有培养潜力的软件测试人员,比例达到了59.6%,说明参与众测平台测试任务的人员对于软件测试具有一定了解,但是了解的程度不同。通过问卷调查可以知道,对软件测试“了解”的占59.6%,“了解一些”的占36.8%,“不了解”的仅占3.6%。因此,上述两组数据吻合度很高,充分说明了众测工人的潜在价值。虽然因为一些信息的沟通不畅,可能导致在部分任务中的人员凝聚力不够,并出现理解上的偏差,加上工人在地理位置上较为分散,所以参与测试的积极性受到了一定影响,但是可以积极调动工人参与平台任务的积极性,并使其加强对平台运营模式的了解,从而提升其能力水平值。素。通过分析众测工人参与众测的目的可以知道,“挣点额外收入”的比例达到了83.3%,“提升自己能力的比例”为71.7%,体验一下不同工作的比例为18.3%,所以众测工人的收入发放缓慢以及部分测试任务的费用达不到众测工人的预期应该是影响其积极性的主要因素。虽然平台前期的一些任务参与积极性达不到预期,且费用可能发放不及时以及一些测试任务的费用较低,但是通过调查发现,愿意继续留下来进行测试的人员比例仍达到了90%以上。通过对人员成分的分析,可以知道上文对影响众测工人积极性因素的分析是正确的,也是符合预期的结果,所以只要采取一定措施,可以极大地提高众测工人参与测试的积极性。
Fig.5 Professional distribution of workers in the crowdsourcing test图5 众测工人专业分布情况
通过对众测工人积极性影响因素以及组成结构的分析,可以很容易地知道,由于众测工人比较分散,管理难度较大,在任务发布后,其对任务的认识可能存在一定不足。而且对于参与任务的工人而言,在一些信息沟通上存在困难。因此,本文提出采用一种以任务为单位的众测小组形式,如图6所示。
Fig.6 Exploration of the management mode of workers in crowdsourcing test图6 众测工人管理模式探索
众测工人与众测工人之间可以进行交流,而接收任务的工人只对所在项目的小组长负责。小组长作为项目的纽带,起到统筹项目测试进展并对接平台项目管理员的作用。其从项目管理员处受领相关任务的测试需求,并对众测工人进行必要的解释,以消除工人对项目的理解偏差。小组长在把握测试任务难度的同时,需要尽最大能力调动测试小组内众测工人的积极性,将其能力充分发挥出来。
考虑到一些测试任务的难度较大,对于绝大多数众测工人而言,很难独立自主地完成任务。因此,在测试小组的基础上,本文引申出了一种解决思想,即采取“攻关小组”的形式,选择业务能力强的测试人员担任“攻关小组长”,先进行测试的摸索。“攻关小组长”在完成测试后,采用以点带面、全面展开的方式对任务进行测试。因为人与人之间的差异性,测试的覆盖面也会不一样,可能发现的缺陷也不一样。所以该方式既能节省时间,又能快速完成测试任务。在群智众测平台所有测试任务中,发布的openEuler 项目是最难实现和最难全面覆盖的测试任务,因为需要用到虚拟机,其安装过程繁琐且存在个体差异性。因此,在任务发布后,接包率一开始很低,完成率更低,报告质量也差。考虑到openEuler 项目的持续性,必须得想出解决问题的办法。在采用“攻关小组”的形式进行测试后,每次发布任务,接包率均为百分之百,完成率均能达到80%以上,报告质量的优良率也稳步提升,从一开始的20%达到现在的75%以上。采用测试小组管理模式和“攻关小组”的测试方法,在群智众测平台项目实际运行过程中,充分说明了其有效性。该方法既可以解决众测工人积极性不高的问题,又可以维持测试工人的稳定性,还可以极大地提高测试任务的完成率。
本节主要对众测工人积极性水平影响因素进行分析,提出了5 个方面的影响因素。针对这些影响因素,采用问卷调查的方式收集相关信息并对其进行分析,验证相关因素的合理性,最后提出众测工人管理模式和具体方法,并在实际测试项目中得到了运用和证实。该管理模式和方法可以解决上文所述的影响工人积极性的问题,但在处理费用问题方面还有所欠缺,包括发放不及时和奖励机制不完善。费用发放不及时会直接影响众测工人接收任务的积极性,长此以往,会丧失培养起来的耐心和信任。因此,要改进费用发放流程,加快费用发放速度。此外,在管理模式上需要增加任务薪酬奖励机制,对于完成任务出色的众测工人给予一定的物质奖励。该方式不仅有利于管理,而且能更充分地调动工人参与任务的积极性。
在众测环境下,众测工人分布在不同地域,有着不同的测试经验,工人能力水平的高低对于测试任务会产生很大影响。本文提出众测工人能力水平判定指标,分别是任务接收率、任务难度等级、任务完成率和报告质量良好率,并提出了工人等级的划分标准。在众测工人能力水平等级划分的基础上,针对众测工人参与测试任务积极性不高的问题,提出一种新的众测工人管理模式。基于群智众测平台的真实数据验证本文提出的方法,结果显示了方法的有效性。当采用“攻关小组”管理模式后,测试任务的接收率与完成率分别可达到100%和80%左右,优于现有平台的管理模式。
在未来的工作中,计划研究如何将费用管理机制融入工人管理模式,有效化解可能影响众测工人积极性的因素。同时,将与群智众测平台保持密切的联系,计划将本文方法应用于平台实际环境中,从而更好地验证该等级划分和管理方法在实际环境下的有效性。