Software is one of the most complicated things people build. There are very few other things that require this level of perfection, with so many moving parts and changing in real time.
Practically, we have come to accept that absolute perfection is unreasonable to expect and bug detection and fixing is a major part of the software development process. Software bugs have been notorious for embarrassing delays in multi-billion dollar projects like the case of the F35 Lightning II (Joint strike fighter), and we need an effective way to mitigate, detect and fix these bugs if we want to be creating more and more complex software in the future.
Writing clean, organized, modular and readable code is one way to make this process easier. Many automated bug fixing and testing tools are also available. But these mostly use conventional heuristic search to detect bugs. The main disadvantage of this is that the system cannot detect method-invocation related bugs or prioritize between a large number of patch candidates and the patching has to be done manually.
Fujitsu, Japanese based Tech Giant has successfully used machine learning to create an AI that will completely change our approach to the development process, eventually making bugs, a thing of the past. Expected to launch in 2018, Fujitsu’s tool uses Big Data to train AI models to detect and fix bugs in object-oriented languages that are used in large-scale business applications including JAVA. The system is has proven itself to be much more effective than current tools for single fault location bugs, also detecting and fixing method invocation related bugs that traditional tools cannot.
Besides the hype, Machine Learning is fast becoming an essential part of our problem-solving strategy, allowing us to surpass our limitations and augment our abilities to an extent never before imagined.
-Triman S Bhullar