Please note! This essay has been submitted by a student.
Software testing is becoming more complicated day by day, so Artificial Intelligence and Machine learning are introduced in the field of software testing to make the software development process easier. Nowadays, many companies demand to develop and deliver software quickly due to fast pace competition going on in the market. Thus, there exists the speed of software testing process. With the launch of AI in testing, test automation and regression testing are the two faster and smarter ways for software testing. The involvement of AI will increase the accuracy such as test automation can be more better, hike in the length and scope of testing, boost the quality of software, save time & money to deliver software faster. However, the human testers have to move forward with the use of automated and precision based testing process rather than traditional manual testing process.
Nowadays, in the world of science and technology artificial intelligence machine learning techniques as well as high quality AI based software for various technological domains is becoming challenging research area for both academic as well as commercial platforms. Different machine learning concepts such as object detection, prediction and classification, translation and natural language processing and so on, are very useful to build smart applications systems which are based on multimedia inputs. This leads to extreme demand in the field of AI software validation and assurance.
The latest research by, Jerry Gao et al. discloses the detailed information about AI software quality validation, including validation focuses, features, and process, and potential testing approaches in April 2019 . It also discloses a test process and a classification-based test modelling for AI classification function testing. Finally, the challenges, problems, and requirements of AI software testing are also discussed.
According to author, AI software testing is defined as “diverse quality testing activities for AI-based software systems using well defined quality, validation models, methods and tools”. This paper describes some tested mobile applications which are powered with machine learning models and AI algorithms such as Apple Siri, Calorie MAMA, check my age, etc. There were also some quality validation focuses for mobile applications such as Data quality validation, white box testing, black box testing and system testing. White box testing plays an important role in detecting the flaw of program structures and checking the Boolean logic, conditions etc. to achieve predeclared program logic structure coverage. Whereas, Black box testing performs AI function validation without dealing with programs and basic models of machine learning. The quality validation of black-box testing focuses on given AI feature and also assure its quality in exactness, consistency, correctness, relevancy, timeliness with respect to its classified inputs and classified context conditions. Moreover, system testing gives emphasis on basic system parameters such as performance, scalability, availability, reliability, robustness, security, etc. Author also gave some brief discussion on AI testing approaches such as Rule based, Classification based and model based AI software testing and metamorphic testing, etc.
The 1st issue related to present model is, it does not address quality validation need relating artificial intelligent features and functions such as, detection and classification, rich oracle functions, recommendation and prediction.
The 2nd issue describes quality assurance and validation standards including processes, approaches, assessment metrics, policies, and regulations with current AI based systems which are developed based on machine learning models and datasets selected from one or multiple big data spaces.
The 3rd issue listed in this paper is related to lack of research work on automatic methods and solutions for AI software systems.
The article by Neha Bhateja et al. have described different AI approaches which are used to optimize the testing resources. This article mainly focuses to achieve automatic software testing using AI based approaches.  This paper states the two different ways of software testing process: Manual testing and automated testing. In manual testing, bugs are detected by testing the product physically whereas, in automated testing, defects are found using testing tools to execute pre outlined scripts on software. Author also discusses about five different AI based techniques for software testing: Ant Colony Optimization(ACO), Genetic algorithm, Tabu search, Data Mining. The strategy behind the Ant colony optimization is based on the ability of ants to find the shortest path from the destination to the food source. In ACO the UML artifacts are used to create the automatic test sequences. Using this approach maximum coverage with minimum redundancy of the software can be achieved. Genetic algorithm is used as a part of program testing by using weighted control stream chart. By using graph theory concepts, the test cases are generated automatically for the full path coverage area and the efficiency of testing is also improved. Similarly, Tabu search algorithm supports to solve optimization issues. This approach optimizes the expenses of software testing process by delivering maximum code content in terms of conditions, path and loop coverage and it is used for generating structural software testing automatically. “Data mining is the process of mine the valuable information and knowledge from a huge database which is used for decision making”. This algorithm is used for automation of tested systems.
Tariq M. King et al. gave detailed review of industrial systems which use AI for software testing, applying different methods to test AI systems as well as designing self testing systems . The AI testing is mainly focused on manually encoding a program input, verifying the output in the form of a script which is executed by a machine. Test execution and logging are the main two aspects of this process. Human testers are hired to define testing goals like acquire the knowledge necessary to adequately test the software, design and specify detailed test scenarios, write the test automation scripts, execute scenarios that could not be automated, and analyze the test results to determine any threats to the project. The main focus is on overcoming the gap between present human and machine driven testing by using efficiently the enhancements in AI/ML, cloud computing and big data technologies. To determine the software quality and testing problems AI techniques are used. There are some parameters of AI based systems which tend to be complex, non-deterministic, and self-adaptive. AI based systems introduced some new testing challenges such as feature computation, sampling quality, outlier tolerance, label quality, quality drift and traceability. Their products needed training continuously from the beginning whenever a new version is introduced which is a very complex process which results in, increasing requirements for the applied testing methodologies, standardized tool-sets, and best practices for testing AI. Self testing is the ability of the system to observe the dynamic adaptive behaviour of the systems and execute the runtime testing as a part of adaptation process.
The author suggested some advantages of AI driven testing that it is general purpose, reusable, robust, adaptive and scalable. AI driven test are usually not dependant on any particular application so they can be used again and again within various applications which belong to the same domain. New tests were created each time to eliminate the disadvantage of not being able to detect faults that is also called pesticide paradox. The combination of AI based test generation and large scale test execution in the cloud was a major advantage of test coverage.
There are some practical approaches and challenges on testing AI systems. AI based software testing approach differ from the traditional software testing approach, such as testing the automated machine learning system mainly focus on data and analytics instead of generating different test cases, manually testing the applications or writing automated test scripts. Supervised machine learning testing is divided into two phases: (1) Training validation (2) Relevance testing. This paper also describes two AI based challenges: (1)non determinism- It produces different outputs with same inputs. (2) Fuzzy oracles- It was very hard to figure out whether the outcomes were correct or incorrect, so a continuous scale is needed to measure the correctness. Other problems faced had to include factors such as performance, security and system integration testing.The assumption based on the AI was that it will flourish gradually and the process has been started already. Among them the first assumption was that AI will particularly target specific testing problems and it can modify existing tools and methodologies. Some examples include functional testing of mobile and web application, visual testing of user interfaces and UI element location and auto correcting element selectors. However, for automated testing AI will start to replace entire technology stacks.