Innopolis University employee received a Facebook grant
Associate Professor of Industrial Software Development Laboratory of Innopolis University Ju-Yong Lee offered the best research in the field of speedy automation of eliminating bugs and entered the top ten winners of The Facebook Testing and Verification Research Awards. A total of 145 researchers from around the world sent applications for the grant. The scientist told us about the work on his research.
About the study
I would like to clearly indicate right away what software testing is. Its main goal is to find errors in the program, not registered by software developers. If the tests are successful, then we can safely say that your program is ready for release.
It seems that finding a bug in the software is not so difficult, especially if the developer already has experience using software with bugs. Yes, there are errors that can be easily noticed and found, but developers often do not see vulnerabilities that even after their careful work can be detected by hackers. With the help of testing, we want to find errors before we become victims of accidents due to safety violations and car accidents. According to The Associated Press, the fault of the program errors of Toyota cars in 2000–2010 killed 89 people.
The main goal of the project is to automatically correct technical defects or errors in programs. Virtually any software contains bugs, especially with the advent of continuous development, testing and implementation processes. Now it is becoming increasingly difficult for developers to fix bugs in a timely manner. Therefore, it is necessary to keep the software as safe as possible from defects, and many researchers, including myself, are trying to find a solution and develop a method for automatic troubleshooting. In this particular project, I try to increase the speed of automatic correction of technical errors in order to minimize the time between their detection and elimination.
Automatic fix technical bugs tested by many researchers, including me. The first results were accepted by the industry, and companies such as Facebook have already begun to use automatic elimination of such bugs as a faulty point that points to a non-existent cell.
What this will solve
Everyone has their own interests. I am interested in programming languages, software verification and testing, all this is inextricably linked with the understanding of computer programs. Not so long ago, automatic error correction became for me a separate topic for research. I think in the future, the software will be created by artificial intelligence, which will allow developers to devote more time to work on key software components.
Over the past decade, automatic error correction has made quite a big leap forward, thanks to the efforts of developers, including mine. I worked on improving automatically generated patches and auto-fixes. I think that the next breakthrough we need is fast speed. Until now it was believed that automatic error correction will be used in batch mode, so the issue of speed was not in the first place. Developers start automatic error correction and go home. And by the next morning, the sections automatically adjusted overnight are ready for viewing. But experience shows that it is best to correct errors immediately after writing a bug program, while the developer still remembers what he wrote there. Therefore, I proposed a study of high-speed automatic bug fixes.
Competitors
It was an international grant and development was offered by researchers from around the world. Facebook received 145 entries and selected 10 winners, including me. This number (6.9%) shows how much competition was tougher compared to receiving a grant at top conferences, where the percentage of approved applications is usually 20%.
All 10 laureates of the award and their research are published on Facebook Research . The winners were well-known researchers in their fields from prestigious universities: Carnegie Mellon University, University College London, University of California at Berkeley, and Humboldt University in Berlin.
Future plans
Automated troubleshooting is still a young area, and there are a lot of things to work on. We need a method that can fix more errors more accurately and quickly, and I plan to work in this direction. In the future, it would be desirable that artificial intelligence could not only correct errors, but help developers throughout the entire process.
Like many other academic studies, projects in the field of automatic elimination of technical errors cannot be solved by a single study. It is necessary to take into account many dimensions in order for the idea to become practical. As I have already said, I focus on the rate of elimination of technical errors, but speed is only one dimension to solve the problem. Other measurements include the percentage of error recognition success, the accuracy of troubleshooting, etc. In science and technology, the improvement of one dimension helps the development of another, and this is what I plan to do in the future - to continue to expand the boundaries of automatically solving technical problems in various dimensions.
As for the applicability of such a technique, I used it earlier in the automatic generation of feedback for programs written by students. This so-called smart tutoring system is one of the areas where research results can be applied.
About the study
I would like to clearly indicate right away what software testing is. Its main goal is to find errors in the program, not registered by software developers. If the tests are successful, then we can safely say that your program is ready for release.
It seems that finding a bug in the software is not so difficult, especially if the developer already has experience using software with bugs. Yes, there are errors that can be easily noticed and found, but developers often do not see vulnerabilities that even after their careful work can be detected by hackers. With the help of testing, we want to find errors before we become victims of accidents due to safety violations and car accidents. According to The Associated Press, the fault of the program errors of Toyota cars in 2000–2010 killed 89 people.
The main goal of the project is to automatically correct technical defects or errors in programs. Virtually any software contains bugs, especially with the advent of continuous development, testing and implementation processes. Now it is becoming increasingly difficult for developers to fix bugs in a timely manner. Therefore, it is necessary to keep the software as safe as possible from defects, and many researchers, including myself, are trying to find a solution and develop a method for automatic troubleshooting. In this particular project, I try to increase the speed of automatic correction of technical errors in order to minimize the time between their detection and elimination.
Automatic fix technical bugs tested by many researchers, including me. The first results were accepted by the industry, and companies such as Facebook have already begun to use automatic elimination of such bugs as a faulty point that points to a non-existent cell.
What this will solve
Everyone has their own interests. I am interested in programming languages, software verification and testing, all this is inextricably linked with the understanding of computer programs. Not so long ago, automatic error correction became for me a separate topic for research. I think in the future, the software will be created by artificial intelligence, which will allow developers to devote more time to work on key software components.
Over the past decade, automatic error correction has made quite a big leap forward, thanks to the efforts of developers, including mine. I worked on improving automatically generated patches and auto-fixes. I think that the next breakthrough we need is fast speed. Until now it was believed that automatic error correction will be used in batch mode, so the issue of speed was not in the first place. Developers start automatic error correction and go home. And by the next morning, the sections automatically adjusted overnight are ready for viewing. But experience shows that it is best to correct errors immediately after writing a bug program, while the developer still remembers what he wrote there. Therefore, I proposed a study of high-speed automatic bug fixes.
Competitors
It was an international grant and development was offered by researchers from around the world. Facebook received 145 entries and selected 10 winners, including me. This number (6.9%) shows how much competition was tougher compared to receiving a grant at top conferences, where the percentage of approved applications is usually 20%.
All 10 laureates of the award and their research are published on Facebook Research . The winners were well-known researchers in their fields from prestigious universities: Carnegie Mellon University, University College London, University of California at Berkeley, and Humboldt University in Berlin.
Future plans
Automated troubleshooting is still a young area, and there are a lot of things to work on. We need a method that can fix more errors more accurately and quickly, and I plan to work in this direction. In the future, it would be desirable that artificial intelligence could not only correct errors, but help developers throughout the entire process.
Like many other academic studies, projects in the field of automatic elimination of technical errors cannot be solved by a single study. It is necessary to take into account many dimensions in order for the idea to become practical. As I have already said, I focus on the rate of elimination of technical errors, but speed is only one dimension to solve the problem. Other measurements include the percentage of error recognition success, the accuracy of troubleshooting, etc. In science and technology, the improvement of one dimension helps the development of another, and this is what I plan to do in the future - to continue to expand the boundaries of automatically solving technical problems in various dimensions.
As for the applicability of such a technique, I used it earlier in the automatic generation of feedback for programs written by students. This so-called smart tutoring system is one of the areas where research results can be applied.