Using Artificial Intelligence for Software Development
Developing good software is extremely challenging for any number of reasons. Look no further than cloud-based solutions like Workday to see that just because you have a $26 billion company, it doesn’t mean you’re capable of deploying something that would be considered remotely usable by anyone other than your local human resources department. On the other hand, deploy a CRM tool like Salesforce for your sales team, and you’ll wonder how you could have ever lived without it. The difference between good and bad software is something called software quality assurance or SQA. It’s not just about software testing, but encompasses the entire software development process.
If you’ve ever worked in a software testing role (a key function of SQA), then you know what a isht job it is for at least several reasons. Firstly, you need to make sure the software developers built what the requirements document asked for (referred to as internal requirements), but that’s not enough. If your business analyst didn’t do their job properly, then the requirements document may not actually reflect what the user asked for (referred to as external requirements) so even though you built the right thing, you actually built the wrong thing. Then, because the sales people have already sold something that wasn’t actually built yet, you’re pressured to release the software anyway even though it’s complete crap.
That’s the joy of working in SQA. It’s not just about testing software to internal and external requirements, but also about developing software properly.
We recently talked about a company that is using artificial intelligence to find people who would make good software engineers even though they may not have the stereotypical pedigree. It’s a great idea because intelligent people are simply those individuals who have the ability to learn, and that will take you places in the ever-changing world of software development. Of course that’s only a temporary need, because soon we’re going to have software that creates itself – using artificial intelligence of course. Until then, developing good software will continue to be difficult because of humans, so we’re interested in learning about more companies out there that might be using artificial intelligence to help develop better software. Here are
three two examples and one startup that should be using AI.
Founded in early 2017, Boston startup Mabl has taken in $10 million in funding to develop “the only machine learning test automation service that automatically maintains tests and identifies regressions for you make functional testing much easier”. Let’s get some of this terminology defined for the average layman. Regression testing is when you create a suite of software tests and then run them over and over as a software product evolves. Every time one of your brogrammers on Soylent makes a change, you can then run the regression tests to make sure nothing broke.
In ancient times, software testers would use record-and-playback tools to create these regression test suites (anyone remember Rational Robot?). This would allow software testers to automate functional software testing, that is, testing the software in the way that the users would actually use it via the “graphical user interface” or GUI. That’s also called “test automation”, and it’s something that the founders (Izzy Azeri and Dan Belcher) saw could be optimized while they were working at Google. The reason they were at Google is because that’s who bought their last successful startup, Stackclouds, which raised $15 million before being acquired. Mabl is free to use and the founders are solid guys so go check it out.
Update 09/20/2018: Mabl has taken in an additional $20 million from a Series B Round led by GV (formerly Google Ventures) for a brand new enterprise product. This brings the company’s total funding to $30 million so far.
Founded in 2016, Oxford University spinout Diffblue has taken in 17 million British pounds (about $23.46 million) from investors that include Goldman Sachs to essentially “automate all traditional coding tasks: bug fixing, test writing, finding and fixing exploits, refactoring code, translating from one language to another, and creating original code to fit specifications”. As of now they have three products:
- Automatic Test Generation – While before we talked about “functional testing” using the GUI, there are also tests that programmers
writeare supposed to write behind the scenes that look for problems. Also called “unit testing”, the idea here is that you don’t want your highly paid Indian developers spending their time doing this sort of stuff. Now AI will do it for you.
- Refactor – This is all about changing a piece of code while making sure it still does the same thing. Refactoring makes code cleaner and helps with things like maintenance and performance. AI would be perfect for doing something like this, and it can even test itself to make sure nothing broke.
- Security – The AI algorithms get all devious and try to find places in the code that
hackersother malicious AI algorithms may try and exploit.
The platform is something they’ve been developing over the past 10 years, and now they’re rolling it out to blue chip companies.
No, this isn’t the now defunct startup that built an app that helps you avoid people you don’t want to run into (first world problem) but a nearly three-year-old Silicon Valley startup that makes tools for testing software. With nearly $27 million in funding, Split offers a solution for a type of testing that many people out there who work in web development would be familiar with – A/B testing – and it’s already being used by some big clients like Salesforce and Chase. More simply, A/B testing can be described as experimenting. You choose two different options in your software design (A & B), then you have 1,000 people use them. Whichever performs better using whatever performance metrics you choose can then be implemented. Here are some of the features in nerd-speak:
While we didn’t see them explicitly talk about using artificial intelligence, it’s exactly the sort of thing that could be optimized with some AI algorithms. All Split needs to do is hire a few AI programmers and a “big data expert”, then instruct their marketing team to splash these terms all over their website liberally so they can raise even bigger funding rounds. You’re welcome.
What usually happens when we write one of these broad-topic AI articles is that shortly after, we get inundated with “you forgot our cool AI startup” emails which is understandable considering that we usually “forget” all kinds of startups out there. That’s because research costs money, and we only have so many MBAs working 9-9-6 trying to get you free, insightful research just as quick as their little hands can type. If your startup uses artificial intelligence / big data / machine learning / neural networks / etc. to develop better software then, yes, we forgot you. Please drop us a note reminding us about how cool you are, and we’ll include you in a coming article that will dive deeper into the topic of using artificial intelligence for software development.