Software Testing in an AI-driven world – Part 4 – AI’s future in software development
Over the past few weeks, I’ve looked at various classifications of artificial intelligence some tips on how to test AI along with how to apply to improve our quality. In my last post on this series, I am going to briefly talk about our AI future, or at least where I see AI taking us over the next few years. Going too far into the future is really difficult to predict with technology evolving so rapidly and seeing as I’m someone who doesn’t see any future by looking into a crystal ball, I will stick with things that are a little more grounded.
However, before I even do that, I thin kits also worthwhile talking about what AI is currently capable of doing as I believe most people are not even aware of just how far the technology has already come, let alone where it will take us over the next few years.
Below are just a few brief examples of what is already achievable through different forms of AI systems, some exciting and some terrifying:
Machine Replication. An AI (machine learning system) replicates itself at Google. In simple terms, an AI creates another AI. The replicated AI was found to be more efficient than the best human-designed AI.
Price Personalization. AI is selling identical goods or services to each customer at a different price based on the information specific to that unique customer. Is it price personalization or price discrimination? As computer scientists, we still need to go a long way to address some of these moral issues that may arise
Image-to-Image Translation. Nvidia’s research group uses AI to make it snow on streets that are always sunny. The AI imagines what a sunny street could look like when it’s raining, snowing, or even pitch-black outside.
Mind Reading. AI sees what you think and draws a picture of it. Does the AI know what we think, feel, and desire? Not yet, but brain activation patterns can already be used to identify some complex thoughts.
Artificial Language. AI is creating its own language. AI robots were shut down at Facebook after they started talking to each other in their own language to make themselves more efficient at communication.
Disease Protection. AI proves incredibly good at predicting disease. It appears to anticipate the onset of psychiatric disorders like schizophrenia surprisingly well, though it is notoriously difficult for physicians to predict.
Language Translation. This should be a technology we are all familiar with as many translation tools from different companies exist. Even though technological devices in our modern times can quickly and easily connect, humans from different parts of the world often can’t. Language translation remains a barrier and one that many of
Autonomous Weapons. Russian weapons manufacturer Kalashnikov Group revealed it had developed a range of combat robots that are fully automated and used AI to identify targets and make independent decisions.
Swearing Machine. Watson, the gameshow-winning supercomputer, couldn’t stop swearing and giving backchat to researchers. IBM was forced to wipe the hard drive after the machine downloaded an urban dictionary.
So, if you weren’t already aware of just how capable AI systems are, then hopefully now you are more enlightened. There is still a long way to go in the development of AI systems though and in order for us to further advance these systems, we need to solve the following challenges:
What are the challenges to AI currently?
• Testing Predictability: First obvious challenge is around the testing of AI. With so much reliance on complex algorithms that are trying to predict the unpredictable, how do we verify that these algorithms are going to produce the required outputs and correct decisions when the data we are feeding it is constantly changing, ever-growing and unpredictable? And we need to carefully measure this output and feedback based on the data we provide. The closer we can get to predicting outcomes of machines learning before he fact, the better we can design algorithms that may actually be fit for purpose without hindering the discoveries AI will offer us.
• Data prejudice: One of the biggest aspects of AI, is that it is exploring vast amounts of data to make decisions on but is not necessarily aware of the moral constructs of that data. If you feed prejudice data to a computer, it's likely to become just as prejudice as any human and it’s that inability to often determine right or wrong without limiting its ability to make decisions that are perhaps most scary for the future potential of the technology. AI/ML can only form its conclusions based on the questions we ask it and the data we feed it, so we need to make sure we do this correctly
• Data: It perhaps goes without saying that with data as the big source of most machine learning capabilities that before we even explore some of the potentials of AI, we need to solve our data problems. Problems around data storage, data processing and doing so efficiently, but most importantly, solving the problems of data security and privacy. The world is still coming to grips with these challenges and it is vital that we learn to solve how we use data correctly before we push too far into machine learning and AI application.
• Specifics: Much of software development and testing is built around predictability. We write code to take inputs and produce outputs and testing even more so. The lack of specifics might not seem like much of a challenge, but without them, the way we go about trying to design and test our systems needs to change, which is why we need to look at AI with our testing hats on.
Those are challenges that are definitely large but can also be overcome and many companies are already making great strides in solving these problems.
Where I see AI heading in the software development world
These challenges are small though compared to the potential AI offers us AI. If you had asked many of the tech visionaries from the 80s what the future would look like, they probably would never have imagined the uses and challenges we have today, so at best this is pure guesswork. So, rather than try and make some bold sci-fi-like predictions and get them horribly wrong, I will focus my guesswork on the software development and testing industry in particular and how I see it changing our work. But yes, some of the things like self-driving cars and automation of entire industries will definitely come to fruition, though I don’t believe that sounds anything like a doomsday scenario than you might suggest. Other ways which I see AI enhancing software development include the following:
Computers not just solving our problems, but preventing them
We often see AI as a good method of using computers to solve our problems for us, but the truth is that most of these algorithms which we design are simply taking advantage of the faster processing ability and data we feed them to identify solutions we probably would’ve got to had we been able to process it the same way too. We will see AI evolving over the next few years, to fin issues before they happen and fix them. Essentially meaning we may never know what problems computers are solving for us, as it mitigates certain issues from happening before they do. This will be seen in the health, security, fraud detection and financial industry where decisions and problems will be made that will save lives and open new investment paths.
Automatic Code Generation
Taking a business idea and writing code for the huge project is still time-consuming and labour-intensive. To confront the time and money concerns, experts have approached a solution that writes code before starting development. However, the approach is not good with uncertainties like what target code aims at doing as collecting these details takes much time like writing code from scratch. An intelligence programming assistance with AI will reduce the load by a certain extent. To do this though, we will see the role of business analysts become increasing technical as they would need to provide machines with the right requirements and needs in a way that it could understand.
Deployment Control and Scaling
Machine learning AI technologies also had some impacts on software deployment, like an increase in the efficiency of deployment control activities. In the software development paradigm, the deployment phase is the stage where developers often upgrade the programs or apps to newer versions.
If developers fail to execute a process correctly during upgradation, there will be high risk in executing the software. AI can prevent developers from such vulnerabilities during upgradation and reduce the risk of failure in deployment. Another impact of artificial intelligence is, it enables to analyse the deployment process with machine learning algorithms.
Enhanced Data Security
Software security is a crucial property that you can’t overlook during development. The system generally collects data from network sensors and software installed on the customer end. AI enables you to investigate the data using machine learning to distinguish irregularities from normal behaviours. Further Software Development Companies adopting AI in their development process can also avoid the delayed warning, false notifications, and alerts.
Bugs & error identification becomes easier
By integrating with AI tools, coding becomes better and enhanced. Developers and testers don’t need to struggle with examining the executable files loaded with bugs & errors. It is easier for them to find bugs instantly and correct them.
As for testers, it means spending more time on designing the systems we intend to build, rather than especially testing them. It will be a role that will become more focused on analysis and detailed technical design of systems and letting AI design and test the systems itself. And as I have already mentioned early in this talk, all of this will require significant analysis and testing skills and it’s likely that the role of a tester will actually become more important in this future than ever the role of a developer, so it’s important to embrace for this future and focus on our testing skills while keeping a strong technical understanding of how system data and the different AI algorithms work.
Do the computers win?
Does all this mean that computers will completely replace us? Not at all, despite the advancements in computing power will simply allow us to focus elsewhere. We as humans, have a remarkable aptitude for discovery and will continue to find new ways to expand our horizons and take the computing power before us to tackle even greater things.