Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3559744.3559748acmotherconferencesArticle/Chapter ViewAbstractPublication PagessastConference Proceedingsconference-collections
research-article

A Strategy to Support the Infeasible Test Requirements Identification

Published: 03 October 2022 Publication History

Abstract

[Context:] Software testing is an important activity to ensure software quality. However, this is expensive because it is hard to generate and select practical test cases to execute a software system. Many infeasible test requirements collaborate to increase the effort on test data generation, for instance, infeasible paths. The identification of infeasible test requirements is not a trivial task and is currently performed manually. Published works tackle this problem and propose a manual process or brute force to mitigate infeasible test requirements. [Objective:] Our goal is twofold, to propose a strategy based on the infeasible path properties and automate the identification process to reveal infeasible and dark-infeasible test requirements without using input data. [Methodology:] We build a strategy to reveal infeasible and dark-infeasible test requirements. Afterward, we automate the strategy by developing a tool to support and scale the infeasible path-revealing process. The strategy was implemented in a tool, called Fi-paths, which supports the strategy. The tool statically analyzes the properties’ source code to reveal infeasible and dark-infeasible test requirements. To evaluate the strategy, we conducted an experimental study using Fi-paths and analyzed a set of sequential programs implemented in the Java language. [Results and conclusion:] The strategy indicates which regions of the source code had the properties, as well as which testing requirements are infeasible and potentially infeasible. The strategy helps the tester by indicating which code regions need more attention. On the other hand, the strategy has the potential to help an algorithm generate input data because it can be used as a stopping criterion. Since the strategy indicates which test requirements may exhibit infeasible behavior, it allows the algorithm to be optimized by accepting recommendations from the tester to cover problematic testing requirements.

References

