FuRong builds a bug model with complete context information, such as screen-shoots, execution events and logs from multi-devices, which are significant for developers, and then inducts a classification rule for bugs, which is the foundation for bug classification and deduplication. FuRong classifies bugs and removes some redundant bug information. FuRong also recommends a possible fixing solution for each type of bug. An empirical study of 8 open source Android applications with automated testing on 20 devices has been conducted. The preliminary results show the effectiveness of FuRong with the average accuracy of 93%.
MAF, a plagiarism detection technology for test code, which relies on a constant similarity threshold to determine whether there is plagiarism between two pieces of test code. However, finding an appropriate threshold is never easy. We realize that a constant threshold cannot be used in every circumstance. To address this issue and make MAF more usable, we developed MAF-2 by applying a stable and reliable classifier based on Support Vector Machine classification algorithm. Experiments were conducted on three test code data sets, and the results show that MAF-2 can achieve plagiarism detection effectively. The video presentation of MAF-2 is available at Youtube and the source code can be downloaded at Github.
The system introduces the Isolation Forest algorithm to implement data annotation preprocessing, thereby reducing the workload of data labeling for operation and maintenance personnel. Furthermore, the accuracy of anomaly detection and trend prediction is improved by iteratively updating data labels and resetting models. The system is mainly divided into four modules. The monitoring module is responsible for the collection and storage of monitoring data.
This system is realized by mainstream frameworks, with Angular2 as the frontend framework, Spring Boot as the back-end framework, Redis as the query cache, and MongoDB as the database. Similar report recommendation is implemented by Word2Vec and WMD algorithm. The audit task recommendation is implemented using a model-based collaborative filtering approach. The test page recommendation is implemented using the multi-source shortest path method based on users’histories.
Intelligent Code Recommendation System Based on Structure Embedding Analysis
This tool relies on the Mooctest WebIDE system to update and optimize, and implements an intelligent code recommendation system based on structure embedding analysis. When users perform programming exercises or exams, they access the system through a browser and use an intelligent editor for online programming. The tool will monitor the user's programming behavior and grab code information for analysis and recommend code fragments to users based on the analysis results. Code recommendation relies on a large amount of source code data, so it is necessary to build a corpus based on a large amount of source code and preprocessing. The candidate code fragments with high similarity are trained by word embedding. Sentence embedding is performed to obtain a vector representation. At present, the tool has replaced the original Mooctest WebIDE system for online use. Experiment shows that the system improves the programming experience of 82.72% users on average.
Test Recommendation System Based on Slicing Coverage Filtering
This tool relies on Mooctest WebIDE to design and implement a Test Code Snippets Recommendation System based on Slicing Coverage Filtering. This tool uses Wala as a program slicing tool. AST program analysis technology is used to merge the code snippets with the project template. The OpenClover tool is used to analyze the test coverage of the code snippets and store it in the corpus. During the user's test learning, the system will analyze the user's test coverage information in real time, and use the test coverage vector to calculate the Jaccard vector similarity filter to obtain the relevant code snippets in the recommended corpus. The tool has constructed a recommended corpus containing 11 original questions and more than 2,200 test code snippets.
This tool relies on Mooctest WebIDE to design and implement an online test development system based on homologous code matching. The LSP protocol is used to add multi-language intelligent code prompts. At the same time, a test automation generation scheme is proposed. WebTester collects historical data of open source websites and examination platforms to build a corpus of test codes. The structure and text information of the code under test is extracted; WebTester combines string matching, spelling correction, near-sense search, program similarity analysis and other means to measure homology. The test cases of the homologous method in the corpus are searched and modified, and concise and usable test code for the method to be tested is generated. For projects not covered, the system integrates the optimized Evosuite tool to provide users with basic test cases for the target method. Statistics shows that WebTester reduces the average processing time of a single project from 65s to 20s, and the throughput is greatly improved.
We deeply analyzes the test code designed under the unit test framework and production code, explores the potential differences between them, designs and implements a test code plagiarism detection system based on program slicing. In order to achieve high-quality test code plagiarism detection, this system innovatively proposes a static two-way program slicing technology, extracting effective test fragments from non-standard test code based on the method under test, further calculates the similarity between test fragments, and carrys out plagiarism analysis based on similarity. After a series of strict system tests, the system has achieved functional and non-functional requirements, which measures up to the anticipative assumptions. Through the analysis and verification on a large number of real datasets, the experiment shows that the system can effectively detect the plagiarism of test code, and the system has good robustness through performance analysis.
- National key R&D program of China：Intelligent real-time quality improvement method and technology based on collaborative programming field (2018YFB1003901), 2018-2021
- Project for Huawei: Automated precision test project (YBN2016120004), 2016-2017
- National natural science foundation of China (General Program): Software maintenance technology based on developer social network (61472176), 2015-2018
- National natural science foundation of China：Test Case selection techniques based on clustering analysis of software behaviors(61003024). 2011-2013
- National natural science foundation of China ：Software testing optimization techniques based on sclicing(60803007), 2009-2011
- Chenqian Zhu, Weisong Sun, Qin Liu, Yangyang Yuan, Chunrong Fang, Yong Huang. HomoTR: Online Test Recommendation System Based on Homologous Code Matching ASE 2020 Demo
- Yuanhan Tian, Shengcheng Yu, Chunrong Fang, Peiyuan Li. FuRong: Fusing Report of Automated Android Testing on Multi-Devices ICSE 2020 Demo
- Chunrong Fang, Zixi Liu, Yangyang Shi, Jeff Huang and Qingkai Shi. Functional Code Clone Detection with Syntax and Semantics Fusion Learning ISSTA 2020
- Shengcheng Yu, Chunrong Fang, Yang Feng, Wenyuan Zhao, Zhenyu Chen. LIRAT: Layout and image recognition driving automated mobile testing of cross-platform. ASE 2019-Demo
- Xingya Wang, Haoran Wu, Weisong Sun and Yuan Zhao. Towards generating cost-effective Test-Suite for ethereum smart contract. SANER 2019
- Weisong Sun, Xingya Wang, Haoran Wu, Ding Duan, Zesong Sun, Zhenyu Chen. MAF: Method-anchored test fragmentation for test code plagiarism detection. ICSE 2019-SEET
- Ruizhi Gao, W. Eric Wong, Zhenyu Chen, Yabin Wang. Effective software fault localization using predicted execution results Software Quality Journal 25(1): 131-169
- Yilin Yang, Xinhai Huang, Xuefei Hao, Zicong Liu, Zhenyu Chen. An industrial study of natural language processing based test case prioritization ICST 2017, pp. 548-549
- Yang Feng, James Jone, Zhenyu Chen, Chunrong Fang. Multi-objective test report prioritization using image understanding[Chinese Brief] ASE 2016, pp. 202-213
- Ruizhi Gao, Eric Wong,Zhenyu Chen, Yabin Wang. Effective software fault localization using predicted execution results Software Quality Journal
Before the 2015
- Qingkai Shi, Zhenyu Chen, Chunrong Fang, Yang Feng, Baowen Xu. Measuring the diversity of a test set with distance entropy IEEE Transactions on Reliability
- Rui Yang, Zhenyu Chen, Zhiyi Zhang, Baowen Xu. EFSM-based test case generation: sequence, data, and oracle. Int'l Journal of Software Engineering and Knowledge Engineering
- Rui Yang, Zhenyu Chen, Zhiyi Zhang, Zicong Liu, Baowen Xu. A novel approach of automated test case generation on extended finite state machine (in Chinese). Science China-F
- Weiran Yang, Zhenyu Chen, Zebao Gao, Yunxiao Zou, Xiaoran Xu. GUI testing assisted by human knowledge: random vs. functional. Journal of Systems and Software
- Chunrong Fang, Zhenyu Chen, Kun Wu, Zhihong Zhao. Similarity-based test case prioritization using ordered sequences of program entities.[Chinese Brief] Software Quality Journal
- Yi Miao, Zhenyu Chen, Sihan Li, Zhihong Zhao, Yuming Zhou. A clustering-based strategy to identify coincidental correctness in fault localization. International Journal of Software Engineering and Knowledge Engineering
- Rui Yang, Zhenyu Chen, Baowen Xu, Eric Wong, Jie Zhang. Improve the effectiveness of test case generation on EFSM via automatic path feasibility analysis. HASE 2011, pp. 17-24
- Zhenyu Chen, Jinyu Zhang, Bin Luo. Teaching software testing methods based on diversity principles. CSEE&T 2011, pp.391-395
- Songyu Chen, Zhenyu Chen, Zhihong Zhao, Baowen Xu, Yang Feng. Using semi-supervised clustering to improve regression test selection techniques.[Chinese Brief] ICST 2011, pp.1-10
- Chen Zhang, Zhenyu Chen, Zhihong Zhao, Shali Yan, Jinyu Zhang, Baowen Xu. An improved regression test selection technique by clustering execution profiles. QSIC 2010, pp.171-179
- Shali Yan, Zhenyu Chen, Zhihong Zhao, Chen Zhang, Yuming Zhou. A dynamic test cluster sampling strategy by leveraging execution spectra information.[Chinese Brief] ICST 2010, pp.147-154