| Mobile devices are widely used nowadays,covering multiple kinds of devices and various scenes in life and production.There are usually dozens to hundreds of applications,shorted as Apps,running on mobile devices.Many Apps depend on the communication between the client and the server to complete their tasks.The continuous development of the mobile network has been bringing a growing number of network communications.The complexity of user network environments,the diversity of devices and the complexity of the App business logic will probably cause the App to malfunction in the production environment.As the usage of App users increases,so will the failures.The software developer’s access to the fault data of the App is the source of improving the software quality after the App is put into production.Due to the complexity of the network environment,the fault data of App users may not be fed back to the server,which makes it impossible for the serverside monitoring to fetch the fault data.As to fast-iterating user-side business code,collecting data with manual buried points will increase the software development workload and subsequent maintenance cost.The integrity of App error information collection also has a critical impact on subsequent fault location.Besides,failures are often caused by multiple causes.How to quickly find significant problems from a large amount of multi-dimensional data,and locate the real software quality defects,is also the key point of App fault analysis.Aiming at the problems of the complex situation of the App client,difficulty in collecting error data,and difficulty in locating the causes,we have designed a general network error data collection solution and a model for fault location and early warning through data.Its main work and contributions are:(1)Customize a refined and highly compatible data collection solution based on mobile network requests,use witness requests to identify real network errors,and use a hybrid granular upload strategy and server side optimization to make large-scale user data back reliable and in time.(2)Aiming at the problem of large number of error data items and large dimensions,a fault analysis model is proposed.Dimensions and granularity are automatically abstracted and combined through correlation analysis from massive data,which provides developers with a software fault attribution perspective.(3)Using Anomaly-Detection-based dimensional filtering and granular evolution methods,The model efficiently divides out the wrong data sets that need attention and helps developers locate and resolve software quality defects.We test the data collection solution and fault analysis model to verify the effect of the system’s fault location on the mobile application.We verified the timeliness of the data upload strategy through the 40,000 App client network error information that we actually collected after the data collection program went online;Through load testing of the collection nodes,we verified that for an App that has a million daily lives in a certain area,only3-4 collection nodes can carry the demand for its wrong collection.Based on the analysis results of the real error data of the fault analysis model,13 actual software quality defects were located,of which 9 were quality defects that could not be learned through server monitoring.Compared with several existing data-based fault analysis methods,the fault analysis models in this paper have found more real defects after deduplication,of which 6 defects were found only by the fault analysis model.All software quality defects are confirmed by the developer and some typical defects are explained in a case study on how the model locates and helps solve the problem.We tested the operating efficiency of the model and showed that the model can be used for timely online warnings. |