Int J Performability Eng ›› 2017, Vol. 13 ›› Issue (8): 1281-1292.doi: 10.23940/ijpe.17.08.p10.12811292
• Original articles • Previous Articles Next Articles
Qian Zhongsheng, Hong Dafei, and Wang Xiaojin
Submitted on
;
Revised on
;
Accepted on
Contact:
Qian Zhongsheng
About author:
Zhongsheng Qian graduated from the School of Computer Engineering and Science, Shanghai University, China, for the degree of Ph. D. He entered the Post-doctoral station of Computer Science & Technology Department in Jiangxi University of Finance & Economics, China, from 2013 to 2015. He visited Aalborg University, Denmark as a guest professor in 2016. Now he is an associate professor of the School of Information Technology, Jiangxi University of Finance & Economics, Nanchang, China. His current research interests include cloud testing, Web testing, software engineering, formal verification.|Dafei Hong is a master student from the School of Information Technology, Jiangxi University of Finance & Economics, Nanchang, China. His research interests include plug-in testing & verification, software engineering, Web testing.|Xiaojin Wang is a master student from the School of Information Technology, Jiangxi University of Finance & Economics, Nanchang, China. His research interests include cloud testing, software modelling & testing, Web testing.
Qian Zhongsheng, Hong Dafei, and Wang Xiaojin. A Plug-in Test Case Generation Method based on Contact Layer Proximity and Node Probability Coverage [J]. Int J Performability Eng, 2017, 13(8): 1281-1292.
Add to citation manager EndNote|Reference Manager|ProCite|BibTeX|RefWorks
Figure 2
Test case generation algorithm"
Algorithm 1. Test case generation algorithm |
Step 1. Apply the method of program instrumentation to preprocess the program tested; |
Step 2. Execute the m groups of test cases to generate the hit matrix M, detect unreachable paths and determine cut nodes; |
Step 3. Initialize Population; |
Step 4. Encode the individual, and execute the modified program to compute the fitness function value; |
Step 5. Determine whether the fitness value of the individual is greater than or equal to the fitness value of the target path: if so, go to step 8; |
Step 6. Confirm whether the maximum number of iterations is reached: if so, go to step 8; |
Step 7. Conduct the selection, crossover and mutation of population to generate progeny population, and then go to step 4; |
Step 8. Stop population evolution, preserve evolutionary individuals and decode output data. |
Table 1
The unreachable paths in triangle-classifying program"
Path list |
---|
R1=<st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, d13 , $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, $d_{19}$,ed> |
R2=<st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, $d_{19}$, ed> |
R3=<st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, $d_{19}$, ed> |
R4=<st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, $d_{19}$, ed> |
R5=<st, $d_{1}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, $d_{19}$, ed> |
R6=<st, $d_{1}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, $d_{19}$, ed> |
R7=<st, $d_{1}$, $d_{5}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, $d_{19}$, ed> |
R8=<st, $d_{1}$, $d_{5}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, $d_{19}$, ed> |
R9=<st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{13}$, $d_{14}$, ed> |
R10=<st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{18}$, $d_{19}$, ed> |
R11=<st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, ed> |
R12=<st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{18}$, ed> |
R13=<st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, ed> |
R14=<st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, ed> |
R15=<st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, ed> |
R16=<st, $d_{1}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, ed> |
R17=<st, $d_{1}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{18}$, $d_{19}$, ed> |
R18=<st, $d_{1}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{18}$, ed}> |
R19=<st, $d_{1}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, ed> |
R20=<st, $d_{1}$, $d_{5}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$, ed> |
R21=<st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{18}$, $d_{19}$, ed> |
R22=<st, $d_{1}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{18}$, $d_{19}$, ed> |
Table 2
The coverage data of triangle-classifying program"
ID | Traversed degree | Fit(x) | Target fitness | Target path |
---|---|---|---|---|
1 | 3.5455 | 4.8498 | 4.8498 | <st, $d_{1}$, $d_{5}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{17}$, $d_{18}$,ed> |
2 | 4.9545 | 6.7772 | 6.7772 | <st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, $d_{13}$, $d_{14}$, ed> |
3 | 3.4091 | 4.6632 | 4.6632 | <st, $d_{1}$, $d_{5}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{18}$, $d_{19}$, ed> |
4 | 1.2727 | 1.7409 | 1.7409 | <st, $d_{1}$, $d_{5}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, $d_{13}$, $d_{14}$, ed> |
5 | 5.0455 | 6.9016 | 6.9016 | <st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{18}$, $d_{19}$, ed> |
6 | 2.8636 | 3.9171 | 3.9171 | <st, $d_{1}$, $d_{5}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{18}$, ed> |
7 | 7.7727 | 10.6321 | 10.6321 | <st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{18}$, ed> |
8 | 4.6364 | 6.3420 | 6.3420 | <st, $d_{1}$, $d_{5}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{18}$, $d_{19}$, ed> |
9 | 6.2727 | 8.5803 | 8.5803 | <st, $d_{1}$, $d_{2}$, $d_{3}$, $d_{4}$, $d_{5}$, $d_{9}$, $d_{10}$, $d_{11}$, $d_{12}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{18}$, $d_{19}$, ed> |
10 | 5.4545 | 7.4611 | 7.4611 | <st, $d_{1}$, $d_{5}$, $d_{6}$, $d_{7}$, $d_{8}$, $d_{9}$, $d_{13}$, $d_{15}$, $d_{16}$, $d_{18}$, $d_{19}$, ed> |
1 | B. Bako , A. Borchert , N. Heidenbluth , J. Mayer , “Plugin-Based Systems with Self-Organized Hierarchical Presentation,” in International Conference on Software Engineering Research and Practice, pp. 577-584, Las Vegas, Nevada, USA, June 2006 |
2 | D. Beyer , T. A. Henzinger , R. Jhala , R. Majumdar , “An Eclipse Plug-in for Model Checking,” in IEEE International Workshop on Program Comprehension, pp. 251-255, Bari, Italy, June 2004 |
3 | W. U . Chuan and D. W. Gong, “Evolutionary Generation of Test Data for Regression Testing Based on Path Correlation,” Chinese Journal of Computers, vol. 38, no.11, pp. 2247-2261, November 2015 (in Chinese with English abstract) |
4 | D. W . Gong and L. N. Ren, “Evolutionary Generation of Regression Test Data,” Chinese Journal of Computers, vol. 37, no. 3, pp. 489-499, March 2014 (in Chinese with English abstract) |
5 | M Greiler , A. V. Deursen . “What Your Plug-in Test Suites Really Test: an Integration Perspective on Test Suite Understanding,” Empirical Software Engineering, vol. 18, no. 5, pp. 859-900, October 2013 |
6 | M. Greiler , A. V. Deursen , M. A. Storey , “Test confessions: A Study of Testing Practices for Plug-in Systems,” in IEEE International Conference on Software Engineering, pp. 244-254, Zurich, Switzerland, June 2012 |
7 | M. Greiler , H. G. Gross , Van Deursen A, “Understanding Plug-in Test Suites From an Extensibility Perspective,” in The 17th Working Conference on Reverse Engineering, pp. 67-76, Beverly, MA, USA, October 2010 |
8 | M. Jahn , R. Wolfinger , H. Mössenböck , “Extending Web Applications with Client and Server Plug-ins,” in International Conference on Software Engineering, pp. 33-44, Paderborn, February 2010 |
9 | S. J. Jiang , L. S. Wang , M. Xue , Y. M. Zhang , Q. Yu , H. R. Yao , “Test Case Generation Based on Combination of Schema Using Particle Swarm Optimization,” Journal of Software, vol. 27, no. 4, pp. 785-801, April 2016 (in Chinese with English abstract) |
10 | H. V. Nguyen , C. Kästner , T. N. Nguyen , “Exploring Variability-aware Execution for Testing Plugin-based Web Applications,” in ACM International Conference on Software Engineering, pp. 907-918, Orlando, Florida, USA, May 2014 |
11 | C. Wu , D. W. Gong , X. J. Yao , “Selection of Paths for Regression Testing Based on Branch Coverage,” Journal of Software, vol. 27, no. 4, pp. 839-854, April 2016 (in Chinese with English abstract) |
12 | C. Y. Xia , Y. Zhang , L. Song , “Evolutionary Generation of Test Data for Paths Coverage Based on Node Probability,” Journal of Software, vol. 27, no. 4, pp. 802-813, April 2016 (in Chinese with English abstract) |
13 | X. J. Yao , “Theory of Evolutionary Generation of Test Data for Complex Software and Applications,” China University of Mining and Technology, Xuzhou, China, April 2011 (in Chinese with English abstract) |
14 | X. J. Yao , D. W. Gong , B. Li , “Evolutional Test Data Generation for Path Coverage by Integrating Neural Network,” Journal of Software, vol. 27, no. 4, pp. 828-838, April 2016 (in Chinese with English abstract) |
15 | G. J. Zhang , D. W. Gong , X. J. Yao , “Test Case Generation Based on Mutation Analysis and Set Evolution,” Chinese Journal of Computers, vol. 38, no. 11, pp. 2318-2331, November 2015 (in Chinese with English abstract) |
[1] | Chia-En Lai and Chin-Yu Huang. Developing a Modified Fuzzy-GE Algorithm for Enhanced Test Suite Reduction Effectiveness [J]. Int J Performability Eng, 2023, 19(4): 223-233. |
[2] | Jenson Jose, and Jose P Therattil. Machine Learning Assisted Parameter Tuning for a L2CL-LCL Compensation WPT System [J]. Int J Performability Eng, 2021, 17(12): 1005-1015. |
[3] | Tingting Huo, Yan Zhang, Chunyan Xia, Zijiang Yang, Weisong Sun. Large-Scale Test Case Prioritization using Viterbi Algorithm [J]. Int J Performability Eng, 2020, 16(12): 1921-1932. |
[4] | Qiang Chen, Zhanwei Hui, and Jialuo Liu. Test Set Augmentation Technique for Deep Learning Image Classifiers [J]. Int J Performability Eng, 2019, 15(7): 1998-2007. |
[5] | Yan Zhang, Li Qiao, Xingya Wang, Jingying Cai, and Xuefei Liu. Automatic Software Testing Target Path Selection using K-Means Clustering Algorithm [J]. Int J Performability Eng, 2019, 15(10): 2667-2674. |
|