Context: Machine learning (ML) may enable effective automated test generation. Objective: We characterize emerging research, examining testing practices, researcher goals, ML techniques applied, evaluation, and challenges. Methods: We perform a systematic mapping on a sample of 102 publications. Results: ML generates input for system, GUI, unit, performance, and combinatorial testing or improves the performance of existing generation methods. ML is also used to generate test verdicts, property-based, and expected output oracles. Supervised learning - often based on neural networks - and reinforcement learning - often based on Q-learning - are common, and some publications also employ unsupervised or semi-supervised learning. (Semi-/Un-)Supervised approaches are evaluated using both traditional testing metrics and ML-related metrics (e.g., accuracy), while reinforcement learning is often evaluated using testing metrics tied to the reward function. Conclusion: Work-to-date shows great promise, but there are open challenges regarding training data, retraining, scalability, evaluation complexity, ML algorithms employed - and how they are applied - benchmarks, and replicability. Our findings can serve as a roadmap and inspiration for researchers in this field.
翻译:摘要:背景:机器学习(ML)可以实现有效的自动化测试生成。 目的:我们表征新兴研究,研究测试实践,研究人员的目标,应用的机器学习技术,评估和挑战。 方法:我们对102篇出版物进行了系统映射。 结果:ML为系统,GUI,单元,性能和组合测试生成输入,或改进现有的生成方法。 ML 也用于生成测试判决、基于属性的和期望输出的神谕。监督学习 - 通常基于神经网络 - 和强化学习 - 通常基于 Q-learning - 是常见的,一些出版物也采用了半监督或无监督学习。(半/无)监督方法使用传统测试指标和与 ML 相关的指标(例如准确性)进行评估,而强化学习通常使用与奖励函数相关的测试指标进行评估。 结论:迄今为止的研究显示出很大的前景,但是有关训练数据,重新训练,可扩展性,评估复杂性,ML 所采用的算法 - 以及如何应用这些算法 - 基准和可重复性等方面存在着开放性挑战。我们的发现可以为此领域的研究人员提供路线图和启示。