How to Identify the Infeasible Test Requirements using Static Analyse? An Exploratory Study

Context: Software testing is an essential activity to ensure the quality of the software. However, the selection and generation of test cases can be an expensive and hard task. A large number of infeasible test requirements (e.g. infeasible paths) collaborate to increase the effort on test data generation, and it is not a trivial task to identify them. Objective: To investigate and analyze an process of properties of infeasible test requirements identification in a static way without inputs data through an exploratory study. Methodology: We gathered a set of statistical properties to identify infeasible test requirements without the use of input data. We manually verified the identification process using a benchmark with 19 Java programs. Results and conclusions: The alternative process identified infeasible requirements without using input data and proved effective. This study highlights the tester’s role in the process of identifying the infeasible elements and also the need to automate this process because level of complexity in decision making.

[1]  Debasish Kundu,et al.  A UML model-based approach to detect infeasible paths , 2015, J. Syst. Softw..

[2]  Nicos Malevris,et al.  Reducing the Effects of Infeasible Paths in Branch Testing , 1989, Symposium on Testing, Analysis, and Verification.

[3]  Jeffrey C. Carver,et al.  An empirical methodology for introducing software processes , 2001, ESEC/FSE-9.

[4]  Du Qingfeng,et al.  An improved algorithm for basis path testing , 2011, 2011 International Conference on Business Management and Electronic Information.

[5]  Luiz A. L. Rodrigues,et al.  Playing an Educational Game Featuring Procedural Content Generation: Which Attributes Impact Players’ Curiosity? , 2019, RENOTE.

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

[7]  Burhan Barhoush Infeasible Paths Detection Using Static Analysis , 2013 .

[8]  Mike Papadakis,et al.  A Symbolic Execution Tool Based on the Elimination of Infeasible Paths , 2010, 2010 Fifth International Conference on Software Engineering Advances.

[9]  Adam A. Porter,et al.  An Empirical Assessment of Machine Learning Approaches for Triaging Reports of a Java Static Analysis Tool , 2019, 2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST).

[10]  Ying Xing,et al.  A Method of Path Feasibility Judgment Based on Symbolic Execution and Range Analysis , 2014 .

[11]  Arnaud Gotlieb,et al.  Infeasible path generalization in dynamic symbolic execution , 2015, Inf. Softw. Technol..

[12]  Lori A. Clarke,et al.  A System to Generate Test Data and Symbolically Execute Programs , 1976, IEEE Transactions on Software Engineering.

[13]  Phyllis G. Frankl The use of Data Flow Information for the Selection and Evaluation of Software Test Data , 2015 .

[14]  Mario Jino,et al.  Identification of potentially infeasible program paths by monitoring the search for test data , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

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

[16]  A. Jefferson Offutt,et al.  An Empirical Analysis of Blind Tests , 2020, 2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST).

[17]  Zhu An Investigation of Compression Techniques to Speed up Mutation Testing , 2018 .

[18]  Rajiv Gupta,et al.  Refining data flow information using infeasible paths , 1997, ESEC '97/FSE-5.

[19]  Uday P. Khedker,et al.  Computing partially path-sensitive MFP solutions in data flow analyses , 2018, CC.

[20]  Mario Jino,et al.  Infeasible paths in the context of data flow based testing criteria: Identification, classification and prediction , 2010, Journal of the Brazilian Computer Society.

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

[22]  Elaine J. Weyuker,et al.  Selecting Software Test Data Using Data Flow Information , 1985, IEEE Transactions on Software Engineering.