How will artificial intelligence affect the software testing industry?

Traditional testing tools work by having a computer perform a series of steps and check the results against pre-defined expectations. So, what role will AI play in software testing, machine software testers?

 

Maybe.

 

Imagine testing a mortgage calculator, instead of following a few predefined examples, randomly selecting valid data. That is, choose a random interest rate from 0% to 5%, random loan amount, loan term, etc. Then, write another algorithm called oracle that computes the result. Run the software to see if the oracle and the software itself match. The approach to this testing tool is very explicit, and it's a simple example of model-driven testing that can be extended to things like randomly traversing an application, feeding random data to each input, and predicting how the outcome should be. Run these tests overnight and maybe find some interesting bugs.

 

It is tempting to use artificial intelligence in this way, but in reality the computer is not really learning, the application is following predefined rules. Terms like artificial intelligence and machine learning mean that computers discover rules, or create their own rules. With machine learning, the software can look at a thousand or even a million examples and create its own algorithm. Isn't this a lot like a machine software tester?

 

To give a simple example: when you Google "software testing", you have no way of knowing if the algorithm is correct. For example, you don't know if the pages at the top are the most relevant or authoritative, and you don't know how Google improves your search results based on your location, search history, and past clicks. However, if the results are all about college test preparation, based on your life experience, you will know the results are wrong.

 

By providing computers with large data sets, and some judgment rules for each piece of data, artificial intelligence can help computers try to find connections. For example, Paul Graham once proposed a Bayesian filter for email, where people first identify thousands of emails as spam and not spam, and feed that information to a computer. Induction algorithms try to find commonalities in spam emails and predict whether an incoming email is spam or not. Gmail uses this method to identify spam, and also provides a "report spam" button that provides more information to the filter.

 

Now, think about the potential of artificial intelligence in software testing: you can train your application to spot problems.

 

Web crawlers and link checking tools can traverse entire websites looking for 404 errors. Model-based software can identify crashes, such as pages that contain some erroneous text. Train your software in different ways to find things that don't look right. Combined with machine learning, we can have commonly used valid input sets, use model-driven techniques to randomly traverse an application, and give machines perceptual expertise. This may sound like a dream, and no such software exists yet.

 

Rather than waiting for this ideal machine learning, however, we will further develop the idea of ​​artificial intelligence in software testing. Visual testing is the process of recording a test, then rerunning that test on a new build, and testers can use tools to quickly verify differences, flag each change as a bug (requires a return to a previous state), or as a new feature ( become the new standard). Most visual testing tools allow users to train the software to ignore fields that change, such as auto-generated dates, and only focus on what shouldn’t change.

 

All programming is essentially about creating change, and these visualization tools provide change detection. This may seem redundant, telling the computer, "yes, this change is what we expected", but it also provides a very fast way to check for any visual changes, rather than just going like traditional testing tools do Check the expected result.

 

Will artificial intelligence replace software testers in the future? When the radio came along, people thought newspapers should disappear, yet a hundred years later, newspapers are still functioning well. Even with machine software testers, a human is still required to run them. Machine learning for automatic problem discovery will find common generic problems, but not with specialized and customized knowledge capabilities. Of course, artificial intelligence in software testing does not yet exist. Most of the successful machine learning projects in testing today are more like analyzing a series of errors in production logs to determine which actions are causing those errors.

 

Link to the original translation:

http://searchsoftwarequality.techtarget.com/tip/Is-artificial-intelligence-in-software-testing-coming-to-you

 

 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326678375&siteId=291194637