Robots and AI are replacing employees at an alarming speed, from simple manual tasks to creating complex legal conclusions and medical diagnoses. However, the AI itself, and really most applications, remains largely programmed by people. Yet, there are indications that this may be changing. Several programming tools are emerging that help to automate software testing, among which we’ve been developing ourselves. The prospects appear exciting; but it raises questions about how far this will encroach on the profession. Could we be looking at a universe of terminator-like software authors who consign their human counterparts to the dole queue?
A frequent method of testing applications entails running a program, requesting it to do certain things and seeing how it copes. Known as dynamic analysis, many tools exist to assist with this procedure, usually throwing a large number of arbitrary choices at a program and assessing all the responses through software testing.
According to an AI engines are designed to analyse and understand what a program is doing, the business is developing a number of automated tools to assist developers. An individual will find bugs and compose software evaluations; another will discover flaws that could be exploited by hackers; a third will make improvements to code, which may be better expressed or will be out of date.
A new developed software testing service is devoted to bug hunting. Software bugs are often only an innocent slip of the finger, such as composing a “+” instead of a “-“; not so different to typos in a Word file. Or they could be because computer scientists prefer to count differently, beginning at zero rather than the number one. This may result in so-called “off by one” errors. Office employees then go about their regular administrative responsibilities in the daytime and report any bugs in applications as they find them. Overnight, when everyone is logged off, the machine enters a “dream-like” state. It makes small adjustments to the computer code, checking each time to find out if the adjustment has fixed the reported problem. Feedback from each run of this code is used to notify which changes will be far better try next time.
We tested it for four months in an organisation with approximately 200 users. In that moment, it noted 22 bugs and all were fixed automatically. Each solution was discovered on those “night shifts”, meaning that when the developer arrived in the office in the morning, a list of suggested bug fixes were awaiting them. The concept is to set the developer in control and change their job, meaning less regular checking and more time for creativity. It is roughly equivalent to how spell checkers have taken a lot of the plod from proof reading a document. Both tools support the author, and decrease the amount of time you likely spend swearing at the screen. We have been able to prove that the identical system could be applied to other jobs, including making applications run faster and improving the accuracy of applications designed to forecast things.
It is easy enough to see why programs such as these might be helpful to applications developers, but what about the downside? Will companies be able to downsize their IT requirement? Should developers start fearing that Theresa May moment, once the automators appear with their P45s? We think not. While automations enjoys these increase the possibility of companies cutting back on certain junior programming functions, we believe that introducing automation into applications development will allow developers to become more innovative. They will still have the ability to spend more time creating instead of maintaining, with the capacity for endlessly stimulating results.
Careers in computing will not vanish all together, but some dull tasks probably will. Programmers, software engineers, and coders will have more automatic tools to make their job easier and more efficient. But jobs will most likely not be lost so much as changed. We have little choice but to adopt technology as a society. If we do not, we will simply be left behind from other countries developing faster than us.