Research on Intelligent Cloud Test Platform

With the increasing complexity of software information systems, software quality assurance faces enormous challenges. The software information system is more and more complex, and the quality requirements are getting higher and higher. The traditional automated test methods and tools can not adapt to the changing test requirements. The research on the independent controllable intelligent test platform based on cloud computing and big data will be carried out. The combination of platform and software testing not only reduces test costs, but also improves test efficiency and effectiveness. This paper analyzes the status quo and gaps of the intelligent cloud test platform at home and abroad, and presents the research content and technical solutions of an autonomous and controllable intelligent cloud test platform. First, we make research on the rapid construction technology of large-scale test environment for heterogeneous independent platforms,that is, mirror virtualization and rapid combined deployment technology of software testing tool environment;secondly,we study complex business scenario model generation technologies, including domain analysis and modeling of information systems, formal definition of model-based complex business scenarios and rapid construction technology;finally, we study the automatic generation technology of test cases for complex business scenarios, aiming to make full use of complex business scenario models and full-link historical test data.


Introduction
As a multiplier of system capabilities,information systems have made outstanding achievements in recent decades, such as integrated command platforms, weapon deduction systems, data engineering, and combat mission planning systems, which have all achieved leapfrog development.Also, our country vigorously advocates the construction of national defense information systems to improve the security of software information systems. The construction of localized information systems has entered a period of rapid development.With the integrated and intelligent development of software information systems, the scale of software information systems and the degree of systemization of software systems have continued to increase.
As the intelligent core of software information systems, the quality of software is related to whether the entire information system can successfully complete combat missions.As a key means to ensure software quality and reliability, software testing has always attracted attention [1]. As information systems become more complex and require higher quality, traditional automated testing methods and tools can no longer adopt to the requirements of current information system software testing, exposing many problems that need to be solved. First, the software testing infrastructure is slow to build, timeconsuming, and inflexible; secondly, the testing process may also encounter problems such as the difficulty of testing resources to meet the task needs.
The intelligent test platform based on cloud computing and big data can provide a test environment that can be deployed and configured in the cloud for various test verification needs, which can greatly reduce cost investment [2][3]; Cloud test can run test cases concurrently to speed up the test process; In addition, cloud test can also predefine standard mirror files and testing services for various testing environments, providing a unified and standardized testing method.The intelligent test platform based on cloud computing and big data can effectively improve test efficiency and effectiveness, and ensure the quality of complex software information systems [4][5].

Related work
Oriented towards new test patterns, major cloud computing vendors in the industry have launched their own cloud computing services and test platforms, and the academic community has also put forward their own theoretical methods and technical results.

Complex business scenario modeling
There are two mainstream modeling methods:Formal-based modeling method and business processbased modeling method.
① Formal-based modeling method means that an ideal modeling method should have formal semantics to facilitate analysis and verification.At present, modeling methods with a good formal foundation include Petri net-based methods and rule-based methods.
Petri net is a modeling tool with strong mathematical theory support and suitable for modeling discrete systems. Using Petri nets, the workflow can be clearly and strictly defined.Most of the properties and theorems of Petri nets can be used for workflow feature description and performance analysis, such as reachability, boundedness, security, liveness, strong connectivity, etc.Advanced variants of Petri nets, such as colored nets, time nets, hierarchical nets, and object nets, can describe and analyze complex workflows.
The most researched rule-based method is the event-condition-action ECA (Event/Condition/Action) rule.ECA rules are derived from active database technology and are currently adopted by many workflow projects to describe the control flow relationship between activities.In addition, the rule-based method can support the dynamic modification of the process, so that the model is flexible.However, as a low-level implementation mechanism, ECA rules lack graphical means and structured construction methods.In addition, when the rules increase sharply, the processing of the rules becomes a very tedious task.
②There is a key concept in the business process-based modeling method: Artifact, which is the carrier of data in the business process. Artifacts are created, updated and archived in the business process to achieve business goals.The description of Artifact includes two aspects: information model and life cycle model. The information model describes the data structure of Artifact, which is similar to the database model;The life cycle model describes the operational steps of Artifact to accomplish business goals. Artifact is the key data in the business process. The establishment method of the business Artifact information model is similar to the data modeling method in the database, but the focus is different. When establishing the database model, the main purpose is to manage the data, using the E-R (Entity-Relationship) model to give the entity types and their connections, and further divide the data through the standardized theory. When building an Artifact information model, the main purpose is to complete the business process. Artifact contains all the data needed to complete a business process. Each stage of the process corresponds to part of the data in the Artifact.
When traditional workflow modeling methods model business processes, data is in an auxiliary position in the modeling process. However, the actual business process is often based on a document containing key business data as the center to complete various business operations, so the data-centric business process modeling method is more conforming with the actual business process operation mode.The Artifact-centric modeling method combines data and processes, emphasizes the importance of key business data in the modeling process, also models business processes based on changes of key data in the business process.

