Blog

Role of AI in software development and testing

 

The development teams who are into creating large video games beloved by billions of players overcome some of the highly difficult technical issues in software development. These are known as triple-A games, that often need designers and programmers in large numbers coming from around the world, working combinedly in order to develop more than a billion lines of code. Role of AI in software development and testing is already significant, but the future will likely prove it to be that it will be core essential.

To overcome the challenge, game developer giant Ubisoft has designed an internal research initiative, to concentrate more on artificial intelligence and machine learning techniques that assist developers to create more reliable and cleaner code. The first project, named as Commit Assistant, follows AI techniques to identify bugs faster in code commits and caution developers, so they can rectify the potential errors in code.

Ubisoft’s approach reflects efforts over the technology environment to increase the use of Artificial Intelligence. The techniques in machine-learning are highly used for automated data processing in large amounts, extracting the key information. The AI processes can convert that information into action, even if it’s an alert for the security event, or a move on a game board, or a warning of a software defect. Developments in AI combined with software development are exclusively augmenting developer’s abilities, not replacing them. The techniques in AI are used for better source code analysis, rapid prototyping and automated help with code production.

Still, the progress is slow, because applying AI to software development is neither straightforward nor simple, said Gabe Hicks, CTO for Dev9.

Developers will need to speak AI

Artificial Intelligence is already being applied to the variety of software contexts, including generating exceptions, optimizing code and system overrides, refactoring programs and identifying conflicting processes. A large amount of data is already present-regarding resulting bugs and specific code-to teach systems the way to identify failure.  

Still, the problems exist with the current systems, they often produce false positives. Taking the case of Ubisoft’s commit assistant, identified 6 out of 10 Software issues correctly, but had a rate of 30% false-positives. To improve the system’s ability by investigating the false positives and classifying potential code problems require researchers and developers to understand how the AI came to its conclusions.

AI will not decrease the need for developers

One fear is that AI will take the place of developers. Nevertheless, the coming singularity–the term for when a system becomes smarter than its creators–is a considerable way off, researchers said.

The Rice University has produced a system to suggest quick code prototypes for certain programming tasks. “Bayou” which is a statistical general framework which automatically synthesizes programs at a real programming language, in this case -Java,  has a simple description of the desired task to be accomplished.

However, developers continue to be essential, said Vijay Murali, a Rice University research scientist and one of the researchers behind Bayou.

Experts envision AI from the future to be the assistant to developers as opposed to replacing them entirely. Artificial Intelligence can learn from human-written code and automate majority of the “typical but monotonous programming tasks”.

Code security may benefit from AI

Since code safety is essential, AI techniques have been employed to secure the software, said Dev 9’s Hicks.

Artificial Intelligence can take static code analysis to another level, using plenty of lines of code to find out the correct patterns of programming and following that find in those routines, in a new code. This is particularly important when integrating third-party code into a program.

AI will make development more complicated

In the brief term, AI will make things more strenuous, maybe easier. Like parents with newly born, researchers and developers working with a young AI system may need to continue to teach it and tweak the system.

Ubisoft’s false-positive speed of 30 per cent is a great example. Each flagged bit of code has to be vetted to ensure it is a real bug, taking time. And AI systems that don’t explain their “reasoning” in user-friendly terms may only make the procedure more involved.

 


Author :

Saikumar Talari is a content writer who is currently working for Mindmajix.com. He is a technical blogger who likes to write content on emerging technologies in the software industry. In his free time, he enjoys playing football. He can be reached through LinkedIn and Twitter.

Leave a Reply

Your email address will not be published. Required fields are marked *