论文:Zhang Xin, Chen Zhenyu, Fang Chunrong, Liu Zicong. Guiding the crowds for Android testing[J]. 2016:752-753.
https://dl.acm.org/citation.cfm?id=2892659
论文摘要:
技术介绍:
众包测试主要利用互联 平台将测试工作分配出去,具备完成任务技能的志愿者通过在众包测试平台上领取任务,利用业余时间工作,完成测试任务并收取小额 酬。
随着移动设备的普及,移动应用在开发市场上占据重要角色,而移动应用具有上线时间短、迭代周期快以及使用场景的复杂等特点,给软件开发团队实施完整的移动应用测试带来了一定的困难。应运而生的移动应用众包测试具有无可比拟的优势:迭代速度快,“短平快”的流程将问题尽量暴露在上游;测试成本低;需求更真实,通过真实用户的测试,可以获取最真实的用户需求。
虽然移动应用众包测试已经得到了广泛的应用,但是测试的质量问题已经成为了众包测试一个重要的问题——众包测试工人的水平参差不齐,众测的效果有时候很难保证。因此,引导测试工人了解相关信息并完成众包测试任务成为了众包测试一个重要的关注点。
在这个方法中,我们建立两个部分异常数据库,一个用来记录在测试过程中触发的、仍需被测试的异常,为了表达方便,我们将这些异常叫做“被发现的异常”,一个用来记录在测试过程中已经被确认、无需再被测试的异常,这些异常被叫做“被识别的异常”。这两个记录异常的数据库,不仅记录了存在异常的安卓组件信息,还包括测试工人在众包测试过程中触发异常的行为轨迹;基于众测用户是松散管理的事实、众包测试过程可以被近似地认为是串行工作,这个数据库不需要被设计得非常实时,在测试工人领取任务的时候就可以获取一个本地的备份,当测试工人提交 告后,更新中心的数据库。
图1:方法框架
图1是这个方法的框架,下面来逐一介绍这个方法的步骤:
(1)初始化:
任务在慕测平台上向人群开放之前,任务提供者需要借助慕测平台完成每个任务。这些任务提供者由于对测试任务的了解和一定的开发只是,被认为是专业的测试人员。他们在测试过程中触发异常的信息将初始化“被发现的异常”数据库。这些信息是引导众包工人的基础,通过操作轨迹匹配,确定并引导测试人员下一步的操作。此外,测试工人在先前的测试引导下,将更有能力探索更多未知的例外情况。
(2)执行:
在慕测平台上发布任务之后,众包测试工人将会根据测试需求说明书,在慕测平台的帮助下完成任务并进行测试。一方面是众包工人发现新的异常,当测试过程中触发新异常时,新的异常信息都会被记录在“被发现的异常”数据库中。与此同时,在测试过程中,如果当前测试人员的操作轨迹和“被发现异常”数据库中某个异常的操作轨迹相一致,系统将提取该异常的操作轨迹,在页面上引导和提示众包工人去触发和严重异常,如图2所示,当众包工人点击Android插件中的“测试提示”按钮,系统将会根据异常信息对比,提取操作轨迹,在屏幕上以灰显或高亮的形式引导众包工人去验证注册过程中存在的异常;
图2
当众包工人触发了某个异常时,由于该异常在整个测试过程中被触发的次数超过了阀值,这个异常将会被认为是“被识别的异常”,并且从“被发现的异常”数据库中删除。那么在接下来的测试过程中,关于这个异常的提示就不会再给出,以避免重复数据。
这些“被识别的异常”被认为是得到充分证明的,将会被直接反馈给测试任务提供者。
(3)反馈:
如上所述,被多次验证后的异常将会从“被发现的异常”数据库中删除,加入到“被识别的异常”数据库中。这样的一个调整将会引导众包测试工人去探索其他异常,这样一来,越来越多的异常将会被发现,异常的覆盖范围就在这个过程中得到了改善。
以专业的测试结果引导众包测试人员,同时众包测试人员的新探索也是对测试结果的补充,这种迭代的方式丰富了众包测试过程。同时,它避免了在相同的异常上浪费时间,这意味着为任务提供者节约了开销,提高了质量。此外,由于“被识别的异常”已被递归多次,在该方法中,将被直接认定为Bug,任务提供者不需要再去验证,这将在软件测试和软件开发中节省了大量的资源。
(4)处理:
在慕测平台上的任务到期之后,任务的结果将会被提供给任务提供者。对于“被识别的异常”,该方法将直接将这些异常反映给请求者进行调试,而对于“已发现异常”中的信息,该方法将会把这些记录交给开发工人,用于分析其偶然出现的原因。因此在这样一个过程中,众包测试工人可以享受轻松和专业测试过程,而任务提供花费较低的成本和更少的时间来修复Bug。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!