软件可靠性测试
计算机科学
非回归检验
测试策略
回归检验
系统集成测试
白盒测试
软件性能测试
软件建设
关键字驱动测试
甲骨文公司
软件测试
验证和确认
软件工程
机器学习
软件
手动测试
软件开发
工程类
程序设计语言
运营管理
作者
Vinícius H. S. Durelli,Rafael S. Durelli,Simone S. Borges,André Takeshi Endo,Marcelo Medeiros Eler,Diego Roberto Colombo Dias,Marcelo P. Guimarães
出处
期刊:IEEE Transactions on Reliability
[Institute of Electrical and Electronics Engineers]
日期:2019-02-12
卷期号:68 (3): 1189-1212
被引量:140
标识
DOI:10.1109/tr.2019.2892517
摘要
Software testing involves probing into the behavior of software systems to uncover faults. Most testing activities are complex and costly, so a practical strategy that has been adopted to circumvent these issues is to automate software testing. There has been a growing interest in applying machine learning (ML) to automate various software engineering activities, including testing-related ones. In this paper, we set out to review the state-of-the art of how ML has been explored to automate and streamline software testing and provide an overview of the research at the intersection of these two fields by conducting a systematic mapping study. We selected 48 primary studies. These selected studies were then categorized according to study type, testing activity, and ML algorithm employed to automate the testing activity. The results highlight the most widely used ML algorithms and identify several avenues for future research. We found that ML algorithms have been used mainly for test-case generation, refinement, and evaluation. Also, ML has been used to evaluate test oracle construction and to predict the cost of testing-related activities. The results of this paper outline the ML algorithms that are most commonly used to automate software-testing activities, helping researchers to understand the current state of research concerning ML applied to software testing. We also found that there is a need for better empirical studies examining how ML algorithms have been used to automate software-testing activities.
科研通智能强力驱动
Strongly Powered by AbleSci AI