Abstract
In this article, a new criterion, domain coverage, for white box testing is introduced. In search of the biggest subdomains for input variables exercising a given path, the variable domains are broken down into overlapping subregions in such a way that the resultant subregions either exercise or deviate from the path. To this aim, an incremental method is applied to detect the subregions, covering the longest subpaths from the start of the given path. The detected subdomain is further subdivided, and this process is repeated as far as the path is fully covered. If no subdomain is detected, the method is backtracked. The backtrack begins with the subdomain covering the longest subpath at the beginning of the given path, but this time the subdomain is divided into relatively smaller subregions, compared with the last time. A directed acyclic graph representation of each input variable domain is used to ignore re-examination of those subdomains which deviate from the path. Conducted experiments reveal that our proposed domain-oriented algorithm outperforms the existing path-oriented test data generation algorithms.

















Similar content being viewed by others
References
Hermadi, I., Lokan, C., Sarker, R.: Dynamic stopping criteria for search-based test data generation for path testing. Inf. Softw. Technol. 56(4), 395–407 (2014)
Alshahwan, N., Harman, M.: Coverage and fault detection of the output-uniqueness test selection criteria. In: Proceedings of the 2014 International Symposium on Software Testing and Analysis. ACM (2014)
Varshney, S., Mehrotra, M.: A differential evolution based approach to generate test data for data-flow coverage. In: Computing, Communication and Automation (ICCCA), 2016 International Conference on. IEEE (2016)
Feyzi, F., Parsa, S.: Incorporating static fault-proneness analysis into statistical fault localization. J. Syst. Softw. 136, 39–58 (2018)
Feyzi, F., Parsa, S.: A program slicing-based method for effective detection of coincidentally correct test cases. Computing (2018). https://doi.org/10.1007/s00607-018-0591-z
Feyzi, F., Parsa, S.: Inforence: effective fault localization based on information-theoretic analysis and statistical causal inference. Front. Comput. Sci. (2018). https://doi.org/10.1007/s11704-017-6512-z
Offutt, A.J., Jin, Z., Pan, J.: The dynamic domain reduction procedure for test data generation. Softw. Pract. Exp. 29(2), 167–93 (1999)
Baldoni, R., Coppa, E., D’Elia, D.C., Demetrescu, C., Finocchi, I.: A survey of symbolic execution techniques. ArXiv preprint arXiv:1610.00502 (2016)
Gotlieb, A., Petit, M.: Constraint reasoning in path-oriented random testing. In: Computer Software and Applications, 2008. COMPSAC’08. 32nd Annual IEEE International. IEEE (2008)
Gotlieb, A., Petit, M.: Path-oriented random testing. In: Proceedings of the 1st International Workshop on Random Testing. ACM (2006)
Gotlieb, A., Petit, M.: A uniform random test data generator for path testing. J. Syst. Softw. 83(12), 2618–2626 (2010)
Stapleton, G.: A survey of reasoning systems based on Euler diagrams. Electron. Notes Theor. Comput. Sci. 134, 127–151 (2005)
Chow, S., Ruskey, F.: Drawing area-proportional Venn and Euler diagrams. In: International Symposium on Graph Drawing, vol. 2912 (2003)
Swoboda, N., Allwein, G.: Using DAG transformations to verify Euler/Venn homogeneous and Euler/Venn FOL heterogeneous rules of inference. Softw. Syst. Model 3(2), 136–149 (2004)
Swoboda, N.: Implementing Euler/Venn reasoning systems. In: Diagrammatic Representation and Reasoning, pp. 371–386. Springer, London (2002)
Su, T., et al.: A survey on data-flow testing. ACM Comput. Surv. (CSUR) 50(1), 5 (2017)
Galeotti, J.P., Fraser, G., Arcuri, A.: Improving search-based test suite generation with dynamic symbolic execution. In: Software Reliability Engineering (ISSRE), 2013 IEEE 24th International Symposium on. IEEE (2013)
Zhang, Z., et al.: An empirical study on constraint optimization techniques for test generation. Sci. China Inf. Sci. 60(1), 012105 (2017)
Ali, S., et al.: Improving the performance of OCL constraint solving with novel heuristics for logical operations: a search-based approach. Empir. Softw. Eng. 21(6), 2459–2502 (2016)
Kempka, J., McMinn, P., Sudholt, D.: Design and analysis of different alternating variable searches for search-based software testing. Theor. Comput. Sci. 605, 1–20 (2015)
Korel, B.: Automated software test data generation. IEEE Trans. Softw. Eng. 16(8), 870–879 (1990)
Malhotra, R., et al.: Comparison of search based techniques for automated test data generation. Int. J. Comput. Appl. 95(23), 4–8 (2014)
Suresh, Y., Rath, S.K.: A genetic algorithm based approach for test data generation in basis path testing. ArXiv preprint arXiv:1401.5165 (2014)
Bueno, P.M.S., Jino, M., Wong, W.E.: Diversity oriented test data generation using metaheuristic search techniques. Inf. Sci. 259, 490–509 (2014)
Varshney, S., Mehrotra, M.: Search based software test data generation for structural testing: a perspective. ACM SIGSOFT Softw. Eng. Notes 38(4), 1–6 (2013)
Feyzi, F., Parsa, S.: Bayes-TDG: effective test data generation using Bayesian belief network: towards failure-detection effectiveness and maximum coverage. IET Softw (2018). https://doi.org/10.1049/iet-sen.2017.0112
Nikravan, E., Feyzi, F., Parsa, S.: Enhancing path-oriented test data generation using adaptive random testing techniques. In: Knowledge-Based Engineering and Innovation (KBEI), 2015 2nd International Conference on. IEEE (2015)
Ferguson, R., Korel, B.: The chaining approach for software test data generation. ACM Trans. Softw. Eng. Methodol. 5(1), 63–86 (1996)
Korel, B.: Dynamic method for software test data generation. Softw. Test. Verif. Reliab. 2(4), 203–213 (1992)
Godefroid P., Klarlund N., Sen K.: DART: directed automated random testing. In: ACM Sigplan Notices, vol. 40. No. 6. ACM (2005)
Sen, K., Marinov, D., Agha, G.: CUTE: a concolic unit testing engine for C. In: ACM SIGSOFT Software Engineering Notes, vol. 30, no. 5. ACM (2005)
Tillmann, N., De Halleux, J.: Pex–white box test generation for. net. In: Tests and Proofs, pp. 134–153 (2008)
Bottaci, L.: Instrumenting programs with flag variables for test data search by genetic algorithm. In: Proceedings of the 4th Annual Conference on Genetic and Evolutionary Computation. Morgan Kaufmann Publishers Inc. (2002)
Harman, M., Jones, B.F.: Search-based software engineering. Inf. Softw. Technol. 43(14), 833–839 (2001)
Huang, J.C.: Detection of data flow anomaly through program instrumentation. IEEE Trans. Softw. Eng. 5(3), 226–236 (1979)
Fraser, G., Arcuri, A.: Evolutionary generation of whole test suites. In: Quality Software (QSIC), 2011 11th International Conference on. IEEE (2011)
Anand, S., P̆as̆areanu, C.S., Visser, W.: JPF-SE: A symbolic execution extension to Java PathFinder. In: Proceedings of the 13th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’07), pp. 134–138. Springer, Berlin (2007)
Jussien, N., Rochart, G., Lorca, X.: Choco: an open source java constraint programming library. In: CPAIOR’08 Workshop on Open-Source Software for Integer and Contraint Programming (OSSICP’08) (2008)
Zhao, R., Lyu, M.R., Min, Y.: Automatic string test data generation for detecting domain errors. Softw. Test. Verif. Reliab. 20(3), 209–236 (2010)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Nikravan, E., Parsa, S. A reasoning-based approach to dynamic domain reduction in test data generation. Int J Softw Tools Technol Transfer 21, 351–364 (2019). https://doi.org/10.1007/s10009-018-0493-6
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-018-0493-6