# How can AI help developer to develop things

I have seen an AI create a game it self, AI act as a lawyer, call center etc.

There are many problems (Example for mobile development)

1. New api/technology or even new language every year.
2. New design
3. New hardware
4. Good code architecture, design pattern
5. Security
6. Image/Animation optimization
7. Automate testing


etc.

I wonder that AI can help developer solve that problems.

1.1 May be I want to get the location then AI suggest the best api for specific platform.

1.2 AI help to refactoring and optimizing the code

1. Help on design e.g. golden ratio, Material theme color

2. Suggest or determine the limit of the hardware e.g. screen size, ram

3. Can convert to another design pattern

4. Help to waring the latest vulnerable and automate pentest etc.

5. Help to optimize image by learning how much can we reduce the image size while people still ok with it.

6. Generate automate-testing

Is there any solution existed?

If not, what can we do?

• "1.1 May be I want to get the location then AI suggest the best api for specific platform." I'm not sure what you mean by this. Can you please clarify? – NietzscheanAI Oct 11 '16 at 6:53
• I mean when developer want to code on a mobile app to get location of the user of the app. There has many way to get location e.g. from wifi, 3g, gps etc. there is many apis can do this kind of things. I think AI can suggest or gives detailed for each api or way. – UmAnusorn Oct 11 '16 at 9:32
• The set of possible APIs is probably still quite small, so it's not clear that you'd need AI for that. Either exhaustive enumeration of the possibilities according to some quality measure or else a simple rule-based system would probably suffice. – NietzscheanAI Oct 11 '16 at 17:19

An umbrella term for the application of heuristic techniques to software development is 'Search Based Software Engineering' (SBSE).

SBSE emerged as a distinct activity around the turn of the century, with a strong initial focus on automating the generation/prioritization of test cases.

With respect to some of your specific queries:

1.2 Paper on Automated refactoring

1. Automatically choosing screen colour to minimize energy consumption.

2. This sort of thing is not usually done heuristically, since it needs platform-specific code.

3. Automated refactoring to patterns.

4. AFAIK, penetration testing has yet to be successfully automated.

5. As stated, this doesn't really require AI. More generally, I don't know of any specific work automating for HCI preferences, but something like 'Interactive Genetic Algorithms' could be used.

6. There's a lot of SBSE literature on testing. See this paper for a general overview.