Research Review of Crowdsourcing Testing
Crowdsourcing testing uses the advantages of crowdsourcing and cloud platform to integrate large-scale testers to complete software testing tasks, effectively solving the typical problems of insufficient human resources in traditional testing and the inability to obtain real feedback from users on a large scale, so as to obtain more comprehensive and diversified test results. By systematically analyzing the research literature on crowdsourcing testing in recent years, this paper summarizes the basic process and characteristics of crowdsourcing testing, focuses on the key technologies of crowdsourcing platform incentive mechanism, crowdsourcing test recommendation mechanism and automatic generation of test reports, and completes the systematic induction and comparative analysis of existing technologies. Finally, the challenges of crowdsourcing testing are discussed, such as dynamic adjustment of incentive mechanisms, more personalized task recommendations, generating test cases based on reports, etc. The future research direction is also prospected, especially the opportunities and challenges brought by the aid of large language models.
Crowdsourced Testing
众包(Crowdsourcing)这一概念是由美国《连线》杂志记者Jeff Howe在2006年6月提出的,定义为“一个公司或机构把过去由员工执行的工作任务,通过Web平台,以自由自愿的形式外包给非特定的解决方案提供者群体,共同来完成问题的求解模式”
软件测试通过设计和执行大量测试用例,以完成对软件产品的验证与确认,并基于所反馈的测试结果,来发现与修复软件产品中可能存在的缺陷,改进产品质量。传统的软件测试通常需要大量专业测试人员以及测试环境的构建,存在成本高、耗时长以及测试范围受限等典型问题。随着互联网的兴起和海量软件的涌现,软件测试的重要性变得日益显著,众包测试也受到了越来越广泛的关注。
众包测试是利用互联网中的众包工作者来执行软件测试任务的一种方法。借助互联网平台,将测试任务分发给大量的众包工人,他们可以独立或协同地完成测试任务,并在规定时间内提交测试记录。平台能够整合用户的知识、经验和技能,以提供低成本高质量的服务。众包测试以经济高效的方式吸引来自不同地域和领域、具备不同技术专长的测试人员,在需要迅速获取市场需求和面临人力资源短缺的情况下表现卓越。更为重要的是,它为开发者提供了来自真实用户的体验反馈,有助于提升软件质量并提高用户满意度。本文研究梳理了2017年以来大量关于众包测试的文献,首先介绍了众包测试的背景以及流程,然后对激励机制、推荐机制、报告自动生成三项关键技术进行了对比和分析,最后对众包测试进行了总结并对未来研究进行了展望。
在众包测试活动中,主要参与者包括任务请求者(Requester)、众包工人(Crowd Worker)和众包平台方(Platform)。众包测试平台作为第三方,为任务请求者和众包工人提供在线系统
任务请求者,指的是有测试需求的个人或企业,通过发布众包测试任务的方式,对内部的测试进行有针对性的补充,同时获取用户真实体验反馈,以减少软件或产品上线时的问题。
众包工人,包括专业的测试人员、测试爱好者和学生等人群,他们通过平台来参与测试任务,在规定的时间内完成测试并提交测试记录,以此来获得报酬。
众包测试平台通过召集测试人员来完成发布的测试任务。目前的众包测试平台有两大类,一类是特定公司的平台,主要对公司内部产品进行用户体验和功能测试,如百度众测平台等。另外一类是开放性平台,如Testin、Alltesting等,测试类型十分全面,包括兼容性测试、功能测试、性能测试等多个方面。
众包测试平台的基本流程首先是任务请求者提交待测软件和测试任务至众测平台,众测平台将测试任务分发给合适的众包工人,或者由众包工人通过众测平台选择感兴趣的测试任务,众包工人完成测试任务后,将测试结果以测试报告的形式提交至众测平台,如
众包测试通过吸引来自不同地域和领域、不同技术专长的测试人员,来提供多元化的测试视角和结果,从而更大程度地覆盖测试角度,有助于发现软件的潜在缺陷。Sultan Alyahya
本文对“众包测试”、“众包测试报告”以及“众包测试推荐”等关键词进行检索,选取自2017年以来的相关文献进行梳理分析。本章对众包测试的关键技术进行总结。
招募和有效管理大量优质的众包测试工人是进行众包测试任务的先决条件。随着众包测试任务的复杂性增加,通常需要确保众包工人具备一定的测试能力,以有效解决测试问题。众包工人通常是自愿参与平台上的任务,但他们的动机多样。一方面,受到利益的驱动;另一方面,可能是出于学习和实践的目的。完成测试任务会获得相应的奖励,这也可能导致一些恶意注册者提供相同或相似的结果,来骗取奖励。因此,不仅需要建立合理的奖励机制,还要考虑对不诚实完成任务的用户进行惩罚。这样的激励机制可以确保有足够数量和质量的众包工人参与测试任务,从而保证任务能够高质量完成。
傅彦铭等人
高丽萍等人
王强等人
激励机制从单一约束到多约束的演进标志着逐渐从简单的任务分配发展到适应复杂任务的、能够实时响应的系统。多约束的方法能够选择更符合条件的优质工人,提高工人执行任务的质量,但是会增加系统复杂度,需要依赖更细致的数据来实现精确筛选。多阶段在线感知激励机制通过多个阶段提高数据质量,支持动态调整,保证预算与时间效率,但在数据不足时效果难以保证。隐私保护激励机制,适用于敏感任务保护工人的隐私,但会使系统实施成本和复杂度增加。
由于众包测试的匿名性以及无监督性,使得众包工人在执行测试任务时容易产生懈怠或故意欺诈的行为,以此获得最大化收益,最终对测试质量产生负面影响。因此,需要对众包工人进行信誉度评估,以确保众包工人参与测试的质量。需要建立一套可靠的评估方法,以评估众包工人的能力和工作表现。通过对历史记录、任务完成情况、任务发布方的评价进行分析,有助于提升测试任务的质量和效率,确保众包工人保持责任心,提高工作表现,以满足测试的需求。
成静等人
褚佳静
众测平台作为众包工人和测试任务的桥梁,通常仅支持搜索任务。一般情况下,众包工人会根据发布时间或从任务列表的前几页选择感兴趣的任务,以此降低搜索任务的成本。但实际上,他们可能并不具备完成这些测试任务的专业能力。这种策略可能会导致任务分配不均匀,影响任务完成的质量,还影响用户体验。为了提高任务分配均衡性和效率,众测平台需要对众包工人进行个性化的推荐。
考虑到测试成本限制,通常一个测试任务只能由有限数量的众包工人完成。当然,更多的众包工人不一定会检测出来更多的软件缺陷。由于众包工人有着不同的测试经验和专业知识,其测试结果可能存在差异。如果一个测试任务由不适合的众包工人进行测试,可能导致缺陷重复或测试不够全面,从而降低测试的质量。因此,众包测试任务推荐还要确保测试任务分配给具备相应测试技能的众包工人,以提高测试效率和质量。
Wang等人
Cui等人
蒋竞等人
马华等人
成静等人
沈旭等人
袁宇宸
众包测试推荐从最初使用基于规则的方法以及简单算法,逐渐到使用复杂优化算法以及机器学习,到现在使用深度学习,其目的就是为了不断提高推荐系统的准确性和效率。多目标策略可以适应多变的任务需求,但应对新任务的适应性可能下降。机器学习模型可以快速响应,但需要更详细的工人特征描述数据以及参数优化。图注意网络可以根据实际情况动态调整聚合策略,但计算复杂度较高。胶囊网络可以处理大规模标签问题,对数据量的依赖较大。深度学习在性能上可能更有优势,但是其结果依赖于数据的数量以及质量,在实际应用中还需考虑模型的复杂度,通过综合利用新技术来提高众包测试推荐的效率和准确性。
在众包测试过程中,众包工人会提交大量质量参差不齐的测试报告,这导致众包测试平台和任务请求者将面临如何有效整合众包测试报告的难题。测试报告由自然语言描述组成,通常附带截图,并包括工人对测试是否通过的评估。在众包测试报告提交后,为了避免任务请求者花费大量的时间进行人工审查,影响到众包测试的效率。在有限时间内对众包测试提交的数量大、冗余多、缺陷重要程度不明的报告进行审查和评估,是一个亟需解决的难题。近年来涌现了许多自动化技术,如报告的聚类、分类和排序技术,旨在提高审查效率并减少对重复报告审查的工作量。利用深度学习模型处理大量的测试记录,能够为众包测试报告整合提供很大助力,相较于传统的方法更加准确高效。
Zhu等人
童瑶
Yu等人
Hao等人
Jiang等人
Yu等人
测试报告排序,使用自然语言处理提取文本特征,使用贪心算法等进行排序,虽然简单高效,但在处理复杂多变的场景时有一定局限性。使用OCR提取截图关键字,将文本特征和图像特征结合聚类分析,从而更全面地理解报告内容。使用计算机视觉与自然语言处理并计算相似度进行排序,提高了对不同测试类型的适应性。测试报告汇总,通常仅对文本描述进行模糊聚类,该方法简单快捷,但准确率可能不足。使用深度学习模型考虑图像与文本融合理解,考虑更多的信息能够提高汇总效率,但计算资源需求较高。未来将研究聚焦于如何有效结合这些技术,优化算法、减少资源消耗,以适应更广泛的应用场景,助力软件测试更快速定位和解决软件存在的问题。
众包测试作为一种重要的软件测试解决方案,经过不断发展已形成一套稳定的流程。本文研究了自2017年以来关于众包测试相关的文献,深入探讨了众包测试的关键技术,包括激励机制、测试任务推荐、测试报告自动生成。随着技术的不断发展,众包测试将会为软件测试领域带来更多的创新和提升,同时也不断面临新的机遇与挑战。现有激励机制多数是静态的,可以根据众包工人选择偏好、完成效率等更多行为数据,动态调整激励策略,以持续激发工人的参与积极性。众包测试推荐系统,面临如何应对更复杂的推荐场景的问题,使用深度学习模型分析参与者的行为与心理,预测参与者的偏好和行为动机来提供更为个性化的任务推荐。在测试报告的自动化处理上,未来研究将更加注重于深度学习模型分析文本、图像甚至视频的多模态数据,以实现更准确的测试报告生成,并根据处理后的测试报告生成测试用例。
未来,大模型的应用可能会为众包测试带来革命性的变化。大模型具有强大的学习能力和泛化能力,在语言理解、图像识别任务上有出色的表现,并对未知数据具有良好的预测能力。例如,可将OpenAI的GPT模型应用于测试用例的自动生成,由于其具有强大的语言理解和生成能力,通过理解软件的功能需求和使用场景,能够自动生成覆盖各种边界条件和异常的测试用例。对于那些脚本编辑能力不强的众包工人来说,它还可以帮助其理解测试需求,自动编写测试脚本,并根据错误提示修改代码,从而提升测试效率。当然,将大模型应用于众包测试也面临一些挑战。例如,如何训练模型以满足各种不同的软件测试环境,以及如何确保模型生成的测试用例及测试脚本的准确性和可解释性。另外,某些软件测试可能涉及待发布的版本,还需要考虑如何保证模型的安全性和隐私性。这些问题的研究与探索,都将促进众包测试的发展以及软件质量的提升。
校级研究生创新资助项目(项目编号:YKY-2023-36);校级研究生创新资助项目(项目编号:YKY-2024-45)。
*通讯作者。