Grant: Discovery Grants Program - Individual
York University
$70,000.00
Program Behavior Representation Learning for Software Testing
EF 2024-25
Résumé
Software has been incorporated into an ever-increasing number of mission and safety-critical systems such as self-driving cars, air traffic control systems, communication platforms, e-banking infrastructures and e-commerce systems. Such systems provide central and crucial services to our society and thus require high quality software. However, history is full of software failures that have caused numerous problems: aircraft have crashed, patients have died from incorrect medication, and key financial systems have broken down. My research is directed towards improving the quality of software.
My program focuses on software testing as the most commonly used method of quality assurance in the software industry. Recent research has shown that systematic test automation potentially increases the effectiveness of testing and reduces its cost. The ultimate goal in software testing is to make sure the actual behaviour of the software at run-time matches the expected behavior of the software. However, manually defining the behavior is quite costly. Thus, most existing test automation techniques are source code-driven and miss many challenging behavioral defects.
The core idea of this research is to change the current tradition of source code-driven testing of software programs to behavior-driven testing, without the extra cost of manual modeling. I propose an approach where using machine learning, the behavioral model of the program can be inferred and optimized. Such inferred models can then be used to further test the software. The models will be optimized toward test generation. In other words, they distinctly identify the part of behavior space that requires more testing. In addition, they provide mechanisms to actually generate such tests.
The proposed techniques will be empirically evaluated on large software systems and compared against existing software test automation techniques. Since software testing is one of the most commonly used techniques in almost every software development process, Canadian software communities in many sectors will be well positioned to benefit from the outcomes of this research, through decreased costs and increased software quality leading to enhanced competitiveness, internationally.
Though this proposal is only about functional testing, the long-term goal is to generalize its core idea of learning a specialized behavioral model to run-time analysis in other domains such as debugging, program comprehension, and security. Thus, this research has the potential to affect many sub-domains within computer science and software engineering.
The proposed research program will train 11 highly qualified personnel (HQP): 2 PhD and 4 Master and 5 undergrad summer students. All HQPs will work closely with Canadian companies, gaining an appreciation of the challenges facing practitioners on a daily basis and helping them to improve their products and processes.
Programme
Discovery Grants Program - Individual
Bénéficiaire
Emplacement
Ontario, Canada
Type de bénéficiaire
Academia
Type
Grant
Source
NSERC's Awards Data
Tel que publié
Application id
RGPIN-2020-04552
Name nom
HEMMATI, HADI
Department département
Electrical Engineering & Computer Science - Electrical Engineering & Computer Science
Organization id
38
Institution établissement
York University
Province en
Ontario
Province fr
Ontario
Country en
CANADA
Country fr
CANADA
Fiscal year exercice financier
2024
Competition year année de concours
2020
Award amount
70000
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
801
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
Computer software
Area of application fr
Logiciel
Research subject code
2706
Research subject group en
Information technology
Research subject group fr
Technologie de l'information
Research subject en
Software engineering
Research subject fr
Génie logiciel
Field of research list names en
Not available
Field of research list names fr
Non disponible
Socioeconomic objective list names en
Not available
Socioeconomic objective list names fr
Non disponible
Application title
Program Behavior Representation Learning for Software Testing
Keywords
software testing; sequence learning; behavior coverage; automated software engineering; deep learning; diversification; machine learning; representation learning; generative models; test case generation
Application summary
Software has been incorporated into an ever-increasing number of mission and safety-critical systems such as self-driving cars, air traffic control systems, communication platforms, e-banking infrastructures and e-commerce systems. Such systems provide central and crucial services to our society and thus require high quality software. However, history is full of software failures that have caused numerous problems: aircraft have crashed, patients have died from incorrect medication, and key financial systems have broken down. My research is directed towards improving the quality of software.
My program focuses on software testing as the most commonly used method of quality assurance in the software industry. Recent research has shown that systematic test automation potentially increases the effectiveness of testing and reduces its cost. The ultimate goal in software testing is to make sure the actual behaviour of the software at run-time matches the expected behavior of the software. However, manually defining the behavior is quite costly. Thus, most existing test automation techniques are source code-driven and miss many challenging behavioral defects.
The core idea of this research is to change the current tradition of source code-driven testing of software programs to behavior-driven testing, without the extra cost of manual modeling. I propose an approach where using machine learning, the behavioral model of the program can be inferred and optimized. Such inferred models can then be used to further test the software. The models will be optimized toward test generation. In other words, they distinctly identify the part of behavior space that requires more testing. In addition, they provide mechanisms to actually generate such tests.
The proposed techniques will be empirically evaluated on large software systems and compared against existing software test automation techniques. Since software testing is one of the most commonly used techniques in almost every software development process, Canadian software communities in many sectors will be well positioned to benefit from the outcomes of this research, through decreased costs and increased software quality leading to enhanced competitiveness, internationally.
Though this proposal is only about functional testing, the long-term goal is to generalize its core idea of learning a specialized behavioral model to run-time analysis in other domains such as debugging, program comprehension, and security. Thus, this research has the potential to affect many sub-domains within computer science and software engineering.
The proposed research program will train 11 highly qualified personnel (HQP): 2 PhD and 4 Master and 5 undergrad summer students. All HQPs will work closely with Canadian companies, gaining an appreciation of the challenges facing practitioners on a daily basis and helping them to improve their products and processes.