ABSTRACT
This paper describes the design and implementation of a method aimed at the automation of the input test data. The method is based on the analysis of the control flow graph of the tested application and should provide an automated way for obtaining input test data that will allow us to systematically cover the program with unit tests. The analysis starts with the tested method parameters and searches the method body to find the relation between the inputs and the conditions that affect the control flow. The control flow graphs are obtained from the Java bytecode, however, the rest of the analysis is performed only on the control flow graph and thus should be platform-independent. The functionality of the method is verified on the set of Java applications.
- 2017. 5 Test Data Generation Techniques You Need to Know. https://www.testbytes.net/blog/5-test-data-generation-techniques-to-know/Google Scholar
- 2020. Symja Library - Java Symbolic Math System for Android NCalc calculator. https://github.com/axkr/symja_android_libraryGoogle Scholar
- B. S. Ahmed, K. Z. Zamli, W. Afzal, and M. Bures. 2017. Constrained Interaction Testing: A Systematic Literature Study. IEEE Access 5 (2017), 25706--25730.Google ScholarCross Ref
- Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman. 2006. Compilers: Principles, Techniques, and Tools (2nd Edition). Addison-Wesley Longman Publishing Co., Inc., USA.Google ScholarDigital Library
- Alvin Alexander. 2013. Scala Cookbook: Recipes for Object-Oriented and Functional Programming (1st ed.). OâĂŹReilly Media, Inc.Google Scholar
- Saswat Anand, Edmund K. Burke, Tsong Yueh Chen, John Clark, Myra B. Cohen, Wolfgang Grieskamp, Mark Harman, Mary Jean Harrold, Phil McMinn, Antonia Bertolino, J. [Jenny Li], and Hong Zhu. 2013. An orchestrated survey of methodologies for automated software test case generation. Journal of Systems and Software 86, 8 (2013), 1978 -- 2001. Google ScholarDigital Library
- Ishan Banerjee, Bao Nguyen, Vahid Garousi, and Atif Memon. 2013. Graphical user interface (GUI) testing: Systematic mapping and repository. Information and Software Technology 55, 10 (2013), 1679 -- 1694. Google ScholarDigital Library
- Miroslav Bures, Pavel Herout, and Bestoun S. Ahmed. 2020. Open-source Defect Injection Benchmark Testbed for the Evaluation of Testing. arXiv:cs.SE/2001.09342Google Scholar
- JoÃčo B. [de Souza Neto], Anamaria M. Moreira, and Martin A. Musicante. 2018. Semantic Web Services testing: A Systematic Mapping study. Computer Science Review 28 (2018), 140 -- 156. Google ScholarCross Ref
- Jon Edvardsson. 2002. A Survey on Automatic Test Data Generation. (2002). https://www.cc.gatech.edu/~harrold/6340/cs6340_fall2009/Readings/test.data.genration.survey.pdfGoogle Scholar
- Paul Havlak. 1997. Nesting of Reducible and Irreducible Loops. ACM Trans. Program. Lang. Syst. 19, 4 (July 1997), 557--567. Google ScholarDigital Library
- Cem Kaner, James Bach, and Bret Pettichord. 2001. Lessons Learned in Software Testing. John Wiley & Sons, Inc., USA.Google Scholar
- Vladimir Khorikov. 2020. Unit Testing Principles, Practices, and Patterns (1st ed.). Manning Publications.Google Scholar
- Patrick Lam, Eric Bodden, OndÅŹej LhotÃąk, and Laurie Hendren. 2011. The Soot framework for Java program analysis: a retrospective. https://sable.github.io/soot/resources/lblh11soot.pdfGoogle Scholar
- Richard Lipka and Tomas Potuzak. 2018. Automated generator for complex and realistic test data - a case study. In FedCSIS.Google Scholar
- Aditya P. Mathur. 2008. Foundations of Software Testing (1st ed.). Addison-Wesley Professional.Google Scholar
- Glenford J. Myers, Corey Sandler, and Tom Badgett. 2011. The Art of Software Testing (3rd ed.). Wiley Publishing.Google ScholarDigital Library
- Roy P. Pargas, Mary Jean Harrold, and Robert R. Peck. 1999. Test - Data Generation Using Genetic Algorithms. Journal of Software testing, Verification and Reliability (1999). https://www.cc.gatech.edu/~harrold/6340/cs6340_fall2009/Readings/pga.pdfGoogle Scholar
- Reese T. Prosser. 1959. Applications of Boolean Matrices to the Analysis of Flow Diagrams. In Papers Presented at the December 1--3, 1959, Eastern Joint IRE-AIEE-ACM Computer Conference (IRE-AIEE-ACM 59 (Eastern)). Association for Computing Machinery, New York, NY, USA, 133---138. Google ScholarDigital Library
- S. C. Reid. 1997. An empirical analysis of equivalence partitioning, boundary value analysis and random testing. In Proceedings Fourth International Software Metrics Symposium. 64--73.Google ScholarCross Ref
- D. A. Spuler, A. S. M Sajeev, David A. Spuler, and A. S. M. Sajeev. 1994. Abstract Compiler Detection of Function Call Side Effects.Google Scholar
- Niklaus Wirth. 1996. Compiler construction. Addison-Wesley. http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf slightly revised November 2005 version of the book.Google Scholar
- Xiangjuan Yao and Dunwei Gong. 2014. Genetic Algorithm-Based Test Data Generation for Multiple Paths via Individual Sharing. Computational intelligence and neuroscience (10 2014), 591294. Google ScholarDigital Library
Index Terms
- A method for the automated generating of the code-coverage ensuring input test data based on the control flow analysis
Recommendations
Test-Suite Reduction and Prioritization for Modified Condition/Decision Coverage
Software testing is particularly expensive for developers of high-assurance software, such as software that is produced for commercial airborne systems. One reason for this expense is the Federal Aviation Administration's requirement that test suites be ...
Model-based testing leveraged for automated web tests
AbstractAgile methods and their practices have fostered the widespread presence of automated test cases. Such test cases have been successfully and extensively adopted to test different software levels, from unit tests (e.g., JUnit) to end-to-end Web ...
Code-coverage guided prioritized test generation
Most automatic test generation research focuses on generation of test data from pre-selected program paths or input domains or program specifications. This paper presents a methodology for a full solution to code-coverage-based test case generation, ...
Comments