Cloud test framework
The construction of cloud computing test platform is to construct a large-scale platform architecture dedicated to software testing through cloud computing technology.
Many researchers in our country have explored cloud test platform architecture and testing service (TaaS) mode and gradually developed a new type of testing mode centered on the testing in cloud computing, related research on "cloud" testing, and migration testing to "cloud".Chen Tienan proposed the large-scale performance testing service platform Bench4Q in response to the 1:20 miniature simulation simulation method in the traditional performance test, which may cause many serious problems. The use of cloud computing technology enhances the control and management of the load injection agent pool, reduces the cost of performance testing, and can obtain the performance of the platform under normal and peak test conditions.
The representative cloud test service providers are shown in the table 1.

SOASTA
Publish CloudTest to test any web application.

Skytap
Provide users and software providers with services to develop, test, migrate and evaluate applications in the cloud.

Intel
Proposed iLab, which not only supports software platforms and services, but also supports the verification design of physical products.

Spirent
Propose a PASS test method to verify the quality of service (QoS) of cloud infrastructure and the quality of experience (QoE) of cloud services.
As shown in the table 1, domestic cloud test platform such as the mobile cloud test center of Baidu MTC provides fully automated testing services for mobile developers, covering more than 160 mobile devices from mainstream manufacturers, facilitating developers to perform real-time mobile application testing, developers can also choose different testing modes for different needs.However, the various cloud test platforms have serious homogeneity in their business scope. More than 90% of the test platforms only focus on two aspects: website stress testing(Such as the testing platform operated by the National Information Center Software Evaluation Center, China Test Cloud and UserReplay) and mobile phone application testing(Such as testin cloud test platform, Banmo cloud test platform, easy test cloud, JD mobile cloud test).However, this type of online test platform cannot satisfy software testing for multiple test types and multiple tested objects.China Aerospace Science and Technology has built a cloud test platform with online rental of test tools and online distribution/acceptance of test tasks.
Foreign cloud test frameworks such as SOASTA-CloudTest provided by SOASTA are products for rapid test creation and real-time analysis, and a lightweight new generation of java unit test framework.Use its convenient reusability to easily build application software testing; Sauce Labs provides enterprises with automatic and manual network application testing services.Sauce's cloud testing uses Selenium, an open source testing solution and browser automation framework, which can perform automated acceptance testing on web browsers.Using Sauce's expanded Selenium-based technology, developers can test all mainstream browsers under Windows and Linux platforms, including IE, Firefox, Chrome, Opera, Safari, etc., and use them to take screenshots and playback of errors during testing;The smart business test cloud in ffiM's Smart Business Cloud solution can help companies establish a secure, dynamically scalable virtual test environment, which is located in the corporate firewall and is part of the corporate private cloud.

The gap between domestic and foreign
In general, modeling for complex business scenarios is difficult and formal modeling methods are not perfect, its credibility still needs to be improved. The research of software testing based on cloud computing belongs to the frontier research field in the world, and it is in its infancy in China so it has not yet formed a perfect theoretical system.For information system basic software and integrated application testing, build an intelligent test system based on cloud services and big data, provide finegrained inspection, standardized testing, and intelligent test data analysis mechanisms for typical basic software products, effectively improving software quality and reliability, Will be the future development direction of information system software testing.

Intelligent cloud test platform architecture
Carrying out research on intelligent test platforms based on cloud computing and big data to combine cloud platforms and software testing can not only reduce test costs, but also improve test efficiency and effectiveness.
The overall technical implementation scheme is shown in Figure 1.

