skip to main content
10.1145/3613372.3613392acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbesConference Proceedingsconference-collections
research-article

Bit-wise All Edge-pairs Coverage

Published:25 September 2023Publication History

ABSTRACT

Structural testing is widely used to detect software failures and to assess test suites quality. Without automated support, though, its use on programs developed at industrial settings is hardly feasible. Structural testing is carried out by means of test criteria based on program code coverage. Program code is usually abstracted into a graph, and control flow-based code coverage is determined in terms of graph elements (e.g., nodes and edges). All edge-pairs is a relatively recent criterion when compared to all nodes and all edges criteria. Studies, though, indicate that all edge-pairs shows promising results at detecting failures. We present a novel approach to track edge-pairs based on bit-wise operations that are also applicable to nodes and edges. Empirical data suggest that all edge-pairs adds new paths to be tested at a tracking cost indistinguishable in comparision to any control flow testing requirement, be it nodes or edges, using bit-wise operations. Furthermore, the cost of the novel bit-wise approach is comparable to the cost of production-grade tools that track nodes and edges.

Skip Supplemental Material Section

Supplemental Material

References

  1. Paul Ammann and Jeff Offutt. 2017. Introduction to Software Testing Edition 2. Cambridge University Press, New York, NY.Google ScholarGoogle Scholar
  2. Paul Ammann, Jeff Offutt, Wuzhi Xu, Nan Li, Lin Deng, and Scott Brown. 2022. Graph Coverage Web Application. https://cs.gmu.edu:8443/offutt/coverage/GraphCoverage Acessado em 31/05/2021.Google ScholarGoogle Scholar
  3. Roberto Paulo Andrioli de Araujo. 2014. Scalable data-flow testing. Master’s thesis. Universidade de São Paulo.Google ScholarGoogle Scholar
  4. Atlassian. 2022. Atlassian Clover. https://www.atlassian.com/software/clover Acessado em 30/06/2021.Google ScholarGoogle Scholar
  5. Marcos Lordello Chaim and Roberto Paulo Andrioli De Araujo. 2013. An efficient bitwise algorithm for intra-procedural data-flow testing coverage. Inform. Process. Lett. 113, 8 (2013), 293–300.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Roberto Paulo Andrioli de Araujo and Marcos Lordello Chaim. 2014. Data-flow testing in the large. In 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation. IEEE, 81–90.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Vinicius Durelli, Márcio Delamaro, and Jeff Offutt. 2017. An experimental comparison of edge, edge-pair, and prime path criteria. Science of Computer Programming (10 2017). https://doi.org/10.1016/j.scico.2017.10.003Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Johan Haleby et al.2023. Powermock. https://github.com/powermock Acessado em 17/07/2023.Google ScholarGoogle Scholar
  9. froglogic. 2022. Coco. https://www.froglogic.com/coco/ Acessado em 30/06/2021.Google ScholarGoogle Scholar
  10. gnoso. 2022. NCover. https://www.ncover.com/ Acessado em 07/07/2021.Google ScholarGoogle Scholar
  11. Hadi Hemmati. 2015. How effective are code coverage criteria?. In 2015 IEEE International Conference on Software Quality, Reliability and Security. IEEE, 151–156.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Marc R. Hoffmann, Brock Janiczak, and Evgeny Mandrikov. 2023. JaCoCo Java Code Coverage Library. https://github.com/jacocoGoogle ScholarGoogle Scholar
  13. René Just, Darioush Jalali, and Michael D Ernst. 2014. Defects4J: A database of existing faults to enable controlled testing studies for Java programs. In Proceedings of the 2014 International Symposium on Software Testing and Analysis. 437–440.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Aditya P.. Mathur. 2008. Foundations of Software Testing: Fundamental Algorithms and Techniques. Pearson Education.Google ScholarGoogle Scholar
  15. Jonathan Misurda, James A Clause, Juliya L Reed, Bruce R Childers, and Mary Lou Soffa. 2005. Demand-driven structural testing with dynamic instrumentation. In Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005. IEEE, 156–165.Google ScholarGoogle Scholar
  16. Parasoft. 2022. Parasoft Insure++. https://www.parasoft.com/products/parasoft-insure/ Acessado em 06/07/2021.Google ScholarGoogle Scholar
  17. Roger S Pressman. 2005. Software engineering: a practitioner’s approach. Palgrave macmillan.Google ScholarGoogle Scholar
  18. Matheus Soares Silva. 2023. biblioteca-test-ba-cf: v0.0.1. https://doi.org/10.5281/zenodo.7944818Google ScholarGoogle ScholarCross RefCross Ref
  19. Matheus Soares Silva. 2023. epc-tool-experiments: v1.0.0. https://doi.org/10.5281/zenodo.7944771Google ScholarGoogle ScholarCross RefCross Ref
  20. Ting Su, Ke Wu, Weikai Miao, Geguang Pu, Jifeng He, Yuting Chen, and Zhendong Su. 2017. A Survey on Data-Flow Testing. ACM Comput. Surv. 50, 1 (2017), 5:1–5:35. https://doi.org/10.1145/3020266Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Mustafa M Tikir and Jeffrey K Hollingsworth. 2002. Efficient instrumentation for code coverage testing. ACM SIGSOFT Software Engineering Notes 27, 4 (2002), 86–96.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Hong Zhu, Patrick AV Hall, and John HR May. 1997. Software unit test coverage and adequacy. Acm computing surveys (csur) 29, 4 (1997), 366–427.Google ScholarGoogle Scholar

Index Terms

  1. Bit-wise All Edge-pairs Coverage

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      SBES '23: Proceedings of the XXXVII Brazilian Symposium on Software Engineering
      September 2023
      570 pages
      ISBN:9798400707872
      DOI:10.1145/3613372

      Copyright © 2023 ACM

      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 the author(s) 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: 25 September 2023

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed limited

      Acceptance Rates

      Overall Acceptance Rate147of427submissions,34%
    • Article Metrics

      • Downloads (Last 12 months)16
      • Downloads (Last 6 weeks)1

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format .

    View HTML Format