L O ] 2 7 A ug 2 01 9 Towards Constraint Logic Programming over Strings for Test Data Generation

In order to properly test software, test data of a certain quality is needed. However, useful test data is often unavailable: Existing or hand-crafted data might not be diverse enough to enable desired test cases. Furthermore, using production data might be prohibited due to security or privacy concerns or other regulations. At the same time, existing tools for test data generation are often limited. In this paper, we evaluate to what extent constraint logic programming can be used to generate test data, focussing on strings in particular. To do so, we introduce a prototypical CLP solver over string constraints. As case studies, we use it to generate IBAN numbers and calender dates.

[1]  Gregory Grefenstette,et al.  Regular expressions for language engineering , 1996, Natural Language Engineering.

[2]  Thom W. Frühwirth,et al.  Theory and Practice of Constraint Handling Rules , 1998, J. Log. Program..

[3]  Alexander Pretschner Zum modellbasierten funktionalen Test reaktiver Systeme , 2003 .

[4]  Keith Golden,et al.  Constraint Reasoning over Strings , 2003, CP.

[5]  Andreas Spillner,et al.  Basiswissen Softwaretest - Aus- und Weiterbildung zum Certified Tester, Foundation Level nach ISTQB-Standard (3. Aufl.) , 2005 .

[6]  Donald Kossmann,et al.  A framework for efficient regression tests on database applications , 2006, The VLDB Journal.

[7]  Rui Xiao,et al.  Synthetic Data Generation Capabilties for Testing Data Mining Tools , 2006, MILCOM 2006 - 2006 IEEE Military Communications conference.

[8]  Rico Wind,et al.  Simple and realistic data generation , 2006, VLDB.

[9]  David L. Dill,et al.  A Decision Procedure for Bit-Vectors and Arrays , 2007, CAV.

[10]  Michael D. Ernst,et al.  HAMPI: a solver for string constraints , 2009, ISSTA.

[11]  Jaiteg Singh,et al.  Statistically Analyzing the Impact of Automated ETL Testing on the Data Quality of a Data Warehouse , 2009 .

[12]  Xiang Fu,et al.  A String Constraint Solver for Detecting Web Application Vulnerability , 2010, SEKE.

[13]  Tom Schrijvers,et al.  Under Consideration for Publication in Theory and Practice of Logic Programming Swi-prolog , 2022 .

[14]  M.Shahan Ali Khan,et al.  Data Warehouse Testing : An Exploratory Study , 2011 .

[15]  Markus Triska The Finite Domain Constraint Solver of SWI-Prolog , 2012, FLOPS.

[16]  Galal H. Galal-Edeen,et al.  Data warehouse testing , 2013, EDBT '13.

[17]  Xiangyu Zhang,et al.  Z3-str: a z3-based string solver for web application analysis , 2013, ESEC/FSE 2013.

[18]  Joxan Jaffar,et al.  S3: A Symbolic String Solver for Vulnerability Detection in Web Applications , 2014, CCS.

[19]  Cesare Tinelli,et al.  A DPLL(T) Theory Solver for a Theory of Strings and Regular Expressions , 2014, CAV.

[20]  Markus Triska The Boolean Constraint Solver of SWI-Prolog (System Description) , 2016, FLOPS.

[21]  Michael Leuschel,et al.  SMT Solvers for Validation of B and Event-B Models , 2016, IFM.

[22]  Cesare Tinelli,et al.  An efficient SMT solver for string constraints , 2016, Formal Methods Syst. Des..

[23]  Peter J. Stuckey,et al.  MiniZinc with Strings , 2016, LOPSTR.

[24]  Parosh Aziz Abdulla,et al.  Flatten and conquer: a framework for efficient analysis of string constraints , 2017, PLDI.

[25]  Xiangyu Zhang,et al.  Z3str2: an efficient solver for strings, regular expressions, and length constraints , 2017, Formal Methods Syst. Des..

[26]  Peter J. Stuckey,et al.  A Novel Approach to String Constraint Solving , 2017, CP.

[27]  Yunhui Zheng,et al.  ZSstrS: A string solver with theory-aware heuristics , 2017, 2017 Formal Methods in Computer Aided Design (FMCAD).

[28]  Yan Chen,et al.  What Is Decidable about String Constraints with the ReplaceAll Function , 2017, 1711.03363.

[29]  Markus Triska Boolean constraints in SWI-Prolog: A comprehensive system description , 2018, Sci. Comput. Program..

[30]  Parosh Aziz Abdulla,et al.  Trau: SMT solver for string constraints , 2018, 2018 Formal Methods in Computer Aided Design (FMCAD).