Figure 1. Smart cloud test platform overall plan
As shown in Figure 1,the first is to study the rapid construction technology of large-scale test environment for heterogeneous independent platforms, that is, mirror virtualization and rapid combined deployment technology of software testing tool environment,they aims to study various testing requirements of basic software and information systems, the research includes the use of virtual mirroring to realize the rapid deployment of test tools, test environment and test requirements-oriented flexible combination, so as to break through the test environment and quickly build related technologies, providing a technical foundation for cloud test.
The steps of mirror virtualization technology for software testing tool environments are as follows: ①Define a detailed hierarchical classification directory and naming rules for the mirror according to the type of virtual machine (KVM or Docker), the sharing of the mirror, the type of operating system supported by the mirror, the type of software, the test attribute, etc. Then realize the life of the mirror based on Jenkins Automated management of cycles and the test suites are classified and managed by test types or test requirements.
②Use the Docker tool to write the Dockerfile of the mirror, and use the XML syntax to define a markup language to meet the reuse of single-component mirror code.Then use the single-component mirror code to define the combined mirror. After that, the Dockerfile generates the mirror on the Docker host. The user can Use the combined mirror as a test suite and conduct tests.
The rapid deployment technology is divided into two situations: ①For the testing of office applications, since the office applications are installed on the KVM virtual machine, the virtual machine can be deployed through OpenStack. At the same time, in order to achieve optimized virtual machine scheduling, the following algorithm can be used: First, we determine the number of virtual machines to be created according to the current load situation, task time complexity and user task priority.Then,sort the physical machines according to the current physical machine load, and select the physical machine whose load does not exceed and is closest to the load for virtual machine generation. Among them, the physical machine in the off state is calculated according to the load.
②For the test deployment of application software, we use Kubernetes for container management. Kubernetes is a distributed solution of Docker. Docker mirrors can be used on Kubernetes to generate a specified number of Pods. Pods contain containers that can be used to build clusters.Since the application software is deployed in Docker, after the combined mirror is made, a cluster can be built based on Kubernetes and the mirror.
Secondly, we study complex business scenario model generation technologies, including domain analysis and modeling of information systems, formal definition of model-based complex business scenarios and rapid construction technology.First, modeling the sub-scenario, which is divided into service layer, functional layer and behavior layer. In the service layer, domain analysts, domain experts, users, technical personnel, etc. are required to communicate and consult existing literature to define application software fields and business requirements,then use these information as service layer characteristics; Analyze the functional characteristics of services in the application software field at the functional layer stage, and define an unambiguous name and description in the field for each function; Behavior layer describe the behavioral characteristics of the function (such as the early behavioral characteristics of the function execution, the execution condition, the post-condition of the function execution, etc.), establish an unambiguous name and description in the field for each behavior characteristic, then identify what the function contains and put the behavior characteristics into characteristics layer.
Then perform meta-modeling, the steps are as follows: a) Analyze the similarity of sub-scene models in the field of office application software. Take each service in the service layer of the sub-scene model as a unit, and perform similarity analysis in two aspects: first, analyze whether there is similarity between each unit, and aggregate similar service features and lower-level subtrees into a feature tree ; Secondly, within each unit, analyze whether the subtrees contained in the feature tree have similarities with the subtrees of other feature trees, and record these similar subtrees.
b) Establish a meta model for each merged feature tree. That is, according to the function and behavior characteristic information in each feature tree, a meta-model is established in the metamodeling tool to describe the modeling language that meets the characteristics of this part.
Then,model-based formal definition and rapid construction technology of complex business scenarios realize the formal construction method of top-level scenarios and technical scenarios of complex information systems based on model checking technology on the basis of meta-models obtained by domain analysis.
Next, we study the automatic generation technology of test cases for complex business scenarios, aiming to make full use of complex business scenario models and full-link historical test data. We based on the extraction of test knowledge to build a software testing knowledge graph, we also associate test cases and business Scenarios, software systems, problem sheets, etc. Then heuristic test case generation technology is integrated to automatically generate test cases. On the basis of the complex business scenario model generation technology, information system's demand characteristics and full-link test data, we make research on the information system business model extraction, construct business scenario model data.Then study the combination of business scenario modules to integrate the entire chain Carry out data analysis on road test data and extract test knowledge data to enrich the software testing knowledge graph. The knowledge graph covers requirements, test objects, test requirements and other information.  Figure 3. Construction of cloud test platform for student management system 1. Define a detailed hierarchical classification catalog and naming rules. According to the module, the student management system can be divided into new students registration management, school student daily management, organization and club management, graduate information management, student performance query and other mirror mirrors.
2. Based on Jenkins to realize the automated management of the life cycle of the mirror in step 1. Through the scripts under the Jenkins continuous integration tool, service mechanisms such as update, recovery, and removal of the mirror are realized.
3. The student management system is a web application with B/S architecture. Its test suite covers system stability test, user concurrency test, file read and write time test, page response time test, browser compatibility test, network transmission speed test, Test cases and case libraries, etc. A standardized test suite management system can be formed by comprehensively sorting out relevant standards and technical specifications, test methods, test cases and cases for office application testing. 4. The above steps group the heterogeneous mirror and test suites, and then they are combined and managed. First define a markup language and define the combined mirror. After the combined mirror is filled, the integrated platform will generate the corresponding Dockerfile and optimize the syntax