Dynamic random testing with test case clustering and distance-based parameter adjustment

Abstract Context Software testing is essential in software engineering to improve software reliability. One goal of software testing strategies is to detect faults faster. Dynamic Random Testing (DRT) strategy uses the testing results to guide the selection of test cases, which has shown to be effective in the fault detection process. Objective Previous studies have demonstrated that DRT is greatly affected by the test case classification and the process of adjusting the testing profile. In this paper, we propose Distance-based DRT (D-DRT) strategies, aiming at enhancing the fault detection effectiveness of DRT. Method D-DRT strategies utilize distance information of inputs into the test case classification and the testing profile adjustment process. The test cases are vectorized based on the input parameters and classified into disjoint subdomains through certain clustering methods. And the distance information of subdomains, along with testing results, are used to adjust the testing profile, such that test cases that are closer to failure-causing subdomains are more likely to be selected. Results We conduct empirical studies to evaluate the performance of the proposed algorithms using 12 versions of 4 open-source programs. The experimental results show that, compared with Random Testing (RT), Random Partition Testing (RPT), DRT and Adaptive Testing (AT), our strategies achieve greater fault detection effectiveness with a low computational cost. Moreover, the distance-based testing profile adjustment method is the dominant factor in the improvement of the D-DRT strategy. Conclusion D-DRT strategies are effective testing strategies, and the distance-based testing profile adjustment method plays a crucial role.

[1]  Kai-Yuan Cai,et al.  Dynamic Random Testing of Web Services: A Methodology and Evaluation , 2022, IEEE Transactions on Services Computing.

[2]  Jinfu Chen,et al.  Test case prioritization for object-oriented software: An adaptive random sequence approach based on clustering , 2018, J. Syst. Softw..

[3]  Kai-Yuan Cai,et al.  On the Asymptotic Behavior of Adaptive Testing Strategy for Software Reliability Assessment , 2014, IEEE Transactions on Software Engineering.

[4]  R. Ledesma,et al.  Cliff's Delta Calculator: A non-parametric effect size program for two groups of observations , 2010 .

[5]  Kai-Yuan Cai,et al.  A Sufficient Condition for Parameters Estimation in Dynamic Random Testing , 2011, 2011 IEEE 35th Annual Computer Software and Applications Conference Workshops.

[6]  Bertrand Meyer,et al.  ARTOO: adaptive random testing for object-oriented software , 2008, ICSE.

[7]  Kai-Yuan Cai,et al.  Dynamic Random Testing: Technique and Experimental Evaluation , 2019, IEEE Transactions on Reliability.

[8]  Kai-Yuan Cai,et al.  Adaptive software testing with fixed-memory feedback , 2007, J. Syst. Softw..

[9]  Walter J. Gutjahr,et al.  Partition Testing vs. Random Testing: The Influence of Uncertainty , 1999, IEEE Trans. Software Eng..

[10]  Kai-Yuan Cai,et al.  Quantitative effects of software testing on reliability improvement in the presence of imperfect debugging , 2013, Inf. Sci..

[11]  Ping Cao,et al.  Mathematical modeling of software reliability testing with imperfect debugging , 2010, Comput. Math. Appl..

[12]  Bojan Cukic,et al.  Comparing Partition and Random Testing via Majorization and Schur Functions , 2003, IEEE Trans. Software Eng..

[13]  Huai Liu,et al.  Enhancing mirror adaptive random testing through dynamic partitioning , 2015, Inf. Softw. Technol..

[14]  Kai-Yuan Cai,et al.  Dynamic Random Testing with Parameter Adjustment , 2014, 2014 IEEE 38th International Computer Software and Applications Conference Workshops.

[15]  Wei-Tek Tsai,et al.  Ontology-Based Test Modeling and Partition Testing of Web Services , 2008, 2008 IEEE International Conference on Web Services.

[16]  Hyunsook Do,et al.  Test Case Prioritization Using Requirements-Based Clustering , 2013, 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation.

[17]  Kai-Yuan Cai,et al.  Approach for Test Profile Optimization in Dynamic Random Testing , 2015, 2015 IEEE 39th Annual Computer Software and Applications Conference.

[18]  Tsong Yueh Chen,et al.  On the Relationship Between Partition and Random Testing , 1994, IEEE Trans. Software Eng..

[19]  Ramzi A. Haraty,et al.  Regression Test Cases Prioritization Using Clustering and Code Change Relevance , 2016, Int. J. Softw. Eng. Knowl. Eng..

[20]  Stefano Russo,et al.  Adaptive Test Case Allocation, Selection and Generation Using Coverage Spectrum and Operational Profile , 2019, IEEE Transactions on Software Engineering.

[21]  Kai-Yuan Cai,et al.  A History-Based Dynamic Random Software Testing , 2014, 2014 IEEE 38th International Computer Software and Applications Conference Workshops.

[22]  Hang Lei,et al.  Evaluating the Effectiveness of Random and Partition Testing by Delivered Reliability , 2008, 2008 International Conference on Embedded Software and Systems.

[23]  Kai-Yuan Cai,et al.  Adaptive and Random Partition Software Testing , 2014, IEEE Transactions on Systems, Man, and Cybernetics: Systems.

[24]  Kai-Yuan Cai,et al.  Optimal software testing and adaptive software testing in the context of software cybernetics , 2002, Inf. Softw. Technol..

[25]  Hongji Yang,et al.  Modern software cybernetics: New trends , 2017, J. Syst. Softw..

[26]  Huai Liu,et al.  A Cost-Effective Random Testing Method for Programs with Non-Numeric Inputs , 2016, IEEE Transactions on Computers.

[27]  John Regehr,et al.  Random testing of interrupt-driven software , 2005, EMSOFT.

[28]  Tsong Yueh Chen,et al.  On the statistical properties of testing effectiveness measures , 2006, J. Syst. Softw..

[29]  Gregg Rothermel,et al.  Supporting Controlled Experimentation with Testing Techniques: An Infrastructure and its Potential Impact , 2005, Empirical Software Engineering.

[30]  James Miller,et al.  Centroidal Voronoi Tessellations- A New Approach to Random Testing , 2013, IEEE Transactions on Software Engineering.

[31]  N. Cliff Dominance statistics: Ordinal analyses to answer ordinal questions. , 1993 .

[32]  Kai-Yuan Cai,et al.  Towards Dynamic Random Testing for Web Services , 2012, 2012 IEEE 36th Annual Computer Software and Applications Conference.

[33]  Bin Liu,et al.  Adaptive Testing Based on Moment Estimation , 2020, IEEE Transactions on Systems, Man, and Cybernetics: Systems.

[34]  Marc J. Balcer,et al.  The category-partition method for specifying and generating fuctional tests , 1988, CACM.

[35]  Tsong Yueh Chen,et al.  Proportional sampling strategy: a compendium and some insights , 2001, J. Syst. Softw..

[36]  Paul Ammann,et al.  Data Diversity: An Approach to Software Fault Tolerance , 1988, IEEE Trans. Computers.

[37]  Xiang Ji,et al.  Coverage-Based Clustering and Scheduling Approach for Test Case Prioritization , 2017, IEICE Trans. Inf. Syst..

[38]  Richard G. Hamlet,et al.  Partition Testing Does Not Inspire Confidence , 1990, IEEE Trans. Software Eng..

[39]  Cristina Nita-Rotaru,et al.  Building Robust Distributed Systems and Network Protocols by Using Adversarial Testing and Behavioral Analysis , 2016, 2016 IEEE Cybersecurity Development (SecDev).

[40]  Huai Liu,et al.  Adaptive Partition Testing , 2019, IEEE Transactions on Computers.

[41]  Tsong Yueh Chen,et al.  On the Expected Number of Failures Detected by Subdomain Testing and Random Testing , 1996, IEEE Trans. Software Eng..

[42]  Tsong Yueh Chen,et al.  Proportional sampling strategy: guidelines for software testing practitioners , 1996, Inf. Softw. Technol..

[43]  Sandip Dutta,et al.  Test Case Prioritization Using Clustering Approach for Object Oriented Software , 2019, Int. J. Inf. Syst. Model. Des..

[44]  Paolo Bernardi,et al.  A Hybrid Approach for Detection and Correction of Transient Faults in SoCs , 2010, IEEE Transactions on Dependable and Secure Computing.

[45]  Lionel C. Briand,et al.  Formal Analysis of the Probability of Interaction Fault Detection Using Random Testing , 2012, IEEE Transactions on Software Engineering.

[46]  Kai-Yuan Cai,et al.  Q -scale measures of fuzzy sets , 1994 .

[47]  Barton P. Miller,et al.  An empirical study of the robustness of Windows NT applications using random testing , 2000 .

[48]  Kai-Yuan Cai,et al.  Partition testing with dynamic partitioning , 2005, 29th Annual International Computer Software and Applications Conference (COMPSAC'05).

[49]  Min Xie,et al.  A Distance-Based Dynamic Random Testing with Test Case Clustering , 2019, 2019 IEEE 19th International Conference on Software Quality, Reliability and Security (QRS).

[50]  Huai Liu,et al.  Randomized Quasi-Random Testing , 2016, IEEE Transactions on Computers.