[1]
K. Baral and J. Offutt. 2020. An Empirical Analysis of Blind Tests. In 2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST). 254–262.
[2]
B Barhoush and I Alsmadi. 2013. Infeasible Paths Detection Using Static Analysis. Ijj.Acm.Org II, Iii (2013). http://ijj.acm.org/volumes/volume2/issue3/ijjvol2no34.pdf
[3]
Blind. 2021. Blind.
[4]
R Bodík, R Gupta, and M L Soffa. 1997. Refining data flow information using infeasible paths. ACM SIGSOFT Software Engineering Notes 22, 6 (1997), 361–377. https://doi.org/10.1145/267896.267921
[5]
JR Brown. 1972. Practical applications of automated software tools. In Proceedings of the Western Electronic Show and Convention (WESCON) Los Angeles California September. 19–22.
[6]
Eric Bruneton. 2007. ASM 3.0 A Java bytecode engineering library. URL: http://download. forge. objectweb. org/asm/asmguide. pdf (2007).
[7]
P M S Bueno and M Jino. 2000. Identification of potentially infeasible program paths by monitoring the search for test data. Proceedings ASE 2000: 15th IEEE International Conference on Automated Software Engineering (2000), 209–218. https://doi.org/10.1109/ASE.2000.873665
[8]
Lori A. Clarke. 1976. A system to generate test data and symbolically execute programs. IEEE Transactions on software engineering3 (1976), 215–222.
[9]
Henry Coles, Thomas Laurent, Christopher Henard, Mike Papadakis, and Anthony Ventresque. 2016. PIT: A Practical Mutation Testing Tool for Java (Demo)(ISSTA 2016). Association for Computing Machinery, New York, NY, USA, 449–452. https://doi.org/10.1145/2931037.2948707
[10]
M Delahaye, B Botella, and A Gotlieb. 2015. Infeasible path generalization in dynamic symbolic execution. Information and Software Technology 58 (2015), 403–418. https://doi.org/10.1016/j.infsof.2014.07.012
[11]
Q Du and X Dong. 2011. An improved algorithm for basis path testing. BMEI 2011 - Proceedings 2011 International Conference on Business Management and Electronic Information 3 (2011), 175–178. https://doi.org/10.1109/ICBMEI.2011.5920422
[12]
P G Frankl. 1987. The Use of Data Flow Information for the Selection and Evaluation of Software Test Data. Ph. D. Dissertation. New York, NY, USA. AAI8801533.
[13]
AS Ghiduk. 2014. Automatic generation of basis test paths using variable length genetic algorithm. Inform. Process. Lett. 114, 6 (2014), 304–316. https://doi.org/10.1016/j.ipl.2014.01.009
[14]
D. Hedley and M. A. Hennell. 1985. The causes and effects of infeasible paths in computer programs. (1985), 259–266. http://dl.acm.org/citation.cfm?id=319568.319648
[15]
U. Koc, S. Wei, J. S. Foster, M. Carpuat, and A. A. Porter. 2019. An Empirical Assessment of Machine Learning Approaches for Triaging Reports of a Java Static Analysis Tool. In 2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST). 288–299.
[16]
D Kundu, M Sarma, and D Samanta. 2015. A UML model-based approach to detect infeasible paths. Journal of Systems and Software 107 (2015), 71–92. https://doi.org/10.1016/j.jss.2015.05.007
[17]
G J Myers, C Sandler, and T Badgett. 2011. The art of software testing. John Wiley & Sons.
[18]
M N Ngo and H B K Tan. 2007. Detecting large number of infeasible paths through recognizing their patterns. Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering - ESEC-FSE ’07(2007), 215. https://doi.org/10.1145/1287624.1287655
[19]
M N Ngo and Hee B K Tan. 2008. Heuristics-based infeasible path detection for dynamic test data generation. Information and Software Technology 50, 7-8 (2008), 641–655. https://doi.org/10.1016/j.infsof.2007.06.006
[20]
M Papadakis and N Malevris. 2010. A symbolic execution tool based on the elimination of infeasible paths. Proceedings - 5th International Conference on Software Engineering Advances, ICSEA 2010 (2010), 435–440. https://doi.org/10.1109/ICSEA.2010.74
[21]
K Pathade and U P Khedker. 2018. Computing Partially Path-Sensitive MFP Solutions in Data Flow Analyses. Proceedings of the 27th International Conference on Compiler Construction (2018), 37–47. https://doi.org/10.1145/3178372.3179497
[22]
G H.L. Pinto and S R Vergilio. 2010. A multi-objective genetic algorithm to test data generation. Proceedings - International Conference on Tools with Artificial Intelligence, ICTAI 1(2010), 129–134. https://doi.org/10.1109/ICTAI.2010.26
[23]
R Pressman and B Maxim. 2016. Software Engineering 8 Ed. McGraw Hill Brasil.
[24]
Sandra Rapps and Elaine J. Weyuker. 1985. Selecting software test data using data flow information. IEEE transactions on software engineering4 (1985), 367–375.
[25]
Luiz A. L. Rodrigues and Jacques D. Brancher. 2019. Playing an educational game featuring procedural content generation: which attributes impact players’ curiosity?
[26]
Camila Pereira Sales and Valdivino Alexandre de Santiago Júnior. 2020. Investigating Multi and Many-Objective Metaheuristics to Support Software Integration Testing(SAST 20). Association for Computing Machinery, New York, NY, USA, 1–10. https://doi.org/10.1145/3425174.3425175
[27]
Sebastião H. N. Santos, Beatriz Nogueira Carvalho da Silveira, Stevão A. Andrade, Márcio Delamaro, and Simone R. S. Souza. 2020. An Experimental Study on Applying Metamorphic Testing in Machine Learning Applications. In Proceedings of the 5th Brazilian Symposium on Systematic and Automated Software Testing (Natal, Brazil) (SAST 20). Association for Computing Machinery, New York, NY, USA, 98–106. https://doi.org/10.1145/3425174.3425226
[28]
Forrest Shull, Jeff Carver, A. Bldg, and Guilherme Travassos. 2001. An Empirical Methodology for Introducing Software Processes. ACM SIGSOFT Software Engineering Notes 26 (07 2001). https://doi.org/10.1145/503271.503248
[29]
Mariana Souza, Isabel K. Villanes, Arilo Claudio Dias-Neto, and Andre T. Endo. 2019. On the Exploratory Testing of Mobile Apps. In Proceedings of the IV Brazilian Symposium on Systematic and Automated Software Testing (Salvador, Brazil) (SAST 2019). Association for Computing Machinery, New York, NY, USA, 42–51. https://doi.org/10.1145/3356317.3356322
[30]
S R Vergilio, J C Maldonado, and M Jino. 1992. Non-executable paths: Characterization, Prediction and Determination to Support Program Testing - In Portuguese.
[31]
S R Vergilio, J C Maldonado, and M Jino. 2006. Infeasible paths in the context of data flow based testing criteria: Identification, classification and prediction. Journal of the Brazilian Computer Society 12, 1 (2006), 73–88. https://doi.org/10.1007/BF03192389
[32]
N L Vijaykumar and E L F Senne. 2011. Geração de Testes Caixa Branca para aplicações Multithreads : Geração Abordagem por Statecharts. (2011).
[33]
Ricardo F. Vilela, Victor H. S. C. Pinto, Thelma E. Colanzi, and Simone R. S. Souza. 2019. Bio-Inspired Optimization of Test Data Generation for Concurrent Software. In Search-Based Software Engineering, Shiva Nejati and Gregory Gay (Eds.). Springer International Publishing, Cham, 121–136.
[34]
Y Wang, Y Xing, and X Zhang. 2014. A Method of Path Feasibility Judgment Based on Symbolic Execution and Range Analysis. International Journal of Future Generation Communication and Networking 7, 3(2014), 205–212.
[35]
J Wegener, A Baresel, and H Sthamer. 2001. Evolutionary test environment for automatic structural testing. Information and software technology 43, 14 (2001), 841–854.
[36]
W Xibo and S Na. 2011. Automatic test data generation for path testing using genetic algorithms. Proceedings - 3rd International Conference on Measuring Technology and Mechatronics Automation, ICMTMA 2011 1 (2011), 596–599. https://doi.org/10.1109/ICMTMA.2011.152
[37]
D Yates and N Malevris. 1989. Reducing the effects of infeasible paths in branch testing. ACM SIGSOFT Software Engineering Notes 14, 8 (1989), 48–54. https://doi.org/10.1145/75309.75315
[38]
Q. Zhu, A. Panichella, and A. Zaidman. 2018. An Investigation of Compression Techniques to Speed up Mutation Testing. In 2018 IEEE 11th International Conference on Software Testing, Verification and Validation (ICST). 274–284.
[39]
Nivio Ziviani. 2010. Algorithms Project with Implementations in JAVA and C ++ (in Portuguese). Vol. 2. Cengage Learning Edições Ltda.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
SAST '22: Proceedings of the 7th Brazilian Symposium on Systematic and Automated Software Testing
October 2022
78 pages
ISBN:9781450397537
DOI:10.1145/3559744
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 October 2022

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Software testing
  2. non-executability problem
  3. structural test

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Funding Sources

  • Fundação de Amparo à Pesquisa do Estado de São Paulo

Conference

SAST 2022

Acceptance Rates

Overall Acceptance Rate 45 of 92 submissions, 49%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 59
    Total Downloads
  • Downloads (Last 12 months)18
  • Downloads (Last 6 weeks)2
Reflects downloads up to 17 Oct 2024

Other Metrics

Citations

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media