Test Input Data Generation for Choiceless Program Nets

Software testing is an important problem in designing a large software system and this problem is difficult to solve due to its computational complexity. Generating test input data is an effective way to approach this problem, and we try to use program net to find test input data. In our previous work, as the first step towards solving software testing problem, we have proposed algorithms to divide a whole program net into subnets that can structurally cover the original one based on a divide-and-conquer method. This paper aims to solve the remaining task of our approach, which is how to find test input data for each subnet to be called choiceless program net. First, definitions of program nets are extended and the properties of choiceless program nets are analysed. Then, polynomial algorithms are proposed to get all constraint conditions of any given choiceless program nets. Finally, a method to generate test input data under the obtained constraint conditions is proposed by adopting an SMT (Satisfiability Modulo Theory) solver called Z3 prover. An example is given to show the usefulness of our method.

[1]  Bruno Dutertre,et al.  A Fast Linear-Arithmetic Solver for DPLL(T) , 2006, CAV.

[2]  Minoru Tanaka,et al.  Complexity and a Heuristic Algorithm of Computing Parallel Degree for Program Nets with SWITCH-Nodes , 2006, IEICE Trans. Fundam. Electron. Commun. Comput. Sci..

[3]  E. Martins,et al.  Automatic test data generation for path testing using a new stochastic algorithm , 2022 .

[4]  Qi-Wei Ge,et al.  Performance Evaluation of a Two-Processor Scheduling Method for Acyclic SWITCH-less Program Nets , 2005, IEICE Trans. Fundam. Electron. Commun. Comput. Sci..

[5]  Myra B. Cohen,et al.  An orchestrated survey of methodologies for automated software test case generation , 2013, J. Syst. Softw..

[6]  Tsuyoshi Murata,et al.  {m , 1934, ACML.

[7]  Wang,et al.  An Improved Genetic Algorithm for Test Cases Generation Oriented Paths , 2014 .

[8]  Jens Palsberg,et al.  Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems , 2006 .

[9]  Jianchun Xing,et al.  Generating effective test cases based on satisfiability modulo theory solvers for service‐oriented workflow applications , 2016, Softw. Test. Verification Reliab..

[10]  Qi-Wei Ge,et al.  Execution termination and computation determinacy of data-flow program nets , 1991 .

[11]  William C. Hetzel,et al.  The complete guide to software testing , 1984 .

[12]  Ajay Kumar,et al.  Automatic Software Structural Testing by Using Evolutionary Algorithms for Test Data Generations , 2009 .

[13]  Kenji Onaga,et al.  On Verification of Token Self-Cleanness of Data-Flow Program Nets , 1995 .

[14]  Biao Wu,et al.  Subnets Generation of Program Nets and Its Application to Software Testing , 2019, IEICE Trans. Fundam. Electron. Commun. Comput. Sci..