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

Bit-wise All Edge-pairs Coverage

Published: 25 September 2023 Publication 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.

Supplemental Material

ZIP File
epc-tool-experiments.zip: Scripts and instructions for reproducing the experiment biblioteca-test-ba-cf.zip: Software used in the first comparison between code coverage tools edge-pair-cov-tool.zip: BA-CF code coverage tool
ZIP File
epc-tool-experiments.zip: Scripts and instructions for reproducing the experiment biblioteca-test-ba-cf.zip: Software used in the first comparison between code coverage tools edge-pair-cov-tool.zip: BA-CF code coverage tool
ZIP File
epc-tool-experiments.zip: Scripts and instructions for reproducing the experiment biblioteca-test-ba-cf.zip: Software used in the first comparison between code coverage tools edge-pair-cov-tool.zip: BA-CF code coverage tool

References

[1]
Paul Ammann and Jeff Offutt. 2017. Introduction to Software Testing Edition 2. Cambridge University Press, New York, NY.
[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.
[3]
Roberto Paulo Andrioli de Araujo. 2014. Scalable data-flow testing. Master’s thesis. Universidade de São Paulo.
[4]
Atlassian. 2022. Atlassian Clover. https://www.atlassian.com/software/clover Acessado em 30/06/2021.
[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.
[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.
[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.003
[8]
Johan Haleby et al.2023. Powermock. https://github.com/powermock Acessado em 17/07/2023.
[9]
froglogic. 2022. Coco. https://www.froglogic.com/coco/ Acessado em 30/06/2021.
[10]
gnoso. 2022. NCover. https://www.ncover.com/ Acessado em 07/07/2021.
[11]
Hadi Hemmati. 2015. How effective are code coverage criteria?. In 2015 IEEE International Conference on Software Quality, Reliability and Security. IEEE, 151–156.
[12]
Marc R. Hoffmann, Brock Janiczak, and Evgeny Mandrikov. 2023. JaCoCo Java Code Coverage Library. https://github.com/jacoco
[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.
[14]
Aditya P. Mathur. 2008. Foundations of Software Testing: Fundamental Algorithms and Techniques. Pearson Education.
[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.
[16]
Parasoft. 2022. Parasoft Insure++. https://www.parasoft.com/products/parasoft-insure/ Acessado em 06/07/2021.
[17]
Roger S Pressman. 2005. Software engineering: a practitioner’s approach. Palgrave macmillan.
[18]
Matheus Soares Silva. 2023. biblioteca-test-ba-cf: v0.0.1. https://doi.org/10.5281/zenodo.7944818
[19]
Matheus Soares Silva. 2023. epc-tool-experiments: v1.0.0. https://doi.org/10.5281/zenodo.7944771
[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/3020266
[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.
[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.

Recommendations

Comments

Information & Contributors

Information

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
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 for this article.

Check for updates

Author Tags

  1. Empirical study
  2. Instrumentation strategy
  3. Software testing
  4. Structural control flow testing
  5. Tool

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

SBES 2023
SBES 2023: XXXVII Brazilian Symposium on Software Engineering
September 25 - 29, 2023
Campo Grande, Brazil

Acceptance Rates

Overall Acceptance Rate 147 of 427 submissions, 34%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 20
    Total Downloads
  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)1
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

View Options

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

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media