AI testing: make software testing smart

When talking about the Internet ecology, I think of BAT, but now the gap between Baidu, Ali and Tencent is getting bigger and bigger. Baidu's market value is only 66.2 billion US dollars, while Ali’s market value has reached 388.8 billion US dollars, which does not include the unlisted Ant Financial. clothes. But Baidu was not to be outdone. It invited Lu Qi, the former Microsoft executive vice president, to bet his future on Artificial Intelligence (AI). On July 5 this year, it announced the launch of an autonomous driving called the "Apollo Project". Development Plan. From the perspective of the industry, Google’s autonomous driving is more mature. It obtained the first autonomous vehicle license in the United States in May 2012. In 2015, Google tested its autonomous vehicles on highways in Mountain View, California. One year later, Google’s self-driving cars have traveled 2 million miles. The current goal of Google’s self-driving car plan is to solve all the unsolved problems of self-driving cars by 2020. In addition to Google, Apple, Tesla, Changan Automobile, etc. have invested heavily in the field of autonomous driving. In addition, AlphaGo has defeated all human Go players including Ke Jie and Li Shishi, bringing artificial intelligence (AI) into it. The peak of the wave. One piece of data can also show how hot AI is. According to the British Financial Times, in 2016, outstanding doctoral students majoring in artificial intelligence from four prestigious universities in the United States, including Stanford, Berkeley, MIT, and CMU, had their first job contract with an annual salary of 200. Ten thousand dollars, while the starting salary of Internet elites in Silicon Valley is now 200,000 dollars.

  AI is so hot, software testing naturally also pays great attention. A year ago, I wrote two articles:

  Turing test, what exactly is it measuring?

  How to test artificial intelligence software?

  Mainly discuss Turing test and how to test artificial intelligence software. Writing this article today is to discuss how to apply AI to software testing, that is, to use AI technology to test general non-AI software, to completely improve the level of automated testing, and to solve some problems that could not be solved by other technologies. In fact, AI has made some substantial progress in the field of testing. But before discussing this topic, let us quickly understand what is artificial intelligence (AI)? What are the specific applications and algorithms of AI?

  Figure 1: Overview of artificial intelligence

  Simply put, AI is human intelligence realized by machines, that is, to allow computers to achieve tasks that only humans can complete, that is, to solve problems in a similar way to human intelligence, including computational intelligence, perceptual intelligence, and cognitive intelligence. The first AI proposed (1956) is a general AI concept, which refers to a magical machine that has all the human senses and senses and can think like a human. It’s still difficult to do so now. Let’s put it to the next level. Machines can handle special tasks as well as humans (even surpassing the results of human processing), such as image classification, face recognition, etc. This is where machine learning (narrow sense) Artificial intelligence). In machine learning, deep learning is the most effective type of algorithm. At present, we have achieved great success in deep learning. AlphaGo is an example. Some scholars also said that the complex driving scene in China is the advantage of deep learning. Autonomous driving is machine learning that combines deep learning and enhanced learning. So in terms of time, AI began to be mentioned in the 1950s and 1960s, and then machine learning was proposed in the 1980s, while deep learning did not achieve a substantial breakthrough until 2010.

  Figure 2 Britain’s most human-like robot "Sophia" can fight against confucianism

  AI is specifically embodied in robotics, language recognition, image recognition, natural language processing, and expert systems. It mainly includes the following applications:

  Human emotions: Analyze facial features, deal with human emotions (psychotherapy) and identify criminals. For example, the British robot Sofia can show a variety of expressions.

  Natural language processing: understanding, generation, translation, and adaptation of language context, such as machine translation, machine news editing, etc.

  Vision and image processing: visual emotion, object recognition (such as face recognition, fingerprint recognition), behavior recognition, activity recognition, autonomous driving, etc.

  Speech: speech recognition, voice identification, reciting (speech synthesis + context understanding + human emotion simulation, including poetry reciting, even cross talk and storytelling), etc.

  Robots: machine learning, multi-robot collaboration (multi-robot system), multi-leg walking, perceptual cognition, etc.

  Inferences based on probability: common sense, behavioral reasoning, non-monotonic reasoning, etc.

  From a technical point of view, AI currently relies on machine learning to achieve, and the main algorithm of machine learning comes from deep learning algorithms. In machine learning, the main algorithms are:

  Perceptron (Perceptron) binary linear classification algorithm belongs to supervised learning.

  SVM (Support vector machine, support vector machine) is also a linear classification algorithm that finds the "maximum interval" partition hyperplane.

  Ensemble learning: There are mainly Bagging and Boosting, which combine multiple weak classifiers into a strong classifier to improve the classification effect.

  RBM (Restricted Boltzmann Machine, Restricted Boltzmann Machine) is a probabilistic graphical model explained by a random neural network.

  DBN (Deep Belief Networks, Deep Belief Networks) is a core algorithm of deep learning developed based on RBM, which benefits from the efficient approximation algorithm of Contrastive Divergence (CD). It is formed by cascading several layers of RBM, bypassing the problem of the overall training of multi-hidden neural networks, and simplifies it into a training problem of multiple RBMs, which significantly improves the recognition effect and computing performance.

  DBM (deepboltzmann machines, deep Boltzmann machines), similar to DBN, deep data fitting, multiple RBMs connected to form DBM, imitating the human brain multi-layer neurons to preprocess the input data, but DBM is Undirected graphs can also be extended from self-encoding neural networks and stacked neural networks.

  RNN (Recurrent Neural Networks, recurrent neural network) neuron output can be directly applied to itself at the next time stamp.

  CNN (Convolutional Neural Network, convolutional neural network) is a feed-forward, deep, non-fully connected neural network. Its artificial neurons can respond to a part of the surrounding units in the coverage area, and it is suitable for large-scale image processing.

  Sparse Coding (sparse coding) is based on one of the methods to reduce the correlation of variables is to reduce the entropy of the individual, so as to find a minimum entropy coding, so that the probability distribution of each coefficient is monomodal and at 0 is the low entropy of the peak distribution (Low-entropy) method.

  Bayers Net, Bayesian network is a directed acyclic graph with probability annotations, and its probability is calculated by using Bayesian formula to calculate its posterior probability. The Bayesian classifier is a Bayesian network used for classification. There are four main types: Naive Bayes, TAN, BAN and GBN.

  ......

  Machine learning is also divided into supervised learning and unsupervised learning, such as:

  Supervised learning: perceptron, SVM, integrated learning Boosting, RNN, etc.;

  Unsupervised learning: RBM, DBN, DBM, Bayers Net, sparse coding, etc.

  Unsupervised learning is the mainstream of the current algorithms, and most of the neural network algorithms are unsupervised learning. Most of the algorithms use probability theory, although they are not classified as probability models.


I think it’s good, you can “one-click three connections”, or forward or leave a message

Official account: Programmer Erhei, focusing on software testing resource sharing,

Mainly share test foundation, interface test, performance test, automated test, TestOps architecture, Jmeter, LoadRunner, Fiddler, MySql, Linux, resume optimization, interview skills, and actual video data of large-scale test projects

Interested can pay attention

Share the wonderful content with your friends

Guess you like

Origin blog.csdn.net/m0_52650621/article/details/113357962