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
Available for Download
- Paul Ammann and Jeff Offutt. 2017. Introduction to Software Testing Edition 2. Cambridge University Press, New York, NY.Google Scholar
- 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 Scholar
- Roberto Paulo Andrioli de Araujo. 2014. Scalable data-flow testing. Master’s thesis. Universidade de São Paulo.Google Scholar
- Atlassian. 2022. Atlassian Clover. https://www.atlassian.com/software/clover Acessado em 30/06/2021.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Johan Haleby et al.2023. Powermock. https://github.com/powermock Acessado em 17/07/2023.Google Scholar
- froglogic. 2022. Coco. https://www.froglogic.com/coco/ Acessado em 30/06/2021.Google Scholar
- gnoso. 2022. NCover. https://www.ncover.com/ Acessado em 07/07/2021.Google Scholar
- Hadi Hemmati. 2015. How effective are code coverage criteria?. In 2015 IEEE International Conference on Software Quality, Reliability and Security. IEEE, 151–156.Google ScholarDigital Library
- Marc R. Hoffmann, Brock Janiczak, and Evgeny Mandrikov. 2023. JaCoCo Java Code Coverage Library. https://github.com/jacocoGoogle Scholar
- 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 ScholarDigital Library
- Aditya P.. Mathur. 2008. Foundations of Software Testing: Fundamental Algorithms and Techniques. Pearson Education.Google Scholar
- 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 Scholar
- Parasoft. 2022. Parasoft Insure++. https://www.parasoft.com/products/parasoft-insure/ Acessado em 06/07/2021.Google Scholar
- Roger S Pressman. 2005. Software engineering: a practitioner’s approach. Palgrave macmillan.Google Scholar
- Matheus Soares Silva. 2023. biblioteca-test-ba-cf: v0.0.1. https://doi.org/10.5281/zenodo.7944818Google ScholarCross Ref
- Matheus Soares Silva. 2023. epc-tool-experiments: v1.0.0. https://doi.org/10.5281/zenodo.7944771Google ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
Index Terms
- Bit-wise All Edge-pairs Coverage
Recommendations
Checked Coverage and Object Branch Coverage: New Alternatives for Assessing Student-Written Tests
SIGCSE '15: Proceedings of the 46th ACM Technical Symposium on Computer Science EducationMany educators currently use code coverage metrics to assess student-written software tests. While test adequacy criteria such as statement or branch coverage can also be used to measure the thoroughness of a test suite, they have limitations. Coverage ...
Test-Suite Reduction and Prioritization for Modified Condition/Decision Coverage
ICSM '01: Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)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 ...
nCov: A Tool for Measuring Length-n Subpath Coverage
Internetware '15: Proceedings of the 7th Asia-Pacific Symposium on InternetwareSoftware test adequacy criteria are used to determine whether the test on a software system is sufficient. Code coverage shows how thoroughly a program is tested according to corresponding testing adequacy criteria. There are many coverage criteria used ...
Comments