课题基金 / 基金详情

Utilizing Artificial Intelligence to Improve the Testing and Debugging of Concurrent Software

Utilizing Artificial Intelligence to Improve the Testing and Debugging of Concurrent Software
利用人工智能改进并发软件的测试和调试
批准号:
RGPIN-2018-06588
负责人:
Bradbury, Jeremy
金额:
$1.68万
依托单位国家:
加拿大
项目类别:
Discovery Grants Program - Individual
财政年份:
2022
资助国家:
加拿大
项目状态:
已结题
起止时间:
2022-01-01 至 2023-12-31

项目摘要

项目成果

Bradbury, Jeremy的其他基金

相似基金

相关文献

中文摘要
翻译
近年来,通过使用人工智能(AI)技术,包括基于元启发式搜索的技术和机器学习,传统的软件测试和分析得到了增强。此外,这些方法解决的软件测试和分析问题的范围从测试集生成到错误修复。这些以人工智能为中心的方法的用例范围从提供推荐的操作到完成软件测试活动的自动化。我提出的研究计划侧重于应用人工智能技术来辅助并行软件的测试和调试。由于不确定的线程调度,并发或多线程软件很难推理。此外,并发软件的非确定性线程调度通常需要不同于顺序软件系统的测试、分析和调试方法。关于并发软件的推理的困难产生了对能够通过提供反馈和建议或者甚至通过完全自动化测试和调试过程来帮助软件测试人员的技术的更大需求。在提出的研究计划中,我计划从两个不同的角度应用人工智能技术:(1)以工具为中心的观点,专注于开发新的自动化并发测试工具。并发测试和调试的许多方面可以受益于基于搜索的软件技术或机器学习方法的应用。这方面的开放研究领域包括源代码中并发错误的本地化以及测试和调试的线程调度的优先顺序。(2)以开发人员为中心的观点,专注于帮助开发人员提高他们的并发测试技能和执行并发测试任务。一方面,我们计划使用自适应的基于游戏的学习来改进并发性测试和调试技能的发展。使用基于搜索的技术和机器学习方法来使严肃的教育游戏适合单个学习者是这些方法在软件工程中的一个新应用。这些游戏还可用于培训学生和专业测试人员有关并发测试技术的知识。另一方面,我们计划在并发软件的测试和调试过程中改进信息的呈现和可视化。了解要显示什么数据以及如何显示数据是具有挑战性的任务,这些任务可能因系统而异,也因测试任务而异。总之,从这两个角度将人工智能应用于并发测试问题是至关重要的,以确保我们能够帮助满足对更好的并发测试工具和更好的并发测试专业人员的需求。
英文摘要
In recent years, traditional software testing and analysis has been enhanced through the use of Artificial Intelligence (AI) techniques including meta-heuristic search-based techniques and machine learning. Furthermore, the software testing and analysis problems addressed by these methods have ranged from test suite generation to bug repair. The use cases for these AI-centric approaches has ranged from providing recommended actions to complete automation of software testing activities.My proposed research program focuses on the application of AI techniques to assist in the testing and debugging of concurrent software. Concurrent or multi-threaded software is challenging to reason about due to non-deterministic thread scheduling. Furthermore, the non-deterministic thread scheduling of concurrent software often requires different approaches to testing, analysis and debugging then those utilized with sequential software systems. The difficultly in reasoning about concurrent software creates an even greater need for techniques that can assist software testers by providing feedback and recommendations or even by completely automating the testing and debugging process. Within the proposed research program, I plan to apply AI techniques from two different perspectives: (1) A tool-centric perspective focused on the development of new automated concurrency testing tools. There are many aspects of concurrency testing and debugging that can benefit from the application of search-based software techniques or machine learning methods. Open areas of research in this context include the localization of concurrency faults in source code as well as the prioritization of thread schedules for testing and debugging.(2) A developer-centric perspective focused on assisting developers enhance their concurrency testing skills and perform concurrency testing tasks. On the one hand, we plan to improve concurrency testing and debugging skill development using adaptive game-based learning. The use of search-based techniques and machine learning methods to adapt a serious educational game to an individual learner is a novel application of these methods in Software Engineering. These games can also be used to train both students and professional testers in concurrency testing techniques. On the other hand, we plan to improve information presentation and visualization during testing and debugging of concurrent software. Understanding what data to display and how to display it are challenging tasks that can vary from system to system and from testing task to testing task. In summary, applying AI to concurrency testing problems from both of these perspectives is essential to ensure that we can help fill the need for both better concurrency testing tools and better concurrency testing professionals.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
Utilizing Artificial Intelligence to Improve the Testing and Debugging of Concurrent Software
Utilizing Artificial Intelligence to Improve the Testing and Debugging of Concurrent Software
Utilizing Artificial Intelligence to Improve the Testing and Debugging of Concurrent Software
Utilizing Artificial Intelligence to Improve the Testing and Debugging of Concurrent Software
海外基金