Canada Spends Logo

Explorez notre analyse du budget 2026

Grant: Discovery Grants Program - Individual

University of Ontario Institute of Technology

$23,000.00

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

EF 2022-23

Résumé
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.
Programme
Discovery Grants Program - Individual
Emplacement
Ontario, Canada
Type de bénéficiaire
Academia
Type
Grant
Source
NSERC's Awards Data

Tel que publié

Application id
RGPIN-2018-06588
Name nom
Bradbury, Jeremy
Department département
Science, Faculty of - Science, Faculty of
Organization id
19222
Institution établissement
University of Ontario Institute of Technology
Province en
Ontario
Province fr
Ontario
Country en
CANADA
Country fr
CANADA
Fiscal year exercice financier
2022
Competition year année de concours
2018
Award amount
23000
Program id
RGPIN
Program name en
Discovery Grants Program - Individual
Program name fr
Programme de subventions à la découverte - individuelles
Group en
DISCOVERY RESEARCH
Group fr
RECHERCHE AXÉE SUR LA DÉCOUVERTE
Committee code
1507
Committee name en
Computer Science
Committee name fr
Sciences informatiques
Area of application code
802
Area of application group en
Information and communication services
Area of application group fr
Services d'information et de télécommunications
Area of application en
Information systems and technology
Area of application fr
Systèmes d'information et technologie de l'information
Research subject code
2700
Research subject group en
Information technology
Research subject group fr
Technologie de l'information
Research subject en
Information technology
Research subject fr
Technologie de l'information
Installment
inst:5
Partie
1
Nb partie
6
Application title
Utilizing Artificial Intelligence to Improve the Testing and Debugging of Concurrent Software
Application summary
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.