背景
众包:利用群体力量来完成传统方法中成本高昂或耗时的大规模任务,是 Howe Jeff 于 2006 年在美国《连线》杂志上首次提出的一种商业模式。
众包测试流程
- 申请上传:用户将自己的应用程序上传到众测平台,并指定相应的测试任务和酬劳信息。
- 任务选择和环境设置:众测人员自由选择他们想要完成的任务。选择后测试人员从平台上下载应用程序进行测试。
- 提交报告:众测人员根据选择的待测应用,对测试到的缺陷提交缺陷报告。
- 生成最终测试报告:平台收集补充信息,生成最终的缺陷报告,包括:一般信息、设备信息、操作路径等。
- 报告验证:客户将验证所有最终的缺陷报告,并决定如何酬劳每个提交报告的众包测试人员。
协作式众包测试
完成测试任务过程中进行信息共享与任务分配,用户在本系统中既承担测 试任务也承担审核任务,充分利用用户协作,完成目标任务。
- 信息共享:用户在提交报告时进行实时相似报告推荐,避免重复报告提交。
- 任务分配:审核页面推荐待审核的报告列表,测试页面推荐待测页面。
- 协作方式:点赞点踩操作:利用用户的交叉审核,验证报告有效性。
- 一键 Fork:Fork 他人结果后进行修改,利用多人协作提升报告质量。
众测报告质量优化
众测报告信息:
- 缺陷截图
- 文本描述:缺陷行为描述、复现步骤、期望行为
- 测试环境信息
众测报告聚合
大量的测试报告——较多的重复数据:
- 懒惰和缺乏经验的用户。
- 测试报告搜索功能较差。
- 偶然的重复——由于网络等原因不小心提交了多次。
- 给开发者增加了许多工作量。
- 不同的信息可以使开发者对 Bug 有一个更全面的了解。
解决方案:
- Aggregator:对所有的测试报告做聚类,将相同的或相似的测试报告聚为同类。
- Summarizer:对每一类测试报告做整合,将其中的相关信息以可视化的方式最大化的呈现给开发者。
众测报告排序
深度众测报告排序
众测报告半监督聚类
众测报告一致性检测
- 众测工人能力与专业性参差不齐
- 众测报告质量参差不齐
- 众测报告质量的底线——截图与文本的一致性
- 一阶段方法(多模态深度学习模型)的不足
- 二阶段方法——现分类后检测