您好, 访客   登录/注册

移动应用众包测试报告自动化评估算法设计

来源:用户上传      作者:

  摘 要:合理的评估机制能帮助众包测试商业平台客观衡量众包测试工作者测试任务完成质量,对众包测试平台有重要商业意义。众包测试的在线自由任务模式,使得如何识别欺骗类型工作者,有效评价任务完成质量成为目前众包研究中急需解决的问题。鉴于此,提出一种对移动应用众包测试报告自动化评分的CTRAEA算法,利用过滤规则对无效测试报告进行剔除,通过MMDBK聚类算法,结合报告提交者历史可信度,按权重计算确定缺陷等级,再对报告描述规范性构建度量指标及离散型度量函数,并计算出测试报告规范性评分,最终加权求和两方面评分以衡量工作者任务完成质量。实验结果平均相对误差为9.24%,证明评估算法准确性较高。
  关键词:众包测试报告;CTRAEA算法;缺陷等级;MMDBK聚类算法;规范性度量
  DOI:10. 11907/rjdk. 192488
  中图分类号:TP312   文献标识码:A                 文章编号:1672-7800(2020)003-0104-07
  Design of Automated Evaluation Algorithm for Mobile Application
  Crowdsourcing Test Report
  LIU Yu-chan, YAO Yi, HUANG Song, LUO Run
  (Command & Control Engineering College, Army Engineering University of PLA, Nanjing 210000, China)
  Abstract: A reasonable evaluation mechanism can help the crowdsourcing test business platform objectively measure the quality of the completion of test tasks by the crowdsourcing test workers, which is of great commercial significance to the platform. Due to the online free task mode of crowdsourcing test, how to identify cheat workers and evaluate task completion quality effectively has become an urgent problem to be solved in crowdsourcing research. Aiming at the problem in the mobile applications crowdsourcing test, this paper proposes a CTRAEA algorithm for scoring the crowdsourcing test report. Firstly, the filtering rule is used to eliminate the invalid test report.  The defect level was determined by weight calculation through MMDBK clustering algorithm combined with the credibility of the report submitter. And then the normative metrics of report description and the discrete metric function are put forward to calculate the normative score of test report. Finally, the quality of the task completion of the worker is measured by making weighted summation of the two score. The average absolute error of the experimental results is 0.836 90, which proves the accuracy of the evaluation algorithm.
  Key Words: crowdsourced test reports; CTRAEA algorithm; defect grade; MMDBK clustering algorithm; normative measure
  0 引言
  軟件测试作为一项劳动密集型工作,需要大量测试者参与,不仅仅是专业测试人员,还包括软件面向的用户群,只有这样,软件开发人员才能获得对功能、通信、交互等方面的反馈[1]。移动应用众包测试通过互联网将移动应用软件的测试任务分配给大众进行测试,它将过去由员工执行的测试任务以自由自愿的方式外包给匿名网络用户[2]。其因在线招募测试人员、无需准备测试环境以及设备成本低等优点而被移动应用开发商及个人采用,可以帮助任务需求者寻到大量自由工作者,并利用这些工作者的智慧解决实际问题。但在测试过程中有些恶意工作者为了追求自身利益最大化而不认真工作,提交的测试结果质量低下,测试质量难以得到有效保障,可能给任务需求者造成严重损失。因此,对工作者提交的测试结果进行充分评价至关重要。   众包质量评估的常用方法是专家评审法[3],将整个测试任务分给多个工作者,然后将工作者提交的答案交给专家进行人工判断并投票,将专家评审意见作为最终正确结果。由于专家评审法需耗费大量人力、财力和时间,且评审专家的主观性很大程度地影响了评审结果的准确性,因此采用这种方式往往效率极低。针对该问题,有研究者[4]采用一种拥有黄金标准数据的评估标准,黄金标准数据指拥有标准答案的一类数据,在执行测试任务前,让测试工作者首先回答黄金标准数据问题,通过将工作者提交的结果与标准答案进行比较可以快速检测出恶意工作者,并拒绝他们提交的结果;Bernstrin等[5]将该方法进一步扩展,在工作者完成实际问题时插入黄金标准数据问题,对工作者的质量进行动态评估;Ipeirotis等[6]指出受个人偏好影响,直接用EM算法[7]得到的误差率评估工作者结果质量不合理,进而提出了一种消除个人偏好,恢复固有误差率的方法,从而获得更可靠的质量评估结果;Huang等[8]提出一种在Amazon Mturk中自动生成任务的方法,通过工作者的表现训练生成质量评估模型,并应用该模型实现任务设计最优化,该方法可以精确预测任务输出精确度。
  目前已经存在一些众包测试评估方法,但是质量评估方法仍受到如下几个因素的限制:任务类型、时间、经济花费和工作者,但这些策略并不能排除掉所有欺骗类型工作者,尚缺乏一种比较客观的众包测试质量评估策略。对于任务需求者而言,其最终关心的是结果质量,想要很好地解决众包测试结果质量问题,还需要从提交结果本身的正确性和可靠性入手。因此,本文基于测试报告分析,提出了一种合理、客观的评价算法CTRAEA(Crowdsourced Test Reporting Automated Evaluation Algorithm),从报告内容缺陷严重性和测试报告规范性两方面对工作者表现进行综合评价,以期通过这种评估算法正确衡量工作者的任务完成质量,剔除态度散漫或者恶意掘金的工作者,激励理性优秀工作者高质量完成任务,并提高众包测试平台整体性能。
  1 众包测试平台介绍
  随着众测模式下由人员多样性、互补性等带来的缺陷发现效率提升,众测得到了业界广泛关注,出现了很多众测商业平台(例如Applause、BaiduMTC、MoocTest、Testin 等)。任务请求者能够在这些平台上提交测试任务,并招聘众包测试工人执行测试。这些众包测试平台采用不同的绩效考核和奖励机制,能够提供不同类型的测试服务,涵盖不同的测试对象,按照不同的方式召集工人。
  现有众包测试平台工作流程如圖1所示[9],众包测试发包方(软件开发方)将软件发布到平台并提交任务需求,众包测试平台根据任务需求将任务发布给众包测试接包方(测试工作者),接包方接受任务并对软件进行测试,一旦测试人员检测到缺陷,就根据设计好的测试报告格式填写,并提交测试报告。测试报告内容主要包括设备(版本)、网络、缺陷等级、Bug描述以及测试步骤等,平台再对测试报告进行融合和评价,最后将最终报告提交给发包方。平台技术人员与专家根据用户测试缺陷报告对缺陷进行验证,并根据缺陷严重等级及测试报告质量给出一个评分,平台给予工作者相应奖励。平台将有效的测试报告归纳融合后提交给众包测试发包方,收取一定费用。
  众包测试报告通常以简短文字描述程序行为,并辅助截图等信息。总体而言,众包测试报告相比传统测试报告具有文字描述简略、截图信息丰富等特点[10]。由图1的众包测试流程可以看出,众包测试平台对于接包方的评定主要来源于测试报告评价,因此深入分析接包方工作者提交的测试报告有很大价值,测试报告能很大程度上反映出工作者的测试能力与测试态度。因此,本文从测试报告分析入手,提出了一种客观的众包测试报告评价算法,对工作者表现进行评价。
  2 测试报告自动化评估算法设计
  基于测试报告的自动化评估算法CTRAEA,能够识别欺骗类型工作者,有效地评价任务完成质量。考虑到有的工作者为了利益随意填写或者不填写测试报告,首先对众包测试报告进行深入研究,剔除无效测试报告,然后从报告内容缺陷严重性和测试报告规范性两方面予以评估。一方面通过测试报告MMDBK算法聚类确定发现缺陷类型数量,并按工作者历史可信度权重评估各类型严重等级;另一方面构建报告描述规范性度量指标及离散型度量函数,并计算各测试报告的规范性得分。最后综合两者计算出每个测试报告最终评分。算法思路如图2所示。
  2.1 数据预处理
  移动应用众包测试报告有固定格式,一个报告只描述一个缺陷,工作者通过提交多个测试报告以报告发现的多个缺陷。对多个测试报告数据集进行分析发现,测试报告集中存在一些特殊测试报告。Bug的描述信息字段存在以下两种特殊语句:
  (1)短语句。Bug描述一栏为空或者仅仅包含几个字,无任何可读性描述,仅有一些测试步骤描述。
  (2)伪语句。在Bug描述一栏中,主要说明测试用例被成功执行,不存在缺陷,测试通过。
  包含以上两条之一的测试报告属于无效测试报告,它们没有包含任何与软件缺陷有关的信息。例如Bug描述字段为空或者Bug描述字段长度为1,都意味着此测试报告无意义。测试报告Bug描述字段为“没有发现Bug”,则说明测试通过。因此,为了提高测试报告数据集处理效率,在对其进行处理之前,需要过滤掉这些无效测试报告。
  经过分析归纳发现,测试报告描述信息过少,能够直接过滤,包含伪语句测试报告的描述信息多由陈述语句构成。经过随机抽样10%,发现描述信息普遍包含特殊字符串,例如,“测试通过”“执行成功”“未发现”“无Bug”“没有发现一个缺陷”等。由此可以总结出以下两条过滤规则:①如果Bug描述的文本长度小于等于4,则过滤测试报告;②如果Bug的描述信息正则匹配能够包含([A][P])|([N][O])|([N][D]?[Q]?[O]),则过滤测试报告。其中,A为行为词,P为肯定词,N为否定词,O为对象词,D为动作词,Q为数量词,它们分别包含特定词语,如表1所示。   过滤掉无效测试报告后,需进一步对测试报告进行预处理。由于测试报告由中文自然语言构成,因此需要采用NLP技术对测试报告进行处理,主要包括单词分割和停用词移除。考虑到中文汉字分词艰难,本文借助NLPIR分词工具进行实行处理,这是一款开源的中文NLP工具,分词效果较好。
  2.2 MMDBK聚类算法与等级确定
  不同的软件缺陷对软件质量有不同影响,有的仅仅是用戶体验差,有的则可能是灾难性的。影响大小可定义为软件缺陷的严重性,可以概括为以下4种级别[11]:
  (1)较轻。一些小缺陷如有错别字、文字排版差等,对功能几乎没有影响,可正常使用。
  (2)一般。不太严重的错误,如部分次要功能没有实现、用户界面差和响应时间长等。
  (3)严重。主要功能模块没有实现,部分主要功能丧失,次要功能全部丧失。
  (4)致命。能够造成系统崩溃、死机,或造成数据丢失、主要功能完全丧失等。
  针对发现缺陷的不同等级,测试工作者对软件质量测试的贡献也不一样,通常认为其能力越强,任务完成质量越高。因此,本文主要工作是通过聚类测试报告确定Bug等级。
  由于测试报告和发现的缺陷一一对应,因此采取直接对测试报告聚类的方法。算法主要思想是:通过TF-IDF算法计算预处理后的测试报告[tf-idf]值[12],再综合算法设计思路,将所有测试报告的[tf-idf]值作为聚类数据对象[On=x1,x2,,xn],每个测试报告的一组[tf-idf]值就是其中一个数据对象[xi],然后利用MMDBK算法对测试报告进行聚类。
  2.2.1 MMDBK聚类算法
  MMDBK(Max-Min and Davies-Bouldin Index based K-means)算法是针对K-means算法缺陷而改进的聚类算法[13],它对K-means算法中聚类个数[K]的确定以及[K]个聚类中心的选定作出改进,通过使用Davies-Bouldin Index(缩写为DBI)聚类指标[14]和最大最小距离法[15],确定最佳聚类个数并选取新的聚类中心,以保证各类之间具有较小相似度。
  MMDBK总体聚类算法步骤为:
  Step1:从[n]个数据对象[On=x1,x2,,xn]中选出距离最远的两个对象[x1]和[x2]。
  Step2:通过近邻查找找出与聚类中心距离小于阈值[d]的所有对象,将其加入此中心的临近类中,重新计算此临近类的中心。
  Step3:判断计算的DBI值是否比上一轮小,若比上一轮小则符合循环条件。
  Step4:若符合条件,则寻找新的聚类中心,重复Step2和Step3。
  Step5:若不符合条件,则停止循环,将剩余数据对象归类到最邻近的类中。
  Step6:输出聚类结果。
  算法设计具体涉及以下3个部分:
  (1)使用SFC算法[13],以避免K-means算法在选取聚类中心时过于邻近而导致聚类边界模糊的问题。提出一种复杂度为[O(n)]的两个距离最远的对象,形成两个初始聚类,以保证后续计算中不同类之间有较低相似度。
  (2)通过SFC算法找到初始的两个聚类中心并更新类中心后,再确定聚类个数并找到剩下的[K-2]个聚类中心,使得各聚类中心之间的相似度尽量低是算法的关键。
  MMDBK算法提出改进的最大最小距离法解决问题,设计思想如下:
  已知[c1]、[c2]两个初始聚类中心,分别计算出剩余对象到[c1]、[c2]的距离[Dj1]和[Dj2],若[Dk=maxmin(Dj1,Dj2),][j=1,2,?,n],并且[Dk>θ?D12], [D12]为[c1]和[c2]的距离,则取[xj]为第3个聚类中心,[c3=xj]。
  如果[c3]存在,则计算[Dk=maxmin(Dj1,Dj2,Dj3),][j=1,2,?,n],若[Dk>θ?D12],则找到了第4个聚类中心。以此类推,直到[Dk>θ?D12]不满足时,则结束聚类中心寻找。
  (3)算法基于Davies-Bouldin Index(DBI)聚类指标实现聚类结果评估。DBI聚类指标是一种非模糊型的集群评估指标,主要以类间分离度和类内的内聚度两种因素为依据,即不同类之间相异性高,而同类之中数据对象相似性高。当类内各数据对象间距离越小而类间距离越大,DBI值也就越小,表明此聚类数目下的聚类结果最佳。其类间距离和类内距离计算分别如式(1)、式(2)所示。
  其中,[x]表示第i个类内的数据对象,[vi]表示第i个类的质心,[Ci]表示第i个类内的数据对象数目,[Si]表示第i个类内各数据对象与质心[vi]的标准误差。
  Davies-Bouldin Index公式如式(3)所示。
  其中,[Si]表示第i个类的类内距离,[Sj]表示第j个类的类内距离,[di,j]表示第i个类与第j个类质心之间的欧式距离,[K]表示聚类个数。
  好的聚类结果应该是同一类间的类内距离小、类间距离大,能够满足该条件,即分子越小、分母越大时,DBI值越小,即通过该值可得到最佳聚类数目。
  2.2.2 缺陷等级评估
  聚类完成后,每一类都可以被看作是待测软件某一个缺陷的测试报告集,针对一种缺陷,可以根据工作者填写的测试报告等级进行评估[16-17]。优先考虑测试历史可信度高的工作者测试报告,根据平台参与工作者的历史可信度进行归一化处理,作为权重系数分别计算出测试报告集中此类缺陷较轻、一般、严重、致命的比例系数,选取比例最高的一种缺陷等级作为此类缺陷的最终等级。
  整个测试报告数据集被聚类成[N]类缺陷,分别为测试报告集合[Cla1]、[Cla2]、…、[ClaN],每一类中又包含4个等级的测试报告,其中每一类每个等级的集合中包含[mi,j](j=1,2,3,4分别表示较轻、一般、严重、崩溃)个测试报告。[Clai,j,k]表示第i缺陷中第j级的第k测试报告,对应提交测试报告的工作者历史可信度用[Ui,j,k]表示,指第i第j级的第k测试报告提交者的贡献度,[TR]为所有测试报告数量,即对应的工作者数量。对贡献度进行标准归一化,求得所有用户历史可信度的均值如式(4)所示。   用户历史贡献值方差如式(5)所示。
  归一化后如式(6)所示。
  针对每一类缺陷,分别计算较轻、一般、严重、致命的比例系数。
  其中,[δ]是测试报告系数,一般设置为0.8。
  选择[Bi=max(Bi,1,Bi,2,Bi,3Bi,4)]所属的等级作为第[i]类缺陷的等级。
  同时设定每种等级价值比例,等级为致命、严重、一般、较轻的权限等级评分分别为10分、7.5分、5分、2.5分。
  2.3 报告规范性度量
  测试报告规范性反映了众包测试工作者完成任务的能力与态度,是工作者测试报告评价的因素之一。因此,为了更准确地评价测试报告的规范性,选取多个度量指标构建度量函数,从不同角度对测试报告规范进行评估。
  2.3.1 度量指标选择
  依据已有需求规格说明书和缺陷报告质量评估相关研究[18],本文定义了7个可量化的指标用以度量测试报告质量,主要对缺陷描述信息或测试步骤作评估:
  (1)文本长度。文本长度指测试报告中缺陷描述信息中包含的汉字数量,文本长度保持在合适数值范围的测试报告质量较好。
  (2)可读性。可以度量文本的阅读难度,度量公式为[Y=14.959 6X1+39.077 46X2-2.48X3],其中,[X1]表示難词的比例,[X2]表示句子数量,[X3]表示汉字平均笔画数。
  (3)动作词。在描述缺陷时,往往会在测试步骤中描述动作序列,这些动作是测试工作者触发软件界面或接口事件的关键。因此,需要关注测试报告中的动作词,如“打开”“点击”“退出”等。
  (4)对象词。当测试工作者发现软件缺陷时,他们会用一些能体现系统错误的词语描述这种行为,比如“问题”“缺陷”“Bug”等。
  (5)否定词。当测试工作者发现软件缺陷时,他们会用一些否定的词语描述系统功能缺失,比如“缺失”“失败”“失效”等。
  (6)模糊词。在测试过程中,测试工作者如果遇到不明确或者不确定的缺陷时,更倾向于使用一些模糊词汇进行描述,这些描述可能会给测试报告的理解带来困难。模糊词有“几乎”“少数”“可能”“一般”等。
  (7)界面元素。移动应用软件界面由许多交互组件组成,软件测试时需要对相应组件进行点击、输入、滑动等操作,描述动作序列时,必定会包含这些界面元素,如“按钮”“滑动条”等。
  测试步骤长度是根据软件复杂程度而定,无法用一个合适的文本长度进行度量。于是,针对已经预处理完的分词文本,对缺陷描述信息用文本长度进行单独量化,对缺陷描述信息和测试步骤用剩余6个指标共同量化,最后针对每个测试报告都生成一个7维的指标向量。
  2.3.2 度量函数建立
  对测试报告指标化后,每个测试报告都可以用一个7维向量表示。为了将指标的数值转化成评估质量值,比如“好评”“中评”“差评”,引用Xin Chen[19]提出的度量函数将连续值转化为离散值。
  度量函数被分为4种:增长型度量函数、下降型度量函数、凸型度量函数、凹型度量函数,如图3所示。
  图3含义如下:
  (1)增长型度量函数。当指标小于[x1]时,该指标为差评,当指标大于[x1]时,该指标为好评。
  (2)下降型度量函数。当指标小于[x1]时,该指标为好评,当指标大于[x1]时,该指标为差评。
  (3)凸型度量函数。当指标处于[x1]和[x2]之间时,该指标为好评,当指标小于[x1]或大于[x2]时,该指标为差评。
  (4)凹型度量函数。当指标处于[x1]和[x2]之间时,该指标为差评,当指标小于[x1]或大于[x2]时,该指标为好评。
  但是上述度量函数只能划分出好与差两种离散值,为此,本文需要再对度量函数进行扩展,增加分界参数[x2]、[x3]、[x4],使得扩展的度量函数能划分出好、中、差3种离散值,如图4所示。
  表2总结了7个指标对应的度量函数类型及函数参数设置,对于增长型和下降型度量函数,使用[0-a-b-∞]形式表示参数区间,为3个区间。对于凸型和凹型度量函数,使用[0-a-b-c-d-∞]形式表示参数区间,为5个区间。
  对测试报告进行深入分析可知,文本最适合长度是15~30,太长或太短的文本都会影响测试报告质量。因此,用凸型扩展度量函数进行评估,可读性同样如此,具体参数会通过实验调试获得。对象词和否定词指标用明确的数字表示,如果文本中包含0个或2个以上的对象词或者否定词,则认为测试报告质量低,如果只有1个对象词或者否定词,则认为其质量高。动作词和界面元素使用增加型扩展度量函数,即如果包含这些词越多,则认为该指标上测试报告质量越好。只有模糊词指标属于下降型扩展度量函数,模糊词越多,则测试报告质量越差。
  2.3.3 报告规范性评分
  经过度量函数设置参数进行分类,可以按指标得到测试报告的“好评”“中评”“差评”,为了将多个指标评价汇总,3种不同评价对应不同分数等级,无效测试报告都设定为0分;对其它有效测试报告按照好评、中评、差评的数量顺序进行排序,7个指标全部好评的规范性得分为max=10,7个指标全部差评的规范性得分为min=1,从低到高排序第i位测试报告的规范性得分为(max-min)*i/(结果数-1)+min。具体分数如表3所示,针对测试报告的向量指标得到“好评”“中评”“差评”数量,对照表3进行查询,最后可以得到测试报告规范性的质量得分。
  2.4 评估算法设计
  根据缺陷等级得分和规范性得分,通过加权得到最终得分,其评分如式(8)所示。
  最终得分=[a]*缺陷等级得分+[1-a]*规范性得分   (8)   其中,[a]表示缺陷等级分数权重,一般为0.7,规范性得分权重为0.3。
  CTRAEA算法伪代码如下:
  输入:测试报告集[TR],工作者历史可信度[GU]
  CTRAEA ([TR],[GU])
  1   for i in range(n) //预处理阶段
  2     if [TRi]符合匹配规则
  3       [mTRi=0],delete [TRi]//无效报告记为0分,并剔除
  4   统计无效报告数量//此数值评估过滤规则的准确性
  5   [newTR=split(TR)]//对所有有效报告分词,去停用词
  6   [CN=Cluster(newTR)]//聚类评价缺陷等级
  7   for i in range(N)遍历每一类缺陷
  8     for j in range(4) //遍历此类缺陷的每一等级
  9       for k in range([mi,j]) //遍历此等级的所有测试报告
  10        [Bi,j=k=1mi,j(GUi,j,k×δ)]
  11        [Bi=max(Bi,1,Bi,2,Bi,3Bi,4)]//确定缺陷等级
  12     [DGi=ratio (Bi)]//确定缺陷等级分数
  13   for i in range(m) //测试报告规范性度量
  14     [ZBi=newTERQAF(newTRi)]
  15     [QGi=search(ZBi)]
  16     [Rwi=a*DGi+(1-a)*QGi]//将缺陷等级分数与规范性分数加权求和,[a]一般为0.7
  17   输出[mTRi] 和[Rwi]
  在算法中,1~5行都是对测试报告进行预处理,6行是通过调用MMDBK算法进行聚类,7~12行是利用式(7)计算各类缺陷各等级比重[Bi,j],并确定最终缺陷等级及分数[DGi],14行是调用度量算法得到各指标度量的质量值,查表后得到具体分数[QGi],最后加权求和[DGi]和[DGi]得到最终得分数值[Rwi]。
  3 实验验证
  3.1 测试报告数据集
  本文实验数据集从Kibug众包测试平台获取得到[20],该平台成立于 2012 年,是一个众包任务的分发、收集和分析平台。共收集了4个测试任务,分别是图个乐、爱逛街、网易云、优播客。
  主要摘取属性为“设备版本”“网络”“等级”“Bug描述”“测试步骤”的几列作为研究关键词。以上4个众包测试任务结束时,绝大部分缺陷都被检出,每个提交的测试报告也已被管理人员审核,并且标上“有效”“无效”标签,标注人员还记录了每个移动应用软件的缺陷数量,标注结果统计如表4所示。
  本文总计收集到1 380个测试报告,其中包含图个乐291个,爱逛街408个,网易云238个,优播客443个。表1记录了标注结果,4个测试报告集中无限测试报告数量分别是61、193、149和238。
  3.2 算法计算结果评价
  CTRAEA算法预处理阶段将所有测试报告作为过滤器的输入数据并运行,筛选出有效和无效测试报告。已知标注的无效测试报告分别是61、193、149、238个,经过两条规则过滤后,正确过滤了61、189、147和232个无效测试报告,过滤准确率为97.48%~100%,说明过滤规则有效,但是错误过滤的报告数量比未正确过滤的报告数量多。经人工检查发现,有效测试报告语句中包含“无”字,能够被正则匹配到,因此被过滤。
  预处理完成后,利用MMDBK算法对测试报告聚类并确定每类缺陷等级,评估结果如表5所示。
  表5中缺陷等级评估结果准确性都在90%左右,最高达93.65%,说明聚类后对提交者能力和缺陷等级参数进行评估,准确性较高。
  在质量性评估的文本长度指标中,为了确定参数[x1]、[x2]、[x3]和[x4]的具体数值,采用控制变量法,固定3个参数值,逐渐增加一个参数值,利用相对误差评价指标比较预测结果精度,得到文本长度的4个参数最佳取值分别为9、15、23、32,同样得到可读性参数最佳取值为-5、-1、6、12。用上文得到的参数进行最终评分,得到测试报告重要性和规范性综合得分。计算每个测试报告得分的相对误差,取平均值作为该算法对软件评估的相对误差,最终结果如表6所示。
  從实验数据可以看出,CTRAEA自动化评估算法评估测试报告的分数与标注得分平均相对误差为9.24%,4个软件的平均相对误差皆不超过10%,由此可见CTRAEA算法准确高效。
  4 结语
  本文针对移动应用众包测试质量评估问题进行了探索,对众包测试报告展开了深入研究,提出了CTRAEA自动化评估算法。该算法一方面通过测试报告MMDBK算法聚类确定发现缺陷类型数量,并按提交者历史可信度权重评估各缺陷类型严重等级,另一方面通过规范性度量指标和离散型度量函数评价各测试报告的规范性,并综合两者计算出每个测试报告最终得分。整个算法无需人工评判,只需周期性地对部分报告进行复审检验。实验数据也证明测试报告得分的评估方案准确、高效。   本文方法也存在待改进之处。由于只对测试报告质量进行度量,忽略了提交速度也是对工作者能力评价的重要影响因素,重复的测试报告根据提交速度不同可能存在抄袭现象,这些可能会造成评估结果偏差。因此,后续研究中将加入此因素进行算法设计。
  参考文献:
  [1]王艳青,于海洋. 计算机软件测试技术综述[J]. 电子技术与软件工程,2017(22):47-48.
  [2]刘莹,张涛,李坤,李楠. 移动应用众包测试人员评价模型[J]. 计算机应用,2017,37(12):3569-3573,3596.
  [3]徐瀛,程广明. 众包测试模式现状概述及生态效益分析[J]. 科技创新导报,2018,15(29):60-62.
  [4]云测. 专家报告审核标准[EB/OL]. https://new.ztestin.com/help/helpinfo/index?id=69.
  [5]LE,EDMONDS A,HESTER,et al. Ensuring quality in crowdsourced search relevance[C]. Workshop on crowdsourcing for search evaluation at SIGIR’10,2010:21-26.
  [6]BERNSTEIN M,BRANDT J,MILLER R,et al. Crowds in two sconds: enabling realtime crowd-powered interfaces[C]. UIST’11,2011, 33-42.
  [7]IPEIROTIS P G,PROVOST F,WANG J. Quality management on Amazon mechanical turk[C]. Proceedings of the SIGKDD Workshop on Human Computation,2010: 64-67.
  [8]DAWID A P, SKENE A M. Maximum likelihood estimation of Observer error-rates using the EM algorithm[J]. Applied Statistics,1979,28(1):20-28.
  [9]路津. 常用软件功能性测试方法及缺陷分类[C]. 全国软件测试能力验证总结会暨中国宇航学会计算机应用专业委员会2006年学术年会论文集,2006:113-116.
  [10]何晓静. 对TF-IDF算法的改进及实验研究[D]. 长春:吉林大学,2017.
  [11]仲逸秋. 安全漏洞众包验证平台的设计与实现[D]. 南京:南京大学,2018.
  [12]崔强. 众包测试中工作者选择和测试报告分类方法研究[D]. 北京:中国科学院研究生院,2017.
  [13]冯超. K-means聚类算法的研究[D]. 大连:大连理工大学,2007.
  [14]COELHO G P,BARBANTE C C,BOCCATO L,et al. Automatic feature selection for BCI: an analysis using the davies-bouldin index and extreme learning machines[C]. The 2012 International Joint Conference on Neural Networks(IJCNN),2012.
  [15]刘燕. 基于抽样和最大最小距离法的并行K-means聚类算法[J]. 智能计算机与应用,2018,8(6):37-39,43.
  [16]肖静. 基于软件测试中缺陷等级的可靠性评估方法[C]. 中国国防科技质量与可靠性高峰论坛论文集,2010:236-238.
  [17]吕林涛,安存召,李翠. 面向软件质量的Bug等级评价算法[J]. 计算机工程与设计,2008,29(23):6033-6036.
  [18]成静,葛璐琦,张涛,等. 移动应用众包测试质量影响因素分析[J]. 计算机应用,2018,38(9):2626-2630.
  [19]XIN CHEN,HE JIANG,XIAOCHEN LI,et al.Automated quality assessment for crowdsourced test reports of mobile applications[C]. 2018 IEEE 25th International Conference on Software Analysis,Evolution and Reengi-neering,2018:368-379.
  [20]陈信. 众包测试报告的挖掘与评估[D]. 大连:大连理工大学,2018.
  (責任编辑:孙 娟)
  收稿日期:2019-11-11
  基金项目:国家重点研发计划项目(2018YFB1403400)
  作者简介:刘语婵(1996-),女,陆军工程大学指挥控制工程学院硕士研究生,研究方向为软件测试、众包测试;姚奕(1981-),男,博士,陆军工程大学指挥控制工程学院副教授、硕士生导师,研究方向为软件测试、软件工程;黄松(1970-),男,博士,陆军工程大学指挥控制工程学院教授、博士生导师,研究方向为软件测试、软件工程;骆润(1996-),男,陆军工程大学指挥控制工程学院硕士研究生,研究方向为软件测试、软件工程。本文通讯作者:姚奕。
转载注明来源:https://www.xzbu.com/8/view-15217520.htm