CCS 概念:?软件及其工程 → 软件创建和管理;
附加关键词和短语:众包测试、测试管理、密切预测、术语覆盖率、捕获-再捕获
I 介绍
众测是一种新兴的范例,它可以提高软件测试的成本效益并加速其过程,特别是对于移动应用程序。它将测试任务委托给在线众包工人(简称众工),这些众工的不同测试设备/环境、经验和技能集可以显著提高测试结果的可靠性、成本效益和效率。众测已经被许多软件组织采用,包括但不限于谷歌、Facebook、亚马逊和微软。具体来说,谷歌定期为其 14 个主要产品线部署众测。根据最新的统计数据,1 个利用众测的好处包括平均增加 200%的测试容量,每年 150%的发布量,以及平均减少 50%的关键补丁。
软件工程师经常会遇到“多少测试就足够了”的问题。测试不足会导致软件质量不令人满意,而过度测试会导致潜在的进度延迟和低成本效益。考虑到移动应用程序的复杂性和分布式众测过程的不可预测性,这对于众测尤其如此。移动应用程序测试的困难很大程度上是由于兼容性问题,因为移动应用程序可以部署在具有不同操作系统(如 iOS、Android)、制造商(如华为、三星)和键盘类型(如虚拟键盘、硬键盘)的设备上。我们不能百分之百地肯定,如果一个测试应用程序在给定的设备上运行良好,它将在另一个设备上平稳运行。
现有的软件测试管理方法采用基于经验、风险或价值的分析来有效地规划和管理测试过程。然而,这些方法很少适用于新兴的众测范式,在这种范式中,特别需要处理非常有限的信息并控制未知的在线众工。
在实践中,项目经理在很大程度上依赖经验来决定何时结束一项众测任务。频繁的策略涉及到标准的应用,例如固定的持续时间(例如,5 天)或有限数量的参与者(例如,收到前 400 份测试 告)。我们对真实世界的众测数据的调查(第 2.3 节)表明,(a)众测任务中的错误到达率,(b)任务的持续时间,以及(c)达到同等质量水平所消耗的成本有很大的差异。为了管理如此大的变化,管理者倾向于对测试周期或参与者数量采用相对较大的阈值。如此大的阈值可能会导致无效的众包测试过程,例如,在我们的实验中,平均 32%的浪费开支 2 众测平台管理者在决定何时介入和结束任务时具有重大的挑战性,从而提高众测的成本效益。
我们之前的工作是开发完成感知的测试管理方法 iSENSE,它监控测试完成的进度,预测最佳任务结束时间,从而促进更有效的众测管理实践。具体来说,iSENSE 利用与众测 告相关联的动态 bug 到达数据来支持关闭决策的自动化。它可以为管理者提供更大的信心,实现众测的成本效益收益,即成本降低 30%的中位数。
然而,iSENSE 有一个主要的局限性,严重影响了该方法广泛应用的实用性:iSENSE 严重依赖于对重复错误的手动标记来监控基于动态接收的众包测试 告的测试进度。标记过程耗时且容易出错,尤其是在众测环境下处理大量 告时。
?
重复标记器,采用语义分析技术自动确定和标记传入测试 告的重复状态;
?
健全性检查,集成基于覆盖率的机制,以减少近距离预测中的错误警 ,这是导致 iSENSE 性能瓶颈的主要原因。
由于这些新组件扩展并增强了 iSENSE 的稳定性和性能,因此 iSENSE2.0 的新版本为众测任务提供了更好的结束决策支持。
接下来,我们介绍了 iSENSE2.0,它应用增量抽样技术处理按时间顺序到达的众测 告,并将它们组织成固定大小的组作为动态输入。集成了一个基于语义分析的重复标记器来自动标记 表的重复状态,然后使用基于 CRC(捕获-再捕获)的闭合估计来生成基于 CRC 的闭合决策同时,我也知道, iSENSE2.0 设计了一个基于覆盖率的健全性检查器,通过测量术语覆盖率,即任务的需求在多大程度上被接收到的 告覆盖,来克服类别上升-停留上升中的性能瓶颈。
iSENSE2.0 的评估是在 56920 份来自最大的众测平台之一的 306 个众测任务的 告上进行的。结果表明,平均 100%的错误可以被检测到,节省了 30%的成本。3 我们的研究表明,iSENSE2.0 的工作原理与 iSENSE 相同,并且显著提高了我们的实用性方法。具体来说,它自动化了后一种方法所依赖的重复标记过程。这种自动化大大减少了手动标记数据所需的人工。
?
使用现有最先进的方法解决众测管理中的一个主要问题。
?
大量减少委托众测所需的成本。
?
证明即使我们自动标记数据,我们仍然可以保持与先前最先进方法相同的性能(这需要更多的努力来调试)。
II 背景与动机
图 1 众包测试过程
2.1 背景
众工可以签署打印的测试任务并提交成排的测试 告,通常是总结测试输入、测试步骤、测试结果等。众测平台接收并管理提交的众测 告工作人员。项目经理然后检查验证每个 表的任务。通常,每个 告都会使用两个属性来描述:(1)它是否包含有效的 bug;(2)如果是,它是否是以前在其他 告中 告过的重复 bug。在下面的文章中,如果没有指定,当我们说“bug”或“unique bug”时,我们的意思是相应的 告包含一个 bug,并且该 bug 不是以前 告的 bug 的重复。在当前的实践中,这些属性是由一个专用的测试管理器手动确定的,这非常耗时、乏味而且容易出错。
管理者通常设定一个固定的时间段(例如,五天)或固定数量的参与者(例如,招募 400 名众工)作为众测任务的接近标准。如果先满足任一条件,则任务将自动关闭。在众包测试中有不同的支付模式,例如按 告支付。一般来说,一项任务的成本与收到 告的数量正相关,因此与结束时间正相关。
2.2 百度数据集
图 2 百度数据集的细节
2.3 初步研究的观察结果
为了探索众测的 bug 到达模式,我们进行了一项初步研究,分析了 bug 到达时间成本、bug 到达成本和 bug 到达率三个指标。
对于每个任务,我们首先确定检测到 K%错误的时间,其中 K 的范围为 10 到 100。然后,可以使用任务的打开时间和接收 K%错误的时间之间的间隔(以小时为单位)来确定任务的错误到达时间成本。任务的 bug 到达成本可以通过提交 告的数量达到 k%虫子。去检查糖醛酸盐,我们将每个任务的众测 告按时间顺序分成 10 个大小相等的组。每个组的比率是使用此组中新 告的唯一错误数与组中 告总数之间的比率得出的。此外,对于每一个众测任务,我们还检查了前 X 个 告中累积 bug 的百分比(表示为 bug 到达曲线),其中 X 的范围从 1 到任务的 告总数。
图 3 现实世界中众包测试数据集的观测结果
2.3.1 描述缺陷到达模式。本小节介绍了分析结果中描述的 bug 到达模式。
(1) 错误到达时间成本和成本变化较大。图 3(a)和 3(b)展示了 bug 到达时间成本和所有任务成本的分布。一般来说,缺陷到达时间成本和成本有很大的差异。具体来说,为了实现相同的 K%错误,这两个指标都有很大的差异。对于较大的 K%尤其如此。例如,当检测到 90%的 bug 时,bug 到达成本从 3 小时到 149 小时不等,从 27 小时到 435 小时不等。
(2) 随着时间的推移,错误到达率逐渐降低。图 3(c)显示了所有任务中 10 个细分组的 bug 到达率。我们可以看到,在众包测试过程中,bug 到达率急剧下降。这意味着在流程的后期,众测的成本效益正在急剧下降。
(3) 高原效应外胚轴曲线图 3(d) 显示典型的错误到达曲线用于众测任务。而 Bug 到达曲线有什么不同,注意到它们抑制了“高原效应”,在这之后(即图 3(d)中的红点)新的 告没有发现新的 bug。这是因为对于众测任务的后期阶段,提交的 告主要导致了重复的 bug。
我们将最佳关闭时间定义为接收到最后一个 bug 的时间,即没有提交新 bug 之后的时间。我们假设在最佳关闭时间之后花费在这些 告上的成本是浪费性的支出。在 306 项实验任务中,平均有 32%的浪费性支出。
平台效应和大量浪费性支出进一步表明了引入提前关闭机制(基于对该平台的认识)以提高众测成本效益的潜在机会和实际需要。
2.3.2 对缺陷到达曲线进行分类。我们采用两步基于规则的方法将经验缺陷到达曲线分为三类,以进一步推动本研究。
在第一步中,从开始到结束检查每个 bug 到达曲线是否存在一个平坦的间隔和一个符合无缺陷驱动规则(即规则 1)的点,表明在数十个 告的间隔期间,检测到的唯一 bug 的数量保持不变。换句话说,在固定间隔期间收到的所有 告都不涉及新的 bug。在第二步中,我们使用了另外三个规则(即规则 2-4)来比较实际的错误到达率(通过拐点)和经验得出的阈值,从而将错误到达曲线划分为相应的组。更具体地说,这些规则总结如下:
规则(1)如果一个 bug 到达曲线包含一个超过预先指定值的平坦间隔,例如 20,则对应于间隔结束的 bug 告被标识为 bug 到达曲线的拐点;规则(2)如果所有 bug 都在规则 1 标识的拐点被揭示,则该任务属于 I 类上升停留;规则(3)如果超过 80%的虫子是通过拐点暴露出来的,任务属于 Ⅱ 类上升-停留-轻微上升;规则(4)否则,任务属于 Ⅲ 类上升-停留-上升。
请注意,20%和 80%是根据经验得出的阈值,用于分析和演示趋势,而不是用于研究评估目的。基于规则的分类结果显示,在所有 306 项任务中,属于 I 类的比例(110/306)为 36%,属于 II 类的比例(148/306)为 48%,属于 III 类的比例(48/306)为 16%。图 3(d)展示了 9 个示例任务,每个类别 3 个,用 T1–T9 表示(Ti 代表众测任务 I)。T1、T2 和 T3 属于第一类上升停留。我们可以看到,对于这些任务,随着提交 告的增加,检测到的 bug 的百分比首先会急剧增加,在任务的后期保持不变。T4、T5 和 T6 是从第二类上升保持轻微上升。对于此类任务,随着提交 告的增加,检测到的 Bug 百分比会先增加,在任务的另一部分保持不变,然后略有增加。第三类上升-停留上升更为复杂,如 T7、T8 和 T9 曲线所示。与前两类不同的是,第三类中的虫子到达曲线有多次急剧增加,其间间隔平坦。
2.3.3 准确预测任务结束的挑战。在第 2.3.1 节中,我们提到了平台点表示关闭时间,我们先前提出的 iSENSE 试图基于自动识别的平台点预测关闭时间。膝关节点可视为自动识别的平台点。通过比较拐点(即图 3(d)中的蓝色菱形)和实际平台点(即图 3(d)中的红色点),我们讨论了先前提出的 iSENSE 的缺点。
对于 I 类,通常可以根据虫子的到达趋势来准确识别平台点,即红点与蓝钻石重合。如果 crowdtesting 平台能够在此时完成任务,那么就可以在不牺牲测试质量(即检测到的 bug 数量)的情况下节省大量成本。
与第一类相比,第二类任务在自动识别拐点(即蓝色菱形)后的 bug 数量略有增加,即在我们的实验众测任务中,在拐点后发现的 bug 平均为 8.6%。如果 crowdtesting 平台在拐点关闭任务,那么任务将更具成本效益,尽管很少一部分 bug 不会被检测到。
简而言之,第一类和第二类中拥挤的测试任务的平台点可以很容易地根据 bug 到达的动态来近似和识别。相反,对第三类事件的面板点的识别是一个问题,容易产生错误的警 ,这会对 iSENSE 的预测精度产生负面影响。这促使我们开发一种新的策略来防止这种误 ,以提高接近预测性能。
表 1 捕获-再捕获模型
2.4 捕获-再捕获模型
在四种基本 CRC 模型的基础上,发展了各种估计方法。根据最近的系统综述,MhJK、MhCH 和 MtCH 是软件工程中研究最频繁和最有效的三种估计器。除此之外,我们还研究了另外两个估计量(即 M0 和 mth),以确保研究了所有四个基本模型。
III 方法
图 4 显示了 iSENSE2.0 的概述。它包含四个主要部分,即增量采样、重复标记器、基于 CRC 的闭合估计和基于覆盖的健全性检验。更具体地说,iSENSE2.0 首先采用增量抽样技术对众测 告进行预处理。其次,设计了一个基于语义的重复标记器来自动标记重复的测试 告;该组件的输出是 bug 到达查找表,记录所有唯一 bug 及其重复项的出现。第三,基于错误到达查找表和基于 ECRC(捕获-再捕获模型)的关闭估计,导出了基于 CRC 的关闭决策。第四,如第 2.3 节中的试点研究所述,基于覆盖率的健全性检查器在预测的关闭时间验证术语覆盖率,以防止与停留阶段相关的假警 。最后的关闭判决受两个保护条件的约束:一个是通过基于 CRC 的关闭判决,另一个是通过基于覆盖的健全性检查。我们将在下面详细介绍每个组件。
图 4 ISENSE2.0 概览
3.1 增量采样
增量采样是一种复合采样和处理技术。其目的是为分析人员获得一个样本,该样本具有决策单元的分析浓度代表性。与传统的离散抽样策略相比,它通过减少变异性提高了抽样数据的可靠性和可防御性。
考虑到提交的按时间顺序排列的众测 告(第 2.1 节),当收到 smpSize(smpSize 是一个输入参数) 告时,iSENSE2.0 将其作为一个代表组来反映多个并行众测会话。
3.2 重复标记器
表 2 错误到达查找表示例
为了克服 iSENSE 依赖人工重复标签的缺点,本研究提出了一个重复标记器组件,该组件应用语义分析技术自动识别众测 告的重复状态。
3.2.1 语义分析。
iSENSE2.0 利用词嵌入技术分析众测 告的语义。单词嵌入是自然语言处理中的一种特征学习技术,其中单个单词不再被视为唯一的符 ,而是被表示为实数的 d 维向量,以捕捉其上下文语义。公开软件 7 用于获取 表的嵌入字。 iSENSE2.0 首先对 表的描述进行自然语言处理。每个 表都经过标准分词 8 和停止字删除以减少噪声,然后表示为一组术语。
在经过训练的单词嵌入模型中,每个词都可以转换成一个 d 维向量,其中 d 被设置为 100,这在以前的研究中是有意义的。同时,将每个 表转换为一个矩阵,其中每一行表示 表中的一个词,每一列表示嵌入词的一个维度。然后,在前面的工作之后,通过平均 表包含的所有术语向量,将 表矩阵转换为一个向量。具体地说,给定一个总共有 n 行的 表矩阵,我们将该矩阵的第 i 行表示为 ri,转换后的 表向量 vd 生成如下:
(1)
通过上述公式,每个众测 告可以表示为一个单词嵌入向量。
为了训练单词嵌入模型,它还从应用商店中抓取相关应用程序的文本描述和评论。9 然后将这些文本与所有众测 告的描述相结合,并利用它们进行模型训练。我们使用这些数据的原因是,先前的研究表明,为了训练有效的单词嵌入模型,最好使用大尺寸的领域特定数据集。我们的训练数据集的大小是 1160 兆字节。
3.2.2 重复标记。对于捕获到的样本中新来的一个众测 告,duplicate tagger 计算其单词嵌入向量与该任务中前一个 告的每个单词嵌入向量之间的余弦相似度,并获得达到最大相似度 maxSim 的特定前一个 告 k。如果最大相似性 maxSim 小于预定义的相似性阈值(simThres,例如,0.80),则 ISENS2.0 使用新标记(即数字 ID 值)对其进行标记,指示其重复状态;否则,ISENS2.0 使用 report k 的标记对 告进行标记。
3.2.3 缺陷到达查找表。在特定任务的众测过程中,iSENSE2.0 将建立并动态维护一个二维 bug 到达查找表,记录该任务收到 告的重复状态。
表 3 变量释义及计算
表 2 提供了一个示例。在接收到每个样本之后,iSENSE2.0 首先在查找表中添加一个新行(假设它是第 i 行)。然后,它将遍历此示例中包含的每个 告。如果 表标记为与现有唯一错误相同的标记(假设为 k 列),则在第 i 行、第 k 列中记录 1。如果 表标记为新标记,则在查找表中添加新列(假设为 w 列),并在第 i 行、第 w 列中记录 1。对于第 i 行中的空单元格,则用 0 填充。
3.3 基于 CRC 的闭合估计
iSENSE2.0 将每个样本视为捕获(或再捕获)。每次捕获结束时,在更新 bug 到达查找表之后,iSENSE2.0 会根据当前的查找表预测软件中 bug 的总数。下面的小节详细介绍了如何使用上述五个 CRC 估计器(第 2.4 节)来获得估计的 bug。
3.3.1 应用 M0 估计量。M0 估计器根据方程(2)预测错误总数。表 3 显示了每个变量的含义以及如何根据表 2 中的 bug 到达查找表计算其值。注意,当 m 为 0 时,我们简单地将 n1×n2 作为总数。
(2)
3.3.2 应用 Mth 估计值。Mth 估计器根据等式(3)和(4)预测错误的总数。表 3 显示了每个变量的含义以及如何根据表 2 中的 bug 到达查找表计算其值。
(3)
(4)
3.3.3 应用 MhJK 估计量。MhJK 估计器与 Mth 方法相似,只是在方程(5)中,MhJK 估计器是用来估计错误总数的方程。表 3 显示了每个变量的含义,以及如何根据表 2 中的 bug 到达查找表计算其值。
(5)
注意,MhJK 估计还有三个表达式。我们使用所有四个表达式,并通过假设检验选择正确的估计量。
3.3.4 应用恒温器。MhCH 估计器与 Mth 方法相似,只是方程(6)和(7)中用于估计错误总数的方程不同。表 3 显示了每个变量的含义以及如何根据表 2 中的 bug 到达查找表计算其值。
3.3.5 应用刺激。MtCH 估计器也与 Mth 方法相似,只是在方程(8)中其用于估计缺陷总数的方程不同。表 3 显示了每个变量的含义以及如何根据表 2 中的 bug 到达查找表计算其值。
(8)
一旦一个众测任务开始,iSENSE2.0 就可以应用于监控实际的 bug 到达,不断更新 bug 到达查找表,并不断预测 bug 的潜在总数。当预测的错误总数与到目前为止检测到的错误的实际数量相等,并且连续两次捕获的预测保持不变时,就做出了关闭决策。注意,两次连续捕获的限制是为了确保预测的稳定性。我们还尝试了其他限制(即 1 到 5)。结果表明,加 2 的约束可以获得相对较好的稳定性能,因此,由于空间的限制,我们只给出这些结果。
3.4 基于覆盖的健全性检查
回顾第 1 节,基于 CRC 的关闭决策的一个限制是其性能瓶颈与上升-停留-上升-错误到达曲线有关。为了解决这个问题,在 ISENS2.0 中设计了一个基于覆盖范围的健全性检查器,以降低错误警 的可能性,并提供改进的决策支持。
测试代码覆盖率一直被认为是衡量软件质量的指标。提出了各种类型的代码覆盖度量,例如语句覆盖、决策覆盖、条件覆盖、路径覆盖。在众测环境中,出于保密考虑,不太可能获得被测应用程序的源代码。因此,我们提出了一种新的术语覆盖度度量方法来衡量在众包测试环境下任务需求的探索程度。在本研究中,术语覆盖率是指任务要求中包含的术语在所收到的测试 告中所占的比率。术语覆盖率在众测环境中非常适用,因为大多数众测任务都有指定测试目标的要求,众测人员应该满足这些要求。
术语覆盖率是指在一个众测任务中提交的测试 告覆盖了任务需求中的术语的程度。我们首先在描述性术语列表的向量空间中表示任务的需求以及每个提交的 告。假设任务的需求被表示为一组术语 Lreq,假设我们已经收到 K 个 告,jth 个 告被表示为一组术语 Lptj。术语覆盖率使用以下公式进行测量:
(9)
在众测过程中,随着众测 告的到来,iSENSE2.0 不断更新术语覆盖率,当术语覆盖率超过 covThres 时,作为输入参数的健全性检查器做出关闭决策。
IV 结论
对来自最大的众测平台之一的 56920 份众测 告进行评估。iSENSE2.0 可以为管理者提供更大的可能性来实现众测的成本效益收益。使用 iSENSE2.0,基于自动关闭预测,可以检测到 100%的错误,节省 30%的成本。这项工作改进了最先进的方法,具有更好的适用性,因为后者依赖于通常认为耗时且繁琐的重复标记。
致谢
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!