Evaluation of Novel Approaches to Software Engineering

Dynamic symbolic execution has been shown to be an effective technique for automated test input generation. When applied to large-scale and complex programs, its scalability however is limited due to the combinatorial explosion of the path space. We propose to take advantage of data flow analysis to better perform dynamic symbolic execution in the context of generating test inputs for maximum structural coverage. In particular, we utilize the chaining mechanism to (1) extract precise guidance to direct dynamic symbolic execution towards exploring uncovered code elements and (2) meanwhile significantly optimize the path exploration process. Preliminary experiments conducted to evaluate the performance of the proposed approach have shown very encouraging results.

[1]  Michael Pradel Explicit Relationships with Roles - A Library Approach , 2008 .

[2]  Minh Ngoc Ngo,et al.  Detecting large number of infeasible paths through recognizing their patterns , 2007, ESEC-FSE '07.

[3]  Andrei Voronkov,et al.  Handbook of Automated Reasoning: Volume 1 , 2001 .

[4]  Hui Liu,et al.  An Approach to Aid the Understanding and Maintenance of Input Validation , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[5]  Nicky Williams Abstract path testing with PathCrawler , 2010, AST '10.

[6]  D. F. Yates,et al.  Predictive metric for likely feasibility of program paths , 1990 .

[7]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[8]  Hui Liu,et al.  An approach for the maintenance of input validation , 2008, Inf. Softw. Technol..

[9]  Jan Gustafsson Worst case execution time analysis of object-oriented programs , 2002, Proceedings of the Seventh IEEE International Workshop on Object-Oriented Real-Time Dependable Systems. (WORDS 2002).

[10]  Hui Liu,et al.  Testing input validation in Web applications through automated model recovery , 2008, J. Syst. Softw..

[11]  Andrea Burattin,et al.  A framework for semi-automated process instance discovery from decorative attributes , 2011, 2011 IEEE Symposium on Computational Intelligence and Data Mining (CIDM).

[12]  Wil M. P. van der Aalst,et al.  Genetic process mining: an experimental evaluation , 2007, Data Mining and Knowledge Discovery.

[13]  Jakob Engblom,et al.  The worst-case execution-time problem—overview of methods and survey of tools , 2008, TECS.

[14]  Hitesh Tahbildar,et al.  AUTOMATED SOFTWARE TEST DATA GENERATION: DIRECTION OF RESEARCH , 2011 .

[15]  Oscar Nierstrasz,et al.  Traits: Composable Units of Behaviour , 2002, ECOOP.

[16]  Aleksander Slominski,et al.  Discovering event correlation rules for semi-structured business processes , 2011, DEBS '11.

[17]  Charles W. Bachman,et al.  The Role Concept in Data Models , 1977, VLDB.

[18]  Phil McMinn,et al.  Search-based software test data generation: a survey: Research Articles , 2004 .

[19]  Kenneth McGarry,et al.  A survey of interestingness measures for knowledge discovery , 2005, The Knowledge Engineering Review.

[20]  Koushik Sen,et al.  CUTE: a concolic unit testing engine for C , 2005, ESEC/FSE-13.

[21]  Fabio Casati,et al.  Event correlation for process discovery from web service interaction logs , 2011, The VLDB Journal.

[22]  Daniel Gillblad,et al.  Discovering Process Models from Unlabelled Event Logs , 2009, BPM.

[23]  Christian Koppen,et al.  PCDiff : Attacking the Fragile Pointcut Problem , 2004 .

[24]  Friedrich Steimann,et al.  On the representation of roles in object-oriented and conceptual modelling , 2000, Data Knowl. Eng..

[25]  Robert F. Mills,et al.  Adding value to log event correlation using distributed techniques , 2010, CSIIRW '10.

[26]  Nabil Hammoud,et al.  Decentralized log event correlation architecture , 2009, MEDES.

[27]  Jan Gustafsson,et al.  Automatic Derivation of Loop Bounds and Infeasible Paths for WCET Analysis Using Abstract Execution , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[28]  Mario Piattini,et al.  Toward Obtaining Event Logs from Legacy Code , 2010, Business Process Management Workshops.

[29]  Naoyasu Ubayashi,et al.  Objects as Actors Assuming Roles in the Environment , 2007, SELMAS.

[30]  Bogdan Korel,et al.  Automated test data generation for programs with procedures , 1996, ISSTA '96.

[31]  Gisbert Dittrich,et al.  Role Types and their Dependencies as Components of Natural Types , 2005 .

[32]  Hee Beng Kuan Tan,et al.  Applying static analysis for automated extraction of database interactions in web applications , 2008, Inf. Softw. Technol..

[33]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[34]  Amitabha Sanyal,et al.  Data Flow Analysis - Theory and Practice , 2009 .

[35]  Daniel Chernuchin,et al.  Comparison of Object-Oriented Approaches for Roles in Programming Languages , 2005 .

[36]  Sophia Drossopoulou,et al.  Chai: Traits for Java-Like Languages , 2005, ECOOP.

[37]  Nikolai Tillmann,et al.  Fitness-guided path exploration in dynamic symbolic execution , 2009, 2009 IEEE/IFIP International Conference on Dependable Systems & Networks.

[38]  Hee Beng Kuan Tan,et al.  Defending against Buffer-Overflow Vulnerabilities , 2011, Computer.

[39]  Jan Gustafsson Analyzing execution-time of object-oriented programs using abstract interpretation , 2000 .

[40]  Jan Gustafsson,et al.  Algorithms for Infeasible Path Calculation , 2006, WCET.

[41]  Adam Przybylek,et al.  Systems Evolution and Software Reuse in Object-Oriented Programming and Aspect-Oriented Programming , 2011, TOOLS.

[42]  Mario Piattini,et al.  Generating event logs from non-process-aware systems enabling business process mining , 2011, Enterp. Inf. Syst..

[43]  Guido Boella,et al.  Interaction between Objects in powerJava , 2007, J. Object Technol..

[44]  Oscar Nierstrasz,et al.  Traits: A mechanism for fine-grained reuse , 2006, TOPL.

[45]  Hee Beng Kuan Tan,et al.  Heuristics-based infeasible path detection for dynamic test data generation , 2008, Inf. Softw. Technol..

[46]  Hui Liu,et al.  Covering code behavior on input validation in functional testing , 2009, Inf. Softw. Technol..

[47]  Jan Mendling,et al.  Business Process Intelligence , 2009, Handbook of Research on Business Process Modeling.

[48]  Yuanyuan Song,et al.  Modular software design with crosscutting interfaces , 2006, IEEE Software.

[49]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[50]  Hongyan Ma,et al.  Process-aware information systems: Bridging people and software through process technology , 2007, J. Assoc. Inf. Sci. Technol..

[51]  Michael A. Hennell,et al.  The causes and effects of infeasible paths in computer programs , 1985, ICSE '85.

[52]  Mario Piattini,et al.  Process mining through dynamic analysis for modernising legacy systems , 2011, IET Softw..

[53]  Yue Yang,et al.  Symbolic path simulation in path-sensitive dataflow analysis , 2005, PASTE '05.

[54]  Mathias Weske,et al.  Business Process Management: Concepts, Languages, Architectures , 2